The Trunk: ToolBuilder-Kernel-fbs.59.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: ToolBuilder-Kernel-fbs.59.mcz

commits-2
Frank Shearar uploaded a new version of ToolBuilder-Kernel to project The Trunk:
http://source.squeak.org/trunk/ToolBuilder-Kernel-fbs.59.mcz

==================== Summary ====================

Name: ToolBuilder-Kernel-fbs.59
Author: fbs
Time: 7 December 2013, 7:46:48.769 pm
UUID: d951bc00-3095-734e-9459-04cbb38b5f8d
Ancestors: ToolBuilder-Kernel-fbs.58

* Pull the unit tests out into ToolBuilderTests, a new package. This breaks the ToolBuilder -> SUnit dependency.
* Move the "choose a class from some pattern" logic from Utilities to UIManager. It looks introspective, but it's inherently based on user input, and about finding something for the user.

=============== Diff against ToolBuilder-Kernel-fbs.58 ===============

Item was removed:
- TestCase subclass: #PluggableMenuItemSpecTests
- instanceVariableNames: ''
- classVariableNames: ''
- poolDictionaries: ''
- category: 'ToolBuilder-Kernel'!

Item was removed:
- ----- Method: PluggableMenuItemSpecTests>>testBeCheckableMakesItemCheckable (in category 'as yet unclassified') -----
- testBeCheckableMakesItemCheckable
- | itemSpec |
- itemSpec := PluggableMenuItemSpec new.
- itemSpec beCheckable.
- self assert: itemSpec isCheckable description: 'Item not checkable'.!

Item was removed:
- ----- Method: PluggableMenuItemSpecTests>>testByDefaultNotCheckable (in category 'as yet unclassified') -----
- testByDefaultNotCheckable
- | itemSpec |
- itemSpec := PluggableMenuItemSpec new.
- self deny: itemSpec isCheckable.!

Item was removed:
- ----- Method: PluggableMenuItemSpecTests>>testNoMarkerMakesItemChecked (in category 'as yet unclassified') -----
- testNoMarkerMakesItemChecked
- | itemSpec |
- itemSpec := PluggableMenuItemSpec new.
- itemSpec label: '<no>no'.
- itemSpec analyzeLabel.
- self assert: itemSpec isCheckable description: 'item not checkable'.
- self deny: itemSpec checked description: 'item checked'.!

Item was removed:
- ----- Method: PluggableMenuItemSpecTests>>testOffMarkerMakesItemChecked (in category 'as yet unclassified') -----
- testOffMarkerMakesItemChecked
- | itemSpec |
- itemSpec := PluggableMenuItemSpec new.
- itemSpec label: '<off>off'.
- itemSpec analyzeLabel.
- self assert: itemSpec isCheckable description: 'item not checkable'.
- self deny: itemSpec checked description: 'item checked'.!

Item was removed:
- ----- Method: PluggableMenuItemSpecTests>>testOnMarkerMakesItemChecked (in category 'as yet unclassified') -----
- testOnMarkerMakesItemChecked
- | itemSpec |
- itemSpec := PluggableMenuItemSpec new.
- itemSpec label: '<on>on'.
- itemSpec analyzeLabel.
- self assert: itemSpec isCheckable description: 'item not checkable'.
- self assert: itemSpec isCheckable description: 'item not checked'.!

Item was removed:
- ----- Method: PluggableMenuItemSpecTests>>testYesMarkerMakesItemChecked (in category 'as yet unclassified') -----
- testYesMarkerMakesItemChecked
- | itemSpec |
- itemSpec := PluggableMenuItemSpec new.
- itemSpec label: '<yes>on'.
- itemSpec analyzeLabel.
- self assert: itemSpec isCheckable description: 'item not checkable'.
- self assert: itemSpec isCheckable description: 'item not checked'.!

Item was removed:
- TestCase subclass: #ToolBuilderTests
- instanceVariableNames: 'builder widget queries'
- classVariableNames: ''
- poolDictionaries: ''
- category: 'ToolBuilder-Kernel'!
-
- !ToolBuilderTests commentStamp: 'ar 2/11/2005 15:01' prior: 0!
- Some tests to make sure ToolBuilder does what it says.!

Item was removed:
- ----- Method: ToolBuilderTests class>>isAbstract (in category 'testing') -----
- isAbstract
- ^self == ToolBuilderTests!

Item was removed:
- ----- Method: ToolBuilderTests>>acceptWidgetText (in category 'support') -----
- acceptWidgetText
- "accept text in widget"
- ^ self subclassResponsibility!

