diff -r cd3a3b82cb98 -r f16b2ca2be5b 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'!