numeration error fixed
authortz
Tue, 03 Feb 1998 00:33:23 +0100
changeset 562 f16b2ca2be5b
parent 561 cd3a3b82cb98
child 563 81f54df8d333
numeration error fixed
HierarchicalListEditor.st
--- a/HierarchicalListEditor.st	Tue Feb 03 00:15:03 1998 +0100
+++ b/HierarchicalListEditor.st	Tue Feb 03 00:33:23 1998 +0100
@@ -1069,8 +1069,9 @@
     [
         newItem := self newItem.
         node parent notNil 
-            ifTrue: [treeView model add: newItem after: (node parent children at: node parent children size ifAbsent: nil)] 
+            ifTrue: [treeView model add: newItem after:node] 
             ifFalse:[treeView model add: newItem beforeIndex:1 below:node].
+
         newItem name: 'Child ', (self getDepthAndSistersNumberOfNode: newItem onParentNode: node parent).
         treeView selectNode: newItem.
         self updateChannels.
@@ -1285,15 +1286,22 @@
 getDepthAndSistersNumberOfNode: aNode onParentNode: aParentNode
     "return depth of selected node"
 
-    |parent childNode depthAndSistersNumber|
+    |parent childNode depthAndSistersNumbers str|
 
-    depthAndSistersNumber := ''.
+    depthAndSistersNumbers := OrderedCollection new.
     childNode := aNode.
     parent := aParentNode.
-    [parent notNil ] 
-    whileTrue: [depthAndSistersNumber := depthAndSistersNumber, '.', (parent children indexOf: childNode) printString. childNode := parent. parent := parent parent. ].
-
-    ^(depthAndSistersNumber reverse copyFrom: 1 to: depthAndSistersNumber size - 2), aParentNode children size printString
+    [parent notNil] 
+    whileTrue: 
+    [
+        depthAndSistersNumbers add: (parent children indexOf: childNode). 
+        childNode := parent. 
+        parent := parent parent. 
+    ].
+    depthAndSistersNumbers removeFirst; addFirst: aParentNode children size.
+    str := ''.
+    depthAndSistersNumbers reverseDo: [:n| str := str, n printString, '.'].
+    ^str copyFrom: 1 to: str size - 1
 ! !
 
 !HierarchicalListEditor class methodsFor:'documentation'!