UIPainter.st
changeset 2523 1f315c18f4da
parent 2522 45f29cf0cc5e
child 2525 16c3872003d7
equal deleted inserted replaced
2522:45f29cf0cc5e 2523:1f315c18f4da
  6487     self selectNodes:itemList asOrderedCollection.
  6487     self selectNodes:itemList asOrderedCollection.
  6488 !
  6488 !
  6489 
  6489 
  6490 doStepIn
  6490 doStepIn
  6491     "move the currently selected widget into the next available container below"
  6491     "move the currently selected widget into the next available container below"
  6492 
  6492     
  6493     |item oldParentItem newParentItem idx|
  6493     |item oldParentItem newParentItem idx|
  6494 
  6494 
  6495     item := self selectedNode.
  6495     item := self selectedNode.
  6496     (item notNil and:[(oldParentItem := item parent) notNil]) ifTrue:[
  6496     (item notNil and:[(oldParentItem := item parent) notNil]) ifTrue:[
  6497         idx := (oldParentItem indexOfChild:item) + 1.
  6497         idx := (oldParentItem indexOfChild:item) + 1.
  6498         newParentItem := oldParentItem children detect:[:eachChild|
  6498         newParentItem := oldParentItem children 
  6499             eachChild contents spec class supportsSubComponents
  6499                     detect:[:eachChild | eachChild contents spec class supportsSubComponents]
  6500         ] startingAt:idx ifNone:nil.
  6500                     startingAt:idx
       
  6501                     ifNone:nil.
  6501         newParentItem notNil ifTrue:[
  6502         newParentItem notNil ifTrue:[
  6502             self doChangeParentOfSelectedItemTo:newParentItem
  6503             self doChangeParentOfSelectedItemTo:newParentItem
  6503         ].
  6504         ].
  6504     ]
  6505     ]
  6505 !
  6506 !
  6514 !
  6515 !
  6515 
  6516 
  6516 doStepOver:anIndex
  6517 doStepOver:anIndex
  6517     "moves child 'anIndex' forward or backward in list of children"
  6518     "moves child 'anIndex' forward or backward in list of children"
  6518 
  6519 
  6519     |item idx size prnt spVw view canvas|
  6520     |item idx size parentItem parentItemsView itemsView canvas|
  6520 
  6521 
  6521     self askForSelectionChangeAllowed ifFalse:[^ self].
  6522     self askForSelectionChangeAllowed ifFalse:[^ self].
  6522 
  6523 
  6523     (    (item := self selectedNode) isNil
  6524     (    (item := self selectedNode) isNil
  6524      or:[(prnt := item parent) isNil
  6525      or:[(parentItem := item parent) isNil
  6525      or:[(size := prnt children size) < 2
  6526      or:[(size := parentItem children size) < 2
  6526      or:[(idx  := prnt indexOfChild:item) == 0]]]
  6527      or:[(idx  := parentItem indexOfChild:item) == 0]]]
  6527     ) ifTrue:[
  6528     ) ifTrue:[
  6528         ^ self
  6529         ^ self
  6529     ].
  6530     ].
       
  6531 
  6530     idx := idx + anIndex.
  6532     idx := idx + anIndex.
  6531 
  6533 
  6532     idx < 1 ifTrue:[idx := size]
  6534     idx < 1 ifTrue:[idx := size]
  6533            ifFalse:[idx > size ifTrue:[idx := 1]].
  6535            ifFalse:[idx > size ifTrue:[idx := 1]].
  6534 
  6536 
  6535     self setSelection:nil.
  6537     self setSelection:nil.
  6536     model remove:item.
  6538     model remove:item.
  6537     model add:item beforeIndex:idx below:prnt.
  6539     model add:item beforeIndex:idx below:parentItem.
  6538 
  6540 
  6539     idx    := prnt indexOfChild:item.
  6541     idx := parentItem indexOfChild:item.
  6540     view   := item contents view.
  6542     itemsView := item contents view.
  6541     spVw   := prnt contents view.
  6543     parentItemsView := parentItem contents view.
       
  6544 
  6542     canvas := self canvas.
  6545     canvas := self canvas.
  6543 
       
  6544     canvas hideSelection.
  6546     canvas hideSelection.
  6545 
  6547 
  6546     spVw changeSequenceOrderFor:view to:idx.
  6548     itemsView isView ifFalse:[
  6547 
  6549         "/ a component - has its own collection (and therefore indexing) - sigh
  6548     spVw specClass isLayoutContainer ifFalse:[
  6550         idx := idx - ((1 to:idx-1) count:[:i | (parentItem children at:i) contents view isView]).
       
  6551         parentItemsView changeSequenceOrderFor:itemsView to:idx.
       
  6552     ] ifTrue:[
       
  6553         "/ a view - has its own collection (and therefore indexing) - sigh
       
  6554         idx := idx - ((1 to:idx-1) count:[:i | (parentItem children at:i) contents view isView not]).
       
  6555         parentItemsView changeSequenceOrderFor:itemsView to:idx.
       
  6556     ].
       
  6557 
       
  6558     parentItemsView specClass isLayoutContainer ifFalse:[
  6549         "/ spVw components notEmptyOrNil ifTrue:[ self halt ].
  6559         "/ spVw components notEmptyOrNil ifTrue:[ self halt ].
  6550         spVw subViews do:[:v| v raise ].
  6560         parentItemsView subViews do:[:v| v raise ].
  6551     ].
  6561     ].
  6552     canvas showSelection.
  6562     canvas showSelection.
  6553     self selectNode:item.
  6563     self selectNode:item.
  6554 ! !
  6564 ! !
  6555 
  6565