--- 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'!