added:
#recursiveSetCollapsedHelper
#recursiveSetExpandedAndAddToListHelper:
changed:
#do:
#recursiveSetCollapsed
#recursiveSetExpandedAndAddToList:
tuning and lock fix
--- a/HierarchicalItem.st Fri Feb 05 17:10:10 2010 +0100
+++ b/HierarchicalItem.st Wed Mar 03 19:31:52 2010 +0100
@@ -884,7 +884,7 @@
do:aOneArgBlock
"evaluate a block for each child"
- ^ self from:1 do:aOneArgBlock
+ ^ self from:1 to:nil do:aOneArgBlock
!
from:startIndex do:aOneArgBlock
@@ -1318,11 +1318,25 @@
recursiveSetCollapsed
"collapse all children and sub-children without notifications"
+ self criticalDo:[
+ self recursiveSetCollapsedHelper
+ ]
+!
+
+recursiveSetCollapsedHelper
+ "private helper.
+ collapse all children and sub-children without notifications.
+ Helper only - does not lock"
+
isExpanded := false.
"/ do not call #size: children will be autoloaded !!!!
children size ~~ 0 ifTrue:[
- self nonCriticalFrom:1 to:nil do:[:el| el canRecursiveCollapse ifTrue:[el recursiveSetCollapsed]].
+ self nonCriticalFrom:1 to:nil do:[:eachChild|
+ eachChild canRecursiveCollapse ifTrue:[
+ eachChild recursiveSetCollapsedHelper
+ ]
+ ].
]
!
@@ -1330,13 +1344,23 @@
"expand all children and sub-children without notifications;
add children to list"
+ self criticalDo:[
+ self recursiveSetExpandedAndAddToListHelper:aList
+ ].
+!
+
+recursiveSetExpandedAndAddToListHelper:aList
+ "private helper.
+ expand all children and sub-children without notifications; adds children to aList
+ Helper only - does not lock"
+
isExpanded := true.
- self do:[:eachChild|
+ self nonCriticalFrom:1 to:nil do:[:eachChild|
aList add:eachChild.
eachChild canRecursiveExpand ifTrue:[
- eachChild recursiveSetExpandedAndAddToList:aList.
+ eachChild recursiveSetExpandedAndAddToListHelper:aList.
].
].
! !
@@ -1924,9 +1948,9 @@
!HierarchicalItem class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libwidg2/HierarchicalItem.st,v 1.89 2009-11-05 19:52:41 stefan Exp $'
+ ^ '$Header: /cvs/stx/stx/libwidg2/HierarchicalItem.st,v 1.90 2010-03-03 18:31:52 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libwidg2/HierarchicalItem.st,v 1.89 2009-11-05 19:52:41 stefan Exp $'
+ ^ '$Header: /cvs/stx/stx/libwidg2/HierarchicalItem.st,v 1.90 2010-03-03 18:31:52 cg Exp $'
! !