[Pkg] The Trunk: ToolBuilder-Morphic-pre.215.mcz
commits at source.squeak.org
commits at source.squeak.org
Tue Apr 24 08:30:51 UTC 2018
Patrick Rein uploaded a new version of ToolBuilder-Morphic to project The Trunk:
http://source.squeak.org/trunk/ToolBuilder-Morphic-pre.215.mcz
==================== Summary ====================
Name: ToolBuilder-Morphic-pre.215
Author: pre
Time: 24 April 2018, 10:30:38.738732 am
UUID: f78a62d4-8ee0-6f40-84e3-7fe6f5539d8e
Ancestors: ToolBuilder-Morphic-cmm.214
Adds a callback to pluggable trees to retrieve the currently selected path in the tree.
Also includes a minor fix for the double click functionality as the tool builder did not pass the callback selector to the tree morph.
=============== Diff against ToolBuilder-Morphic-cmm.214 ===============
Item was changed:
----- Method: MorphicToolBuilder>>buildPluggableTree: (in category 'widgets required') -----
buildPluggableTree: aSpec
| widget |
widget := self treeClass new.
self register: widget id: aSpec name.
widget model: aSpec model.
widget getSelectedPathSelector: aSpec getSelectedPath.
+ widget setSelectedPathSelector: aSpec setSelectedPath.
widget setSelectedSelector: aSpec setSelected.
widget getSelectedSelector: aSpec getSelected.
widget setSelectedParentSelector: aSpec setSelectedParent.
widget getChildrenSelector: aSpec getChildren.
widget hasChildrenSelector: aSpec hasChildren.
widget getLabelSelector: aSpec label.
widget getIconSelector: aSpec icon.
widget getHelpSelector: aSpec help.
widget getMenuSelector: aSpec menu.
widget keystrokeActionSelector: aSpec keyPress.
widget nodeClass: aSpec nodeClass.
widget getRootsSelector: aSpec roots.
widget autoDeselect: aSpec autoDeselect.
+ widget doubleClickSelector: aSpec doubleClick.
widget dropItemSelector: aSpec dropItem.
widget wantsDropSelector: aSpec dropAccept.
widget dragItemSelector: aSpec dragItem.
widget dragStartedSelector: aSpec dragStarted.
widget columns: aSpec columns.
"Override default scroll bar policies if needed. Widget will use preference values otherwise."
aSpec hScrollBarPolicy ifNotNil: [:policy |
policy caseOf: {
[#always] -> [widget alwaysShowHScrollBar].
[#never] -> [widget hideHScrollBarIndefinitely].
[#whenNeeded] -> [widget showHScrollBarOnlyWhenNeeded]. } ].
aSpec vScrollBarPolicy ifNotNil: [:policy |
policy caseOf: {
[#always] -> [widget alwaysShowVScrollBar].
[#never] -> [widget hideVScrollBarIndefinitely].
[#whenNeeded] -> [widget showVScrollBarOnlyWhenNeeded]. } ].
self setFrame: aSpec frame in: widget.
self setLayoutHintsFor: widget spec: aSpec.
parent ifNotNil:[self add: widget to: parent].
" panes ifNotNil:[
aSpec roots ifNotNil:[panes add: aSpec roots].
]. "
^widget!
Item was changed:
SimpleHierarchicalListMorph subclass: #PluggableTreeMorph
+ instanceVariableNames: 'rootWrappers selectedWrapper getRootsSelector getChildrenSelector hasChildrenSelector getLabelSelector getIconSelector getSelectedPathSelector setSelectedPathSelector setSelectedParentSelector getHelpSelector dropItemSelector wantsDropSelector dragItemSelector dragTypeSelector nodeClass lastKeystrokeTime lastKeystrokes dragStartedSelector doubleClickSelector'
- instanceVariableNames: 'rootWrappers selectedWrapper getRootsSelector getChildrenSelector hasChildrenSelector getLabelSelector getIconSelector getSelectedPathSelector setSelectedParentSelector getHelpSelector dropItemSelector wantsDropSelector dragItemSelector dragTypeSelector nodeClass lastKeystrokeTime lastKeystrokes dragStartedSelector doubleClickSelector'
classVariableNames: 'FilterByLabelsOnly MaximumSearchDepth'
poolDictionaries: ''
category: 'ToolBuilder-Morphic'!
!PluggableTreeMorph commentStamp: 'ar 2/12/2005 04:38' prior: 0!
A pluggable tree morph.!
Item was changed:
----- Method: PluggableTreeMorph>>setSelectedMorph: (in category 'selection') -----
setSelectedMorph: aMorph
+
-
selectedWrapper := aMorph complexContents.
"Let the model now about the selected object, not wrapper."
setSelectionSelector ifNotNil: [:symbol |
model
perform: symbol
with: (selectedWrapper ifNotNil: [:w | w item])].
+ self setSelectedParentMorph: aMorph.
+ self setSelectedPath: aMorph.!
- self setSelectedParentMorph: aMorph.!
Item was added:
+ ----- Method: PluggableTreeMorph>>setSelectedPath: (in category 'selection') -----
+ setSelectedPath: aMorph
+
+ | items wrapperPath |
+ wrapperPath := selectedWrapper
+ ifNil: [#()]
+ ifNotNil: [
+ wrapperPath := {selectedWrapper} asOrderedCollection.
+ [wrapperPath last parent notNil]
+ whileTrue: [wrapperPath addLast: wrapperPath last parent].
+ wrapperPath].
+ items := wrapperPath collect: [:w | w item].
+ setSelectedPathSelector ifNotNil: [:symbol |
+ model
+ perform: symbol
+ with: items].
+
+ !
Item was added:
+ ----- Method: PluggableTreeMorph>>setSelectedPathSelector (in category 'accessing') -----
+ setSelectedPathSelector
+ ^ setSelectedPathSelector
+ !
Item was added:
+ ----- Method: PluggableTreeMorph>>setSelectedPathSelector: (in category 'accessing') -----
+ setSelectedPathSelector: aSymbol
+ setSelectedPathSelector := aSymbol.
+ !
More information about the Packages
mailing list