HierarchicalListEditor.st
changeset 562 f16b2ca2be5b
parent 559 33365ca6eb1d
child 566 58b18ffe959c
equal deleted inserted replaced
561:cd3a3b82cb98 562:f16b2ca2be5b
  1067     (node := treeView selectedNode) notNil 
  1067     (node := treeView selectedNode) notNil 
  1068     ifTrue:
  1068     ifTrue:
  1069     [
  1069     [
  1070         newItem := self newItem.
  1070         newItem := self newItem.
  1071         node parent notNil 
  1071         node parent notNil 
  1072             ifTrue: [treeView model add: newItem after: (node parent children at: node parent children size ifAbsent: nil)] 
  1072             ifTrue: [treeView model add: newItem after:node] 
  1073             ifFalse:[treeView model add: newItem beforeIndex:1 below:node].
  1073             ifFalse:[treeView model add: newItem beforeIndex:1 below:node].
       
  1074 
  1074         newItem name: 'Child ', (self getDepthAndSistersNumberOfNode: newItem onParentNode: node parent).
  1075         newItem name: 'Child ', (self getDepthAndSistersNumberOfNode: newItem onParentNode: node parent).
  1075         treeView selectNode: newItem.
  1076         treeView selectNode: newItem.
  1076         self updateChannels.
  1077         self updateChannels.
  1077         isModified := true
  1078         isModified := true
  1078     ]
  1079     ]
  1283 !
  1284 !
  1284 
  1285 
  1285 getDepthAndSistersNumberOfNode: aNode onParentNode: aParentNode
  1286 getDepthAndSistersNumberOfNode: aNode onParentNode: aParentNode
  1286     "return depth of selected node"
  1287     "return depth of selected node"
  1287 
  1288 
  1288     |parent childNode depthAndSistersNumber|
  1289     |parent childNode depthAndSistersNumbers str|
  1289 
  1290 
  1290     depthAndSistersNumber := ''.
  1291     depthAndSistersNumbers := OrderedCollection new.
  1291     childNode := aNode.
  1292     childNode := aNode.
  1292     parent := aParentNode.
  1293     parent := aParentNode.
  1293     [parent notNil ] 
  1294     [parent notNil] 
  1294     whileTrue: [depthAndSistersNumber := depthAndSistersNumber, '.', (parent children indexOf: childNode) printString. childNode := parent. parent := parent parent. ].
  1295     whileTrue: 
  1295 
  1296     [
  1296     ^(depthAndSistersNumber reverse copyFrom: 1 to: depthAndSistersNumber size - 2), aParentNode children size printString
  1297         depthAndSistersNumbers add: (parent children indexOf: childNode). 
       
  1298         childNode := parent. 
       
  1299         parent := parent parent. 
       
  1300     ].
       
  1301     depthAndSistersNumbers removeFirst; addFirst: aParentNode children size.
       
  1302     str := ''.
       
  1303     depthAndSistersNumbers reverseDo: [:n| str := str, n printString, '.'].
       
  1304     ^str copyFrom: 1 to: str size - 1
  1297 ! !
  1305 ! !
  1298 
  1306 
  1299 !HierarchicalListEditor class methodsFor:'documentation'!
  1307 !HierarchicalListEditor class methodsFor:'documentation'!
  1300 
  1308 
  1301 version
  1309 version