MenuEditor.st
changeset 557 de8d8782486c
parent 548 93fea26562c8
child 571 1e362121fe32
--- a/MenuEditor.st	Mon Feb 02 23:28:17 1998 +0100
+++ b/MenuEditor.st	Mon Feb 02 23:48:47 1998 +0100
@@ -1199,28 +1199,28 @@
                 #'value:' #doStepUp
                 #'activeHelpKey:' #editMoveUp
                 #'enabled:' #enabledStepOver
-                #'labelImage:' #(#ResourceRetriever #MenuEditor #upIcon 'Move Up')
+                #'labelImage:' #(#ResourceRetriever #ToolApplicationModel #upIcon 'Move Up')
             )
              #(#MenuItem
                 #'label:' 'Move Down'
                 #'value:' #doStepDown
                 #'activeHelpKey:' #editMoveDown
                 #'enabled:' #enabledStepOver
-                #'labelImage:' #(#ResourceRetriever #MenuEditor #downIcon 'Move Down')
+                #'labelImage:' #(#ResourceRetriever #ToolApplicationModel #downIcon 'Move Down')
             )
              #(#MenuItem
                 #'label:' 'Move In'
                 #'value:' #doStepIn
                 #'activeHelpKey:' #editMoveIn
                 #'enabled:' #enabledStepIn
-                #'labelImage:' #(#ResourceRetriever #MenuEditor #downRightIcon 'Move In')
+                #'labelImage:' #(#ResourceRetriever #ToolApplicationModel #downRightIcon 'Move In')
             )
              #(#MenuItem
                 #'label:' 'Move Out'
                 #'value:' #doStepOut
                 #'activeHelpKey:' #editMoveOut
                 #'enabled:' #enabledStepOut
-                #'labelImage:' #(#ResourceRetriever #MenuEditor #leftDownIcon 'Move Out')
+                #'labelImage:' #(#ResourceRetriever #ToolApplicationModel #leftDownIcon 'Move Out')
             )
           ) nil
           nil
@@ -2522,7 +2522,7 @@
     ].
 
     node hasChildren ifFalse:[
-        node add:(self nodeLabel:'undefined')
+        node add:(self nodeLabel:'Item 1')
     ].
     node expand.
     model root:node.
@@ -2537,7 +2537,7 @@
     self subMenu:aMenu parent:node.
 
     node hasChildren ifFalse:[
-        node add:(self nodeLabel:'undefined')
+        node add:(self nodeLabel:'Item')
     ].
     node expand.
     model root:node.
@@ -2708,15 +2708,14 @@
 
 doCreateItem
 
-    self addElement:(self nodeLabel:'undefined')
-
+    self addElement: (self nodeLabel:'Item')
 !
 
 doCreateLink
 
     |node item|
 
-    node := self nodeLabel:'undefined'.
+    node := self nodeLabel:'Submenu Link'.
     item := node contents.
     item submenuChannel:#menuDefaultLink.
     self addElement:node.
@@ -2728,8 +2727,8 @@
 doCreateMenu
 
     |node|
-    node := self nodeLabel:'undefined'.
-    node add:(self nodeLabel:'undefined').
+    node := self nodeLabel:'Submenu'.
+    node add:(self nodeLabel:'Item 1').
     self addElement:node
 !
 
@@ -2740,8 +2739,11 @@
 
 doCut
 
+    |selectedNodes|
     self doCopy.
+    selectedNodes := self selection asSortedCollection.
     self selectedNodesRemove.
+    self selection: selectedNodes first - 1.
     self setModified.
 
 
@@ -2756,10 +2758,22 @@
 
 !MenuEditor::TreeView methodsFor:'private'!
 
-addElement:something
+addElement: aNode
     "add something after selection"
 
-    self selectedNodeAdd:something.
+    (aNode isCollection not and: [aNode name = 'Item']) 
+    ifTrue: 
+    [
+        |label|
+        label := aNode name, ' ',
+        (self selectedNode parent notNil ifTrue:
+        [(((self selectedNode children size = 0 ifTrue: [self selectedNode parent children] ifFalse: [self selectedNode children]) select: [:node| 
+                |lab| lab := node contents label. ((node children size = 0) & node contents submenuChannel isNil & (lab ~= '-') & (lab ~= '=') & (lab ~= ''))]) size + 1) printString] ifFalse: ['1']).
+        aNode name: label.
+        aNode contents label: label.
+    ].
+    self selectedNodeAdd: aNode.
+    aNode isCollection ifFalse: [self selectNode: aNode] ifTrue: [self selection: (aNode collect: [:node| self indexOfNode: node])].
     self setModified.
 !
 
@@ -2768,6 +2782,27 @@
     ^TreeItem name:aLabel contents: (MenuEditor::Item new label:aLabel)
 !
 
+selectedNodeAdd:something
+
+    |node|
+
+    something notNil ifTrue:[
+        (node := self selectedNode) notNil ifTrue:[
+            node parent notNil ifTrue:[
+                node isCollapsable ifTrue:[
+                    model add:something afterIndex:node children size below:node
+                ] ifFalse:[
+                    model add:something after:node
+                ]
+            ] ifFalse:[
+                model add:something afterIndex:node children size below:(self root)
+            ]
+        ]
+    ]
+
+
+!
+
 setModified 
 
     self topView application isModified: true.