[squeak-dev] The Trunk: Tools-mt.565.mcz
commits at source.squeak.org
commits at source.squeak.org
Sun Mar 29 12:44:48 UTC 2015
Marcel Taeumel uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-mt.565.mcz
==================== Summary ====================
Name: Tools-mt.565
Author: mt
Time: 29 March 2015, 2:44:29.709 pm
UUID: f8216267-8713-0449-bef6-35fecc620960
Ancestors: Tools-topa.564
Refactored toggle/expand code in IndentingListItemMorph.
=============== Diff against Tools-topa.564 ===============
Item was changed:
+ ----- Method: IndentingListItemMorph>>addChildrenForList:addingTo:withExpandedItems: (in category 'container protocol - private') -----
- ----- Method: IndentingListItemMorph>>addChildrenForList:addingTo:withExpandedItems: (in category 'private-container protocol') -----
addChildrenForList: hostList addingTo: morphList withExpandedItems: expandedItems
firstChild ifNotNil: [
firstChild withSiblingsDo: [ :aNode | aNode delete].
].
firstChild := nil.
complexContents hasContents ifFalse: [^self].
firstChild := hostList
addMorphsTo: morphList
from: complexContents contents
allowSorting: true
withExpandedItems: expandedItems
atLevel: indentLevel + 1.
!
Item was changed:
+ ----- Method: IndentingListItemMorph>>canExpand (in category 'testing') -----
- ----- Method: IndentingListItemMorph>>canExpand (in category 'accessing') -----
canExpand
^complexContents hasContents!
Item was added:
+ ----- Method: IndentingListItemMorph>>collapse (in category 'container protocol') -----
+ collapse
+
+ self isExpanded ifFalse: [^ self].
+
+ self isExpanded: false.
+
+ firstChild ifNotNil: [:collapsingNode |
+ | toDelete |
+ toDelete := OrderedCollection new.
+ collapsingNode withSiblingsDo: [:aNode | aNode recursiveAddTo: toDelete].
+ container noteRemovalOfAll: toDelete].
+
+ self changed.!
Item was changed:
+ ----- Method: IndentingListItemMorph>>complexContents (in category 'accessing') -----
- ----- Method: IndentingListItemMorph>>complexContents (in category 'private-container protocol') -----
complexContents
^complexContents!
Item was added:
+ ----- Method: IndentingListItemMorph>>expand (in category 'container protocol') -----
+ expand
+
+ | newChildren c |
+
+ (self isExpanded or: [self canExpand not])
+ ifTrue: [^ self].
+
+ (c := self getChildren) ifEmpty: [
+ "Due to the guessing in #canExpand, it may still fail here."
+ ^ self].
+
+ self isExpanded: true.
+
+ newChildren := container
+ addSubmorphsAfter: self
+ fromCollection: c
+ allowSorting: true.
+
+ firstChild := newChildren first.!
Item was changed:
+ ----- Method: IndentingListItemMorph>>hasIcon (in category 'testing') -----
- ----- Method: IndentingListItemMorph>>hasIcon (in category 'accessing') -----
hasIcon
"Answer whether the receiver has an icon."
^ icon notNil!
Item was changed:
+ ----- Method: IndentingListItemMorph>>highlight (in category 'container protocol - private') -----
- ----- Method: IndentingListItemMorph>>highlight (in category 'private-container protocol') -----
highlight
(self valueOfProperty: #wasRefreshed ifAbsent: [false])
ifFalse: [self color: complexContents highlightingColor]
ifTrue: [self color: self color negated].
self changed.
!
Item was changed:
+ ----- Method: IndentingListItemMorph>>isFirstItem (in category 'testing') -----
- ----- Method: IndentingListItemMorph>>isFirstItem (in category 'accessing') -----
isFirstItem
^owner submorphs first == self!
Item was changed:
+ ----- Method: IndentingListItemMorph>>isSoleItem (in category 'testing') -----
- ----- Method: IndentingListItemMorph>>isSoleItem (in category 'accessing') -----
isSoleItem
^self isFirstItem and: [ owner submorphs size = 1 ]!
Item was changed:
+ ----- Method: IndentingListItemMorph>>openPath: (in category 'container protocol - private') -----
- ----- Method: IndentingListItemMorph>>openPath: (in category 'private-container protocol') -----
openPath: anArray
| found |
anArray isEmpty
ifTrue: [^ container setSelectedMorph: nil].
found := nil.
self
withSiblingsDo: [:each | found
ifNil: [(each complexContents asString = anArray first
or: [anArray first isNil])
ifTrue: [found := each]]].
found
ifNil: ["try again with no case sensitivity"
self
withSiblingsDo: [:each | found
ifNil: [(each complexContents asString sameAs: anArray first)
ifTrue: [found := each]]]].
found
ifNotNil: [found isExpanded
ifFalse: [found toggleExpandedState.
container adjustSubmorphPositions].
found changed.
anArray size = 1
ifTrue: [^ container setSelectedMorph: found].
^ found firstChild
ifNil: [container setSelectedMorph: nil]
ifNotNil: [found firstChild openPath: anArray allButFirst]].
^ container setSelectedMorph: nil!
Item was changed:
+ ----- Method: IndentingListItemMorph>>recursiveAddTo: (in category 'container protocol - private') -----
- ----- Method: IndentingListItemMorph>>recursiveAddTo: (in category 'private-container protocol') -----
recursiveAddTo: aCollection
firstChild ifNotNil: [
firstChild withSiblingsDo: [ :aNode | aNode recursiveAddTo: aCollection].
].
aCollection add: self
!
Item was changed:
+ ----- Method: IndentingListItemMorph>>recursiveDelete (in category 'container protocol - private') -----
- ----- Method: IndentingListItemMorph>>recursiveDelete (in category 'private-container protocol') -----
recursiveDelete
firstChild ifNotNil: [
firstChild withSiblingsDo: [ :aNode | aNode recursiveDelete].
].
self delete
!
Item was changed:
+ ----- Method: IndentingListItemMorph>>toggleExpandedState (in category 'container protocol') -----
- ----- Method: IndentingListItemMorph>>toggleExpandedState (in category 'private-container protocol') -----
toggleExpandedState
+ self isExpanded
+ ifTrue: [self collapse]
+ ifFalse: [self expand].!
- | newChildren toDelete c |
-
- isExpanded := isExpanded not.
- toDelete := OrderedCollection new.
- firstChild ifNotNil: [
- firstChild withSiblingsDo: [ :aNode | aNode recursiveAddTo: toDelete].
- ].
- container noteRemovalOfAll: toDelete.
- (isExpanded and: [complexContents hasContents]) ifFalse: [
- ^self changed
- ].
- (c := self getChildren) isEmpty ifTrue: [^self changed].
- newChildren := container
- addSubmorphsAfter: self
- fromCollection: c
- allowSorting: true.
- firstChild := newChildren first.
- !
More information about the Squeak-dev
mailing list
|