--- a/HierarchicalItem.st Tue Sep 05 22:50:03 2000 +0200
+++ b/HierarchicalItem.st Wed Sep 06 14:41:59 2000 +0200
@@ -673,7 +673,7 @@
|model|
(what ~~ #hierarchy and:[what ~~ #icon]) ifTrue:[
- width := nil
+ width := height := nil
].
(model := self model) notNil ifTrue:[
@@ -730,24 +730,30 @@
"evaluate a block on each child starting with the
child at startIndex to the endIndex.
"
- self children size ~~ 0 ifTrue:[
+ |children|
+
+ children := self children.
+
+ children size ~~ 0 ifTrue:[
self criticalDo:[
children from:startIndex to:endIndex do:aOneArgBlock
]
]
-
!
from:startIndex to:endIndex reverseDo:aOneArgBlock
"evaluate a block on each child starting with the
child at endIndex to the startIndex.
"
- self children size ~~ 0 ifTrue:[
+ |children|
+
+ children := self children.
+
+ children size ~~ 0 ifTrue:[
self criticalDo:[
children from:startIndex to:endIndex reverseDo:aOneArgBlock
]
]
-
!
recursiveCollect:aBlock
@@ -781,7 +787,11 @@
"evaluate a block on each item and all the sub-items;
proccesing children in reverse direction
"
- self children size ~~ 0 ifTrue:[
+ |children|
+
+ children := self children.
+
+ children size ~~ 0 ifTrue:[
self criticalDo:[
children reverseDo:[:aChild|
aChild reverseRecursiveDo:aOneArgBlock.
@@ -789,7 +799,6 @@
]
]
].
-
!
recursiveSelect:aBlock
@@ -813,7 +822,11 @@
"evaluate a block on each child
proccesing children in reverse direction
"
- self children size ~~ 0 ifTrue:[
+ |children|
+
+ children := self children.
+
+ children size ~~ 0 ifTrue:[
self criticalDo:[children reverseDo:aOneArgBlock]
]
!
@@ -822,9 +835,11 @@
"return a new collection with all children from the receiver, for which
the argument aBlock evaluates to true.
"
- |newCollection|
+ |newCollection children|
- self children size == 0 ifTrue:[
+ children := self children.
+
+ children size == 0 ifTrue:[
^ #()
].
@@ -1117,6 +1132,28 @@
^ model middleButtonMenuFor:self
].
^ nil
+!
+
+recursiveSortChildren:aSortBlock
+
+ |children|
+
+ (children := self children) notNil ifTrue:[
+ self criticalDo:[
+ children sort:aSortBlock.
+ children do:[:aChild| aChild recursiveSortChildren:aSortBlock ]
+ ]
+ ].
+!
+
+sortChildren:aSortBlock
+ |children|
+
+ (children := self children) notNil ifTrue:[
+ self criticalDo:[
+ children sort:aSortBlock
+ ]
+ ].
! !
!HierarchicalItem methodsFor:'protocol displaying'!
@@ -1510,5 +1547,5 @@
!HierarchicalItem class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libwidg2/HierarchicalItem.st,v 1.23 2000-08-21 22:44:18 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libwidg2/HierarchicalItem.st,v 1.24 2000-09-06 12:41:59 cg Exp $'
! !