[squeak-dev] The Trunk: ToolBuilder-Morphic-cmm.113.mcz
commits at source.squeak.org
commits at source.squeak.org
Wed Apr 1 19:40:06 UTC 2015
Chris Muller uploaded a new version of ToolBuilder-Morphic to project The Trunk:
http://source.squeak.org/trunk/ToolBuilder-Morphic-cmm.113.mcz
==================== Summary ====================
Name: ToolBuilder-Morphic-cmm.113
Author: cmm
Time: 1 April 2015, 2:39:58.323 pm
UUID: 85dfc77a-e0ca-47b4-b633-ac05b10332a8
Ancestors: ToolBuilder-Morphic-cmm.112
- Filter-navigation DNU when there is no selection. Filtering still needs to be figured out for the roots of a tree...
- Restore Marcel's latest selectPath:in: from today.
- Don't rely on #selection: from setSelectedMorph: to fix selection-rendering in UI's, instead we should be sending proper changed notifications from each model.
=============== Diff against ToolBuilder-Morphic-cmm.112 ===============
Item was changed:
----- Method: PluggableTreeMorph>>filterTree (in category 'filtering') -----
filterTree
self hasFilter ifFalse:
[ self removeFilter.
^ self ].
self indicateFiltered.
"Clean up the tree."
(self selectedMorph
ifNil: [ self roots ]
ifNotNil:
[ : m | {m} ]) do:
[ : item | | filteredItems |
item applyFilter: lastKeystrokes.
item visible ifFalse:
[ "Do not hide the item where the filter is based on."
item show.
item isExpanded ifFalse: [ item toggleExpandedState ] ].
filteredItems := self filteredItems.
"If configured as a navigation tool, advance the selection."
(PluggableTreeMorph maximumSearchDepth = 1 and: [ PluggableTreeMorph filterByLabelsOnly not ]) ifTrue:
+ [ |toBeExpanded|
+ (filteredItems notEmpty and: [ selectedMorph ~= filteredItems last ]) ifTrue:
+ [ self setSelectedMorph:
+ (toBeExpanded := selectedMorph
+ ifNil: [ filteredItems first ]
+ ifNotNil: [ filteredItems after: selectedMorph ]).
+ toBeExpanded isExpanded ifFalse: [ toBeExpanded toggleExpandedState ] ] ] ].
- [ (filteredItems notEmpty and: [ selectedMorph ~= filteredItems last ]) ifTrue:
- [ self setSelectedMorph: (filteredItems after: selectedMorph).
- selectedMorph isExpanded ifFalse: [ selectedMorph toggleExpandedState ] ] ] ].
self adjustSubmorphPositions!
Item was changed:
----- Method: PluggableTreeMorph>>selectPath:in: (in category 'selection') -----
selectPath: path in: listItem
+ path isEmpty ifTrue: [^self selection: nil].
+
- path isEmpty ifTrue: [^self setSelectedMorph: nil].
listItem withSiblingsDo: [:each |
(each complexContents item = path first) ifTrue: [
each isExpanded ifFalse: [
each toggleExpandedState.
self adjustSubmorphPositions.
].
each changed.
path size = 1 ifTrue: [
+ ^self selection: each complexContents
- ^self setSelectedMorph: each
].
+ each firstChild ifNil: [^self selection: nil].
- each firstChild ifNil: [^self setSelectedMorph: nil].
^self selectPath: path allButFirst in: each firstChild
].
].
+ ^self selection: nil
- ^self setSelectedMorph: nil
!
Item was changed:
----- Method: PluggableTreeMorph>>setSelectedMorph: (in category 'selection') -----
setSelectedMorph: aMorph
selectedWrapper := aMorph complexContents.
- self selection: selectedWrapper.
"Let the model now about the selected object, not wrapper."
setSelectionSelector ifNotNil: [:symbol |
model
perform: symbol
with: (selectedWrapper ifNotNil: [ selectedWrapper item ])].
-
"The model may not have access to the parent object in terms of this tree structure."
setSelectedParentSelector ifNotNil: [:symbol |
model
perform: symbol
with: (selectedWrapper ifNotNil: [selectedWrapper parent ifNotNil: [: parentWrapper | parentWrapper item]])].!
More information about the Squeak-dev
mailing list
|