Item was removed:
- ----- Method: ToolBuilderTests>>assertItemFiresWith: (in category 'tests-menus') -----
- assertItemFiresWith: aBlock
- | spec |
- spec := builder pluggableMenuSpec new.
- spec model: self.
- aBlock value: spec.
- widget := builder build: spec.
- queries := IdentitySet new.
- self fireMenuItemWidget.
- self assert: (queries includes: #fireMenuAction)!

Item was removed:
- ----- Method: ToolBuilderTests>>buttonWidgetEnabled (in category 'support') -----
- buttonWidgetEnabled
- "Answer whether the current widget (a button) is currently enabled"
-
- ^ widget getModelState!

Item was removed:
- ----- Method: ToolBuilderTests>>changeListWidget (in category 'support') -----
- changeListWidget
- "Change the list widget's selection index"
- self subclassResponsibility!

Item was removed:
- ----- Method: ToolBuilderTests>>expectedButtonSideEffects (in category 'support') -----
- expectedButtonSideEffects
- "side effect queries we expect to see on buttons"
- ^#()!

Item was removed:
- ----- Method: ToolBuilderTests>>fireButton (in category 'tests-button') -----
- fireButton
- queries add: #fireButton.!

Item was removed:
- ----- Method: ToolBuilderTests>>fireButtonWidget (in category 'support') -----
- fireButtonWidget
- "Fire the widget, e.g., perform what is needed for the guy to trigger its action"
- self subclassResponsibility!

Item was removed:
- ----- Method: ToolBuilderTests>>fireMenuAction (in category 'tests-menus') -----
- fireMenuAction
- queries add: #fireMenuAction!

Item was removed:
- ----- Method: ToolBuilderTests>>fireMenuItemWidget (in category 'tests-menus') -----
- fireMenuItemWidget
- self subclassResponsibility!

Item was removed:
- ----- Method: ToolBuilderTests>>getChildren (in category 'tests-panel') -----
- getChildren
- queries add: #getChildren.
- ^#()!

Item was removed:
- ----- Method: ToolBuilderTests>>getChildrenOf: (in category 'tests-trees') -----
- getChildrenOf: item
- queries add: #getChildrenOf.
- ^(1 to: 9) asArray!

Item was removed:
- ----- Method: ToolBuilderTests>>getColor (in category 'tests-text') -----
- getColor
- queries add: #getColor.
- ^Color tan!

Item was removed:
- ----- Method: ToolBuilderTests>>getEnabled (in category 'tests-button') -----
- getEnabled
- queries add: #getEnabled.
- ^true!

Item was removed:
- ----- Method: ToolBuilderTests>>getHelpOf: (in category 'tests-trees') -----
- getHelpOf: item
- ^'help'!

Item was removed:
- ----- Method: ToolBuilderTests>>getIconOf: (in category 'tests-trees') -----
- getIconOf: item
- queries add: #getIconOf.
- ^nil!

Item was removed:
- ----- Method: ToolBuilderTests>>getLabel (in category 'tests-button') -----
- getLabel
- queries add: #getLabel.
- ^'TestLabel'!

Item was removed:
- ----- Method: ToolBuilderTests>>getLabelOf: (in category 'tests-trees') -----
- getLabelOf: item
- queries add: #getLabelOf.
- ^item asString!

Item was removed:
- ----- Method: ToolBuilderTests>>getList (in category 'tests-lists') -----
- getList
- queries add: #getList.
- ^(1 to: 100) collect:[:i| i printString].!

Item was removed:
- ----- Method: ToolBuilderTests>>getListIndex (in category 'tests-lists') -----
- getListIndex
- queries add: #getListIndex.
- ^13!

Item was removed:
- ----- Method: ToolBuilderTests>>getListSelection (in category 'tests-lists') -----
- getListSelection
- queries add: #getListSelection.
- ^'55'!

Item was removed:
- ----- Method: ToolBuilderTests>>getMenu: (in category 'tests-lists') -----
- getMenu: aMenu
- queries add: #getMenu.
- ^aMenu!

Item was removed:
- ----- Method: ToolBuilderTests>>getRoots (in category 'tests-trees') -----
- getRoots
- queries add: #getRoots.
- ^(1 to: 9) asArray!

Item was removed:
- ----- Method: ToolBuilderTests>>getState (in category 'tests-button') -----
- getState
- queries add: #getState.
- ^true!

Item was removed:
- ----- Method: ToolBuilderTests>>getText (in category 'tests-text') -----
- getText
- queries add: #getText.
- ^Text new!

Item was removed:
- ----- Method: ToolBuilderTests>>getTextSelection (in category 'tests-text') -----
- getTextSelection
- queries add: #getTextSelection.
- ^(1 to: 0)!

Item was removed:
- ----- Method: ToolBuilderTests>>getTreeSelectionPath (in category 'tests-trees') -----
- getTreeSelectionPath
- queries add: #getTreeSelectionPath.
- ^{2. 4. 3}!

Item was removed:
- ----- Method: ToolBuilderTests>>hasChildren: (in category 'tests-trees') -----
- hasChildren: item
- queries add: #hasChildren.
- ^true!

Item was removed:
- ----- Method: ToolBuilderTests>>keyPress: (in category 'tests-lists') -----
- keyPress: key
- queries add: #keyPress.!

Item was removed:
- ----- Method: ToolBuilderTests>>makeButton (in category 'tests-button') -----
- makeButton
- | spec |
- spec := self makeButtonSpec.
- widget := builder build: spec.
- ^widget!

Item was removed:
- ----- Method: ToolBuilderTests>>makeButtonSpec (in category 'tests-button') -----
- makeButtonSpec
- | spec |
- spec := builder pluggableButtonSpec new.
- spec name: #button.
- spec model: self.
- spec label: #getLabel.
- spec color: #getColor.
- spec state: #getState.
- spec enabled: #getEnabled.
- ^spec!

Item was removed:
- ----- Method: ToolBuilderTests>>makeInputField (in category 'tests-input') -----
- makeInputField
- | spec |
- spec := self makeInputFieldSpec.
- widget := builder build: spec.!

Item was removed:
- ----- Method: ToolBuilderTests>>makeInputFieldSpec (in category 'tests-input') -----
- makeInputFieldSpec
- | spec |
- spec := builder pluggableInputFieldSpec new.
- spec name: #input.
- spec model: self.
- spec getText: #getText.
- spec selection: #getTextSelection.
- spec color: #getColor.
- "<-- the following cannot be tested very well -->"
- spec setText: #setText:.
- spec menu: #getMenu:.
- ^spec!

Item was removed:
- ----- Method: ToolBuilderTests>>makeItemList (in category 'tests-lists') -----
- makeItemList
- | spec |
- spec := self makeItemListSpec.
- widget := builder build: spec.!

Item was removed:
- ----- Method: ToolBuilderTests>>makeItemListSpec (in category 'tests-lists') -----
- makeItemListSpec
- | spec |
- spec := builder pluggableListSpec new.
- spec name: #list.
- spec model: self.
- spec list: #getList.
- spec getSelected: #getListSelection.
- "<-- the following cannot be tested very well -->"
- spec setSelected: #setListSelection:.
- spec menu: #getMenu:.
- spec keyPress: #keyPress:.
- ^spec!

Item was removed:
- ----- Method: ToolBuilderTests>>makeList (in category 'tests-lists') -----
- makeList
- | spec |
- spec := self makeListSpec.
- widget := builder build: spec.!

Item was removed:
- ----- Method: ToolBuilderTests>>makeListSpec (in category 'tests-lists') -----
- makeListSpec
- | spec |
- spec := builder pluggableListSpec new.
- spec name: #list.
- spec model: self.
- spec list: #getList.
- spec getIndex: #getListIndex.
- "<-- the following cannot be tested very well -->"
- spec setIndex: #setListIndex:.
- spec menu: #getMenu:.
- spec keyPress: #keyPress:.
- ^spec!

Item was removed:
- ----- Method: ToolBuilderTests>>makePanel (in category 'tests-panel') -----
- makePanel
- | spec |
- spec := self makePanelSpec.
- widget := builder build: spec.!

Item was removed:
- ----- Method: ToolBuilderTests>>makePanelSpec (in category 'tests-panel') -----
- makePanelSpec
- | spec |
- spec := builder pluggablePanelSpec new.
- spec name: #panel.
- spec model: self.
- spec children: #getChildren.
- ^spec!

Item was removed:
- ----- Method: ToolBuilderTests>>makeText (in category 'tests-text') -----
- makeText
- | spec |
- spec := self makeTextSpec.
- widget := builder build: spec.!

Item was removed:
- ----- Method: ToolBuilderTests>>makeTextSpec (in category 'tests-text') -----
- makeTextSpec
- | spec |
- spec := builder pluggableTextSpec new.
- spec name: #text.
- spec model: self.
- spec getText: #getText.
- spec selection: #getTextSelection.
- spec color: #getColor.
- "<-- the following cannot be tested very well -->"
- spec setText: #setText:.
- spec menu: #getMenu:.
- ^spec!

Item was removed:
- ----- Method: ToolBuilderTests>>makeTree (in category 'tests-trees') -----
- makeTree
- | spec |
- spec := self makeTreeSpec.
- widget := builder build: spec.!

Item was removed:
- ----- Method: ToolBuilderTests>>makeTreeSpec (in category 'tests-trees') -----
- makeTreeSpec
- | spec |
- spec := builder pluggableTreeSpec new.
- spec name: #tree.
- spec model: self.
- spec roots: #getRoots.
- "<-- the following cannot be tested very well -->"
- spec getSelectedPath: #getTreeSelectionPath.
- spec getChildren: #getChildrenOf:.
- spec hasChildren: #hasChildren:.
- spec label: #getLabelOf:.
- spec icon: #getIconOf:.
- spec help: #getHelpOf:.
- spec setSelected: #setTreeSelection:.
- spec menu: #getMenu:.
- spec keyPress: #keyPress:.
- ^spec!

Item was removed:
- ----- Method: ToolBuilderTests>>makeWindow (in category 'tests-window') -----
- makeWindow
- | spec |
- spec := self makeWindowSpec.
- widget := builder build: spec.!

Item was removed:
- ----- Method: ToolBuilderTests>>makeWindowSpec (in category 'tests-window') -----
- makeWindowSpec
- | spec |
- spec := builder pluggableWindowSpec new.
- spec name: #window.
- spec model: self.
- spec children: #getChildren.
- spec label: #getLabel.
- spec closeAction: #noteWindowClosed.
- ^spec!

Item was removed:
- ----- Method: ToolBuilderTests>>noteWindowClosed (in category 'tests-window') -----
- noteWindowClosed
- queries add: #noteWindowClosed.!

Item was removed:
- ----- Method: ToolBuilderTests>>openWindow (in category 'tests-window') -----
- openWindow
- | spec |
- spec := self makeWindowSpec.
- widget := builder open: spec.!

Item was removed:
- ----- Method: ToolBuilderTests>>returnFalse (in category 'support') -----
- returnFalse
- ^false!

Item was removed:
- ----- Method: ToolBuilderTests>>returnTrue (in category 'support') -----
- returnTrue
- ^true!

Item was removed:
- ----- Method: ToolBuilderTests>>setListIndex: (in category 'tests-lists') -----
- setListIndex: index
- queries add: #setListIndex.!

Item was removed:
- ----- Method: ToolBuilderTests>>setListSelection: (in category 'tests-lists') -----
- setListSelection: newIndex
- queries add: #setListSelection.!

Item was removed:
- ----- Method: ToolBuilderTests>>setText: (in category 'tests-text') -----
- setText: newText
- queries add: #setText.
- ^false!

Item was removed:
- ----- Method: ToolBuilderTests>>setTreeSelection: (in category 'tests-trees') -----
- setTreeSelection: node
- queries add: #setTreeSelection.!

Item was removed:
- ----- Method: ToolBuilderTests>>setUp (in category 'support') -----
- setUp
- queries := IdentitySet new.!

Item was removed:
- ----- Method: ToolBuilderTests>>shutDown (in category 'support') -----
- shutDown
- self myDependents: nil!

Item was removed:
- ----- Method: ToolBuilderTests>>testAddTargetSelectorArgumentList (in category 'tests-menus') -----
- testAddTargetSelectorArgumentList
- self assertItemFiresWith:
- [:spec | spec
- add: 'Menu Item'
- target: self
- selector: #fireMenuAction
- argumentList: #()]!

Item was removed:
- ----- Method: ToolBuilderTests>>testButtonFiresBlock (in category 'tests-button') -----
- testButtonFiresBlock
- | spec |
- spec := builder pluggableButtonSpec new.
- spec model: self.
- spec action: [self fireButton].
- widget := builder build: spec.
- queries := IdentitySet new.
- self fireButtonWidget.
- self assert: (queries includes: #fireButton).!

Item was removed:
- ----- Method: ToolBuilderTests>>testButtonFiresMessage (in category 'tests-button') -----
- testButtonFiresMessage
- | spec |
- spec := builder pluggableButtonSpec new.
- spec model: self.
- spec action: (MessageSend receiver: self selector: #fireButton arguments: #()).
- widget := builder build: spec.
- queries := IdentitySet new.
- self fireButtonWidget.
- self assert: (queries includes: #fireButton).!

Item was removed:
- ----- Method: ToolBuilderTests>>testButtonFiresSymbol (in category 'tests-button') -----
- testButtonFiresSymbol
- | spec |
- spec := builder pluggableButtonSpec new.
- spec model: self.
- spec action: #fireButton.
- widget := builder build: spec.
- queries := IdentitySet new.
- self fireButtonWidget.
- self assert: (queries includes: #fireButton).!

Item was removed:
- ----- Method: ToolBuilderTests>>testButtonInitiallyDisabled (in category 'tests-button') -----
- testButtonInitiallyDisabled
- | spec |
- spec := builder pluggableButtonSpec new.
- spec model: self.
- spec label: #getLabel.
- spec color: #getColor.
- spec state: #getState.
- spec enabled: #returnFalse.
- widget := builder build: spec.
- self deny: (self buttonWidgetEnabled)!

Item was removed:
- ----- Method: ToolBuilderTests>>testButtonInitiallyDisabledSelector (in category 'tests-button') -----
- testButtonInitiallyDisabledSelector
- | spec |
- spec := builder pluggableButtonSpec new.
- spec model: self.
- spec label: #getLabel.
- spec color: #getColor.
- spec state: #getState.
- spec enabled: #returnFalse.
- widget := builder build: spec.
- self deny: (self buttonWidgetEnabled)!

Item was removed:
- ----- Method: ToolBuilderTests>>testButtonInitiallyEnabled (in category 'tests-button') -----
- testButtonInitiallyEnabled
- | spec |
- spec := builder pluggableButtonSpec new.
- spec model: self.
- spec label: #getLabel.
- spec color: #getColor.
- spec state: #getState.
- spec enabled: #returnTrue.
- widget := builder build: spec.
- self assert: (self buttonWidgetEnabled)!

Item was removed:
- ----- Method: ToolBuilderTests>>testButtonInitiallyEnabledSelector (in category 'tests-button') -----
- testButtonInitiallyEnabledSelector
- | spec |
- spec := builder pluggableButtonSpec new.
- spec model: self.
- spec label: #getLabel.
- spec color: #getColor.
- spec state: #getState.
- spec enabled: #returnTrue.
- widget := builder build: spec.
- self assert: (self buttonWidgetEnabled)!

Item was removed:
- ----- Method: ToolBuilderTests>>testButtonWidgetID (in category 'tests-button') -----
- testButtonWidgetID
- self makeButton.
- self assert: (builder widgetAt: #button) == widget.!

Item was removed:
- ----- Method: ToolBuilderTests>>testGetButtonColor (in category 'tests-button') -----
- testGetButtonColor
- self makeButton.
- queries := IdentitySet new.
- self changed: #getColor.
- self assert: (queries includes: #getColor).
- self assert: self widgetColor = self getColor.!

Item was removed:
- ----- Method: ToolBuilderTests>>testGetButtonEnabled (in category 'tests-button') -----
- testGetButtonEnabled
- self makeButton.
- queries := IdentitySet new.
- self changed: #getEnabled.
- self assert: (queries includes: #getEnabled).!

Item was removed:
- ----- Method: ToolBuilderTests>>testGetButtonLabel (in category 'tests-button') -----
- testGetButtonLabel
- self makeButton.
- queries := IdentitySet new.
- self changed: #getLabel.
- self assert: (queries includes: #getLabel).!

Item was removed:
- ----- Method: ToolBuilderTests>>testGetButtonSideEffects (in category 'tests-button') -----
- testGetButtonSideEffects
- self makeButton.
- queries := IdentitySet new.
- self changed: #testSignalWithNoDiscernableEffect.
- self expectedButtonSideEffects do:[:sym|
- self assert: (queries includes: sym).
- queries remove: sym.
- ].
- self assert: queries isEmpty.!

Item was removed:
- ----- Method: ToolBuilderTests>>testGetButtonState (in category 'tests-button') -----
- testGetButtonState
- self makeButton.
- queries := IdentitySet new.
- self changed: #getState.
- self assert: (queries includes: #getState).!

Item was removed:
- ----- Method: ToolBuilderTests>>testGetInputFieldColor (in category 'tests-input') -----
- testGetInputFieldColor
- self makeInputField.
- queries := IdentitySet new.
- self changed: #getColor.
- self assert: (queries includes: #getColor).
- self assert: self widgetColor = self getColor.!

Item was removed:
- ----- Method: ToolBuilderTests>>testGetInputFieldSelection (in category 'tests-input') -----
- testGetInputFieldSelection
- self makeInputField.
- queries := IdentitySet new.
- self changed: #getTextSelection.
- self assert: (queries includes: #getTextSelection).!

Item was removed:
- ----- Method: ToolBuilderTests>>testGetInputFieldSideEffectFree (in category 'tests-input') -----
- testGetInputFieldSideEffectFree
- self makeInputField.
- queries := IdentitySet new.
- self changed: #testSignalWithNoDiscernableEffect.
- self assert: queries isEmpty.!

Item was removed:
- ----- Method: ToolBuilderTests>>testGetInputFieldText (in category 'tests-input') -----
- testGetInputFieldText
- self makeInputField.
- queries := IdentitySet new.
- self changed: #getText.
- self assert: (queries includes: #getText).!

Item was removed:
- ----- Method: ToolBuilderTests>>testGetItemListSideEffectFree (in category 'tests-lists') -----
- testGetItemListSideEffectFree
- self makeItemList.
- queries := IdentitySet new.
- self changed: #testSignalWithNoDiscernableEffect.
- self assert: queries isEmpty.!

Item was removed:
- ----- Method: ToolBuilderTests>>testGetList (in category 'tests-lists') -----
- testGetList
- self makeList.
- queries := IdentitySet new.
- self changed: #getList.
- self assert: (queries includes: #getList).!

Item was removed:
- ----- Method: ToolBuilderTests>>testGetListIndex (in category 'tests-lists') -----
- testGetListIndex
- self makeList.
- queries := IdentitySet new.
- self changed: #getListIndex.
- self assert: (queries includes: #getListIndex).!

Item was removed:
- ----- Method: ToolBuilderTests>>testGetListSelection (in category 'tests-lists') -----
- testGetListSelection
- self makeItemList.
- queries := IdentitySet new.
- self changed: #getListSelection.
- self assert: (queries includes: #getListSelection).!

Item was removed:
- ----- Method: ToolBuilderTests>>testGetListSideEffectFree (in category 'tests-lists') -----
- testGetListSideEffectFree
- self makeList.
- queries := IdentitySet new.
- self changed: #testSignalWithNoDiscernableEffect.
- self assert: queries isEmpty.!

Item was removed:
- ----- Method: ToolBuilderTests>>testGetPanelChildren (in category 'tests-panel') -----
- testGetPanelChildren
- self makePanel.
- queries := IdentitySet new.
- self changed: #getChildren.
- self assert: (queries includes: #getChildren).!

Item was removed:
- ----- Method: ToolBuilderTests>>testGetPanelSideEffectFree (in category 'tests-panel') -----
- testGetPanelSideEffectFree
- self makePanel.
- queries := IdentitySet new.
- self changed: #testSignalWithNoDiscernableEffect.
- self assert: queries isEmpty.!

Item was removed:
- ----- Method: ToolBuilderTests>>testGetText (in category 'tests-text') -----
- testGetText
- self makeText.
- queries := IdentitySet new.
- self changed: #getText.
- self assert: (queries includes: #getText).!

Item was removed:
- ----- Method: ToolBuilderTests>>testGetTextColor (in category 'tests-text') -----
- testGetTextColor
- self makeText.
- queries := IdentitySet new.
- self changed: #getColor.
- self assert: (queries includes: #getColor).
- self assert: self widgetColor = self getColor.!

Item was removed:
- ----- Method: ToolBuilderTests>>testGetTextSelection (in category 'tests-text') -----
- testGetTextSelection
- self makeText.
- queries := IdentitySet new.
- self changed: #getTextSelection.
- self assert: (queries includes: #getTextSelection).!

Item was removed:
- ----- Method: ToolBuilderTests>>testGetTextSideEffectFree (in category 'tests-text') -----
- testGetTextSideEffectFree
- self makeText.
- queries := IdentitySet new.
- self changed: #testSignalWithNoDiscernableEffect.
- self assert: queries isEmpty.!

Item was removed:
- ----- Method: ToolBuilderTests>>testGetWindowChildren (in category 'tests-window') -----
- testGetWindowChildren
- self makeWindow.
- queries := IdentitySet new.
- self changed: #getChildren.
- self assert: (queries includes: #getChildren).!

Item was removed:
- ----- Method: ToolBuilderTests>>testGetWindowLabel (in category 'tests-window') -----
- testGetWindowLabel
- self makeWindow.
- queries := IdentitySet new.
- self changed: #getLabel.
- self assert: (queries includes: #getLabel).!

Item was removed:
- ----- Method: ToolBuilderTests>>testGetWindowSideEffectFree (in category 'tests-window') -----
- testGetWindowSideEffectFree
- self makeWindow.
- queries := IdentitySet new.
- self changed: #testSignalWithNoDiscernableEffect.
- self assert: queries isEmpty.!

Item was removed:
- ----- Method: ToolBuilderTests>>testInputWidgetID (in category 'tests-input') -----
- testInputWidgetID
- self makeInputField.
- self assert: (builder widgetAt: #input) == widget.!

Item was removed:
- ----- Method: ToolBuilderTests>>testItemListWidgetID (in category 'tests-lists') -----
- testItemListWidgetID
- self makeItemList.
- self assert: (builder widgetAt: #list) == widget.!

Item was removed:
- ----- Method: ToolBuilderTests>>testListWidgetID (in category 'tests-lists') -----
- testListWidgetID
- self makeList.
- self assert: (builder widgetAt: #list) == widget.!

Item was removed:
- ----- Method: ToolBuilderTests>>testPanelWidgetID (in category 'tests-panel') -----
- testPanelWidgetID
- self makePanel.
- self assert: (builder widgetAt: #panel) == widget.!

Item was removed:
- ----- Method: ToolBuilderTests>>testSetInputField (in category 'tests-input') -----
- testSetInputField
- self makeInputField.
- queries := IdentitySet new.
- self acceptWidgetText.
- self assert: (queries includes: #setText).!

Item was removed:
- ----- Method: ToolBuilderTests>>testSetListIndex (in category 'tests-lists') -----
- testSetListIndex
- self makeList.
- queries := IdentitySet new.
- self changeListWidget.
- self assert: (queries includes: #setListIndex).!

Item was removed:
- ----- Method: ToolBuilderTests>>testSetListSelection (in category 'tests-lists') -----
- testSetListSelection
- self makeItemList.
- queries := IdentitySet new.
- self changeListWidget.
- self assert: (queries includes: #setListSelection).!

Item was removed:
- ----- Method: ToolBuilderTests>>testSetText (in category 'tests-text') -----
- testSetText
- self makeText.
- queries := IdentitySet new.
- self acceptWidgetText.
- self assert: (queries includes: #setText).!

Item was removed:
- ----- Method: ToolBuilderTests>>testTextWidgetID (in category 'tests-text') -----
- testTextWidgetID
- self makeText.
- self assert: (builder widgetAt: #text) == widget!

Item was removed:
- ----- Method: ToolBuilderTests>>testTreeExpandPath (in category 'tests-trees') -----
- testTreeExpandPath
- "@@@@: REMOVE THIS - it's a hack (changed: #openPath)"
- self makeTree.
- queries := IdentitySet new.
- self changed: {#openPath. '4'. '2'. '3'}.
- self waitTick.
- self assert: (queries includes: #getChildrenOf).
- self assert: (queries includes: #setTreeSelection).
- self assert: (queries includes: #getLabelOf).
- !

Item was removed:
- ----- Method: ToolBuilderTests>>testTreeExpandPathFirst (in category 'tests-trees') -----
- testTreeExpandPathFirst
- "@@@@: REMOVE THIS - it's a hack (changed: #openPath)"
- self makeTree.
- queries := IdentitySet new.
- self changed: {#openPath. '1'. '2'. '2'}.
- self waitTick.
- self assert: (queries includes: #getChildrenOf).
- self assert: (queries includes: #setTreeSelection).
- self assert: (queries includes: #getLabelOf).
- !

Item was removed:
- ----- Method: ToolBuilderTests>>testTreeGetSelectionPath (in category 'tests-trees') -----
- testTreeGetSelectionPath
- self makeTree.
- queries := IdentitySet new.
- self changed: #getTreeSelectionPath.
- self waitTick.
- self assert: (queries includes: #getTreeSelectionPath).
- self assert: (queries includes: #getChildrenOf).
- self assert: (queries includes: #setTreeSelection).
- !

Item was removed:
- ----- Method: ToolBuilderTests>>testTreeRoots (in category 'tests-trees') -----
- testTreeRoots
- self makeTree.
- queries := IdentitySet new.
- self changed: #getRoots.
- self assert: (queries includes: #getRoots).!

Item was removed:
- ----- Method: ToolBuilderTests>>testTreeWidgetID (in category 'tests-trees') -----
- testTreeWidgetID
- self makeTree.
- self assert: (builder widgetAt: #tree) == widget.!

Item was removed:
- ----- Method: ToolBuilderTests>>testWindowCloseAction (in category 'tests-window') -----
- testWindowCloseAction
- self openWindow.
- builder close: widget.
- self assert: (queries includes: #noteWindowClosed).!

Item was removed:
- ----- Method: ToolBuilderTests>>testWindowID (in category 'tests-window') -----
- testWindowID
- self makeWindow.
- self assert: (builder widgetAt: #window) == widget.!

Item was removed:
- ----- Method: ToolBuilderTests>>waitTick (in category 'support') -----
- waitTick
- ^nil!

Item was removed:
- ----- Method: ToolBuilderTests>>widgetColor (in category 'support') -----
- widgetColor
- "Answer color from widget"
- self subclassResponsibility
-
- "NOTE: You can bail out if you don't know how to get the color from the widget:
- ^self getColor
- will work."!

Item was changed:
  ----- Method: UIManager>>chooseClassOrTrait:from: (in category 'ui requests') -----
  chooseClassOrTrait: label from: environment
  "Let the user choose a Class or Trait."
 
  | pattern |
  pattern := self request: label.
+ ^ self classOrTraitFrom: environment pattern: pattern label: label
- ^Utilities classOrTraitFrom: environment pattern: pattern label: label
  !

Item was added:
+ ----- Method: UIManager>>classFromPattern:withCaption: (in category 'system introspecting') -----
+ classFromPattern: pattern withCaption: aCaption
+ "If there is a class or trait whose name exactly given by pattern, return it.
+ If there is only one class or trait in the system whose name matches pattern, return it.
+ Otherwise, put up a menu offering the names of all classes that match pattern, and return the class chosen, else nil if nothing chosen.
+ This method ignores separator characters in the pattern"
+
+ ^self classOrTraitFrom: Smalltalk environment pattern: pattern label: aCaption
+ "
+ self classFromPattern: 'CharRecog' withCaption: ''
+ self classFromPattern: 'rRecog' withCaption: ''
+ self classFromPattern: 'znak' withCaption: ''
+ self classFromPattern: 'orph' withCaption: ''
+ self classFromPattern: 'TCompil' withCaption: ''
+ "
+ !

Item was added:
+ ----- Method: UIManager>>classOrTraitFrom:pattern:label: (in category 'system introspecting') -----
+ classOrTraitFrom: environment pattern: pattern label: label
+ "If there is a class or trait whose name exactly given by pattern, return it.
+ If there is only one class or trait in the given environment whose name matches pattern, return it.
+ Otherwise, put up a menu offering the names of all classes that match pattern, and return the class chosen, else nil if nothing chosen.
+ This method ignores separator characters in the pattern"
+
+ | toMatch potentialNames names exactMatch lines reducedIdentifiers selectedIndex |
+ toMatch := pattern copyWithoutAll: Character separators.
+ toMatch ifEmpty: [ ^nil ].
+ "If there's a class or trait named as pattern, then return it."
+ Symbol hasInterned: pattern ifTrue: [ :symbol |
+ environment at: symbol ifPresent: [ :maybeClassOrTrait |
+ ((maybeClassOrTrait isKindOf: Class) or: [
+ maybeClassOrTrait isTrait ])
+ ifTrue: [ ^maybeClassOrTrait ] ] ].
+ "No exact match, look for potential matches."
+ toMatch := pattern asLowercase copyWithout: $..
+ potentialNames := (environment classAndTraitNames) asOrderedCollection.
+ names := pattern last = $. "This is some old hack, using String>>#match: may be better."
+ ifTrue: [ potentialNames select: [ :each | each asLowercase = toMatch ] ]
+ ifFalse: [
+ potentialNames select: [ :each |
+ each includesSubstring: toMatch caseSensitive: false ] ].
+ exactMatch := names detect: [ :each | each asLowercase = toMatch ] ifNone: [ nil ].
+ lines := OrderedCollection new.
+ exactMatch ifNotNil: [ lines add: 1 ].
+ "Also try some fuzzy matching."
+ reducedIdentifiers := pattern suggestedTypeNames select: [ :each |
+ potentialNames includes: each ].
+ reducedIdentifiers ifNotEmpty: [
+ names addAll: reducedIdentifiers.
+ lines add: 1 + names size + reducedIdentifiers size ].
+ "Let the user select if there's more than one possible match. This may give surprising results."
+ selectedIndex := names size = 1
+ ifTrue: [ 1 ]
+ ifFalse: [
+ exactMatch ifNotNil: [ names addFirst: exactMatch ].
+ self chooseFrom: names lines: lines title: label ].
+ selectedIndex = 0 ifTrue: [ ^nil ].
+ ^environment at: (names at: selectedIndex) asSymbol!

Item was removed:
- ----- Method: Utilities class>>classFromPattern:withCaption: (in category '*ToolBuilder-Kernel') -----
- classFromPattern: pattern withCaption: aCaption
- "If there is a class or trait whose name exactly given by pattern, return it.
- If there is only one class or trait in the system whose name matches pattern, return it.
- Otherwise, put up a menu offering the names of all classes that match pattern, and return the class chosen, else nil if nothing chosen.
- This method ignores separator characters in the pattern"
-
- ^self classOrTraitFrom: Smalltalk environment pattern: pattern label: aCaption
- "
- self classFromPattern: 'CharRecog' withCaption: ''
- self classFromPattern: 'rRecog' withCaption: ''
- self classFromPattern: 'znak' withCaption: ''
- self classFromPattern: 'orph' withCaption: ''
- self classFromPattern: 'TCompil' withCaption: ''
- "
- !

Item was removed:
- ----- Method: Utilities class>>classOrTraitFrom:pattern:label: (in category '*ToolBuilder-Kernel') -----
- classOrTraitFrom: environment pattern: pattern label: label
- "If there is a class or trait whose name exactly given by pattern, return it.
- If there is only one class or trait in the given environment whose name matches pattern, return it.
- Otherwise, put up a menu offering the names of all classes that match pattern, and return the class chosen, else nil if nothing chosen.
- This method ignores separator characters in the pattern"
-
- | toMatch potentialNames names exactMatch lines reducedIdentifiers selectedIndex |
- toMatch := pattern copyWithoutAll: Character separators.
- toMatch ifEmpty: [ ^nil ].
- "If there's a class or trait named as pattern, then return it."
- Symbol hasInterned: pattern ifTrue: [ :symbol |
- environment at: symbol ifPresent: [ :maybeClassOrTrait |
- ((maybeClassOrTrait isKindOf: Class) or: [
- maybeClassOrTrait isTrait ])
- ifTrue: [ ^maybeClassOrTrait ] ] ].
- "No exact match, look for potential matches."
- toMatch := pattern asLowercase copyWithout: $..
- potentialNames := (environment classAndTraitNames) asOrderedCollection.
- names := pattern last = $. "This is some old hack, using String>>#match: may be better."
- ifTrue: [ potentialNames select: [ :each | each asLowercase = toMatch ] ]
- ifFalse: [
- potentialNames select: [ :each |
- each includesSubstring: toMatch caseSensitive: false ] ].
- exactMatch := names detect: [ :each | each asLowercase = toMatch ] ifNone: [ nil ].
- lines := OrderedCollection new.
- exactMatch ifNotNil: [ lines add: 1 ].
- "Also try some fuzzy matching."
- reducedIdentifiers := pattern suggestedTypeNames select: [ :each |
- potentialNames includes: each ].
- reducedIdentifiers ifNotEmpty: [
- names addAll: reducedIdentifiers.
- lines add: 1 + names size + reducedIdentifiers size ].
- "Let the user select if there's more than one possible match. This may give surprising results."
- selectedIndex := names size = 1
- ifTrue: [ 1 ]
- ifFalse: [
- exactMatch ifNotNil: [ names addFirst: exactMatch ].
- UIManager default chooseFrom: names lines: lines title: label ].
- selectedIndex = 0 ifTrue: [ ^nil ].
- ^environment at: (names at: selectedIndex) asSymbol!