added:
authorClaus Gittinger <cg@exept.de>
Wed, 03 Mar 2010 19:31:52 +0100
changeset 3882 43f1a731b6c2
parent 3881 0db3473b4eca
child 3883 090387ed8844
added: #recursiveSetCollapsedHelper #recursiveSetExpandedAndAddToListHelper: changed: #do: #recursiveSetCollapsed #recursiveSetExpandedAndAddToList: tuning and lock fix
HierarchicalItem.st
--- 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 $'
 ! !