MenuEditor.st
changeset 557 de8d8782486c
parent 548 93fea26562c8
child 571 1e362121fe32
equal deleted inserted replaced
556:914a2f26aa72 557:de8d8782486c
  1197              #(#MenuItem
  1197              #(#MenuItem
  1198                 #'label:' 'Move Up'
  1198                 #'label:' 'Move Up'
  1199                 #'value:' #doStepUp
  1199                 #'value:' #doStepUp
  1200                 #'activeHelpKey:' #editMoveUp
  1200                 #'activeHelpKey:' #editMoveUp
  1201                 #'enabled:' #enabledStepOver
  1201                 #'enabled:' #enabledStepOver
  1202                 #'labelImage:' #(#ResourceRetriever #MenuEditor #upIcon 'Move Up')
  1202                 #'labelImage:' #(#ResourceRetriever #ToolApplicationModel #upIcon 'Move Up')
  1203             )
  1203             )
  1204              #(#MenuItem
  1204              #(#MenuItem
  1205                 #'label:' 'Move Down'
  1205                 #'label:' 'Move Down'
  1206                 #'value:' #doStepDown
  1206                 #'value:' #doStepDown
  1207                 #'activeHelpKey:' #editMoveDown
  1207                 #'activeHelpKey:' #editMoveDown
  1208                 #'enabled:' #enabledStepOver
  1208                 #'enabled:' #enabledStepOver
  1209                 #'labelImage:' #(#ResourceRetriever #MenuEditor #downIcon 'Move Down')
  1209                 #'labelImage:' #(#ResourceRetriever #ToolApplicationModel #downIcon 'Move Down')
  1210             )
  1210             )
  1211              #(#MenuItem
  1211              #(#MenuItem
  1212                 #'label:' 'Move In'
  1212                 #'label:' 'Move In'
  1213                 #'value:' #doStepIn
  1213                 #'value:' #doStepIn
  1214                 #'activeHelpKey:' #editMoveIn
  1214                 #'activeHelpKey:' #editMoveIn
  1215                 #'enabled:' #enabledStepIn
  1215                 #'enabled:' #enabledStepIn
  1216                 #'labelImage:' #(#ResourceRetriever #MenuEditor #downRightIcon 'Move In')
  1216                 #'labelImage:' #(#ResourceRetriever #ToolApplicationModel #downRightIcon 'Move In')
  1217             )
  1217             )
  1218              #(#MenuItem
  1218              #(#MenuItem
  1219                 #'label:' 'Move Out'
  1219                 #'label:' 'Move Out'
  1220                 #'value:' #doStepOut
  1220                 #'value:' #doStepOut
  1221                 #'activeHelpKey:' #editMoveOut
  1221                 #'activeHelpKey:' #editMoveOut
  1222                 #'enabled:' #enabledStepOut
  1222                 #'enabled:' #enabledStepOut
  1223                 #'labelImage:' #(#ResourceRetriever #MenuEditor #leftDownIcon 'Move Out')
  1223                 #'labelImage:' #(#ResourceRetriever #ToolApplicationModel #leftDownIcon 'Move Out')
  1224             )
  1224             )
  1225           ) nil
  1225           ) nil
  1226           nil
  1226           nil
  1227       )
  1227       )
  1228 !
  1228 !
  2520 
  2520 
  2521         node := self nodeLabel:cls.
  2521         node := self nodeLabel:cls.
  2522     ].
  2522     ].
  2523 
  2523 
  2524     node hasChildren ifFalse:[
  2524     node hasChildren ifFalse:[
  2525         node add:(self nodeLabel:'undefined')
  2525         node add:(self nodeLabel:'Item 1')
  2526     ].
  2526     ].
  2527     node expand.
  2527     node expand.
  2528     model root:node.
  2528     model root:node.
  2529 
  2529 
  2530 !
  2530 !
  2535 
  2535 
  2536     node := self nodeLabel:'menu'.
  2536     node := self nodeLabel:'menu'.
  2537     self subMenu:aMenu parent:node.
  2537     self subMenu:aMenu parent:node.
  2538 
  2538 
  2539     node hasChildren ifFalse:[
  2539     node hasChildren ifFalse:[
  2540         node add:(self nodeLabel:'undefined')
  2540         node add:(self nodeLabel:'Item')
  2541     ].
  2541     ].
  2542     node expand.
  2542     node expand.
  2543     model root:node.
  2543     model root:node.
  2544 
  2544 
  2545 !
  2545 !
  2706     ]
  2706     ]
  2707 !
  2707 !
  2708 
  2708 
  2709 doCreateItem
  2709 doCreateItem
  2710 
  2710 
  2711     self addElement:(self nodeLabel:'undefined')
  2711     self addElement: (self nodeLabel:'Item')
  2712 
       
  2713 !
  2712 !
  2714 
  2713 
  2715 doCreateLink
  2714 doCreateLink
  2716 
  2715 
  2717     |node item|
  2716     |node item|
  2718 
  2717 
  2719     node := self nodeLabel:'undefined'.
  2718     node := self nodeLabel:'Submenu Link'.
  2720     item := node contents.
  2719     item := node contents.
  2721     item submenuChannel:#menuDefaultLink.
  2720     item submenuChannel:#menuDefaultLink.
  2722     self addElement:node.
  2721     self addElement:node.
  2723     self setModified.
  2722     self setModified.
  2724 
  2723 
  2726 !
  2725 !
  2727 
  2726 
  2728 doCreateMenu
  2727 doCreateMenu
  2729 
  2728 
  2730     |node|
  2729     |node|
  2731     node := self nodeLabel:'undefined'.
  2730     node := self nodeLabel:'Submenu'.
  2732     node add:(self nodeLabel:'undefined').
  2731     node add:(self nodeLabel:'Item 1').
  2733     self addElement:node
  2732     self addElement:node
  2734 !
  2733 !
  2735 
  2734 
  2736 doCreateSep
  2735 doCreateSep
  2737 
  2736 
  2738     self addElement:(self nodeLabel:nil)
  2737     self addElement:(self nodeLabel:nil)
  2739 !
  2738 !
  2740 
  2739 
  2741 doCut
  2740 doCut
  2742 
  2741 
       
  2742     |selectedNodes|
  2743     self doCopy.
  2743     self doCopy.
       
  2744     selectedNodes := self selection asSortedCollection.
  2744     self selectedNodesRemove.
  2745     self selectedNodesRemove.
       
  2746     self selection: selectedNodes first - 1.
  2745     self setModified.
  2747     self setModified.
  2746 
  2748 
  2747 
  2749 
  2748 !
  2750 !
  2749 
  2751 
  2754     ].
  2756     ].
  2755 ! !
  2757 ! !
  2756 
  2758 
  2757 !MenuEditor::TreeView methodsFor:'private'!
  2759 !MenuEditor::TreeView methodsFor:'private'!
  2758 
  2760 
  2759 addElement:something
  2761 addElement: aNode
  2760     "add something after selection"
  2762     "add something after selection"
  2761 
  2763 
  2762     self selectedNodeAdd:something.
  2764     (aNode isCollection not and: [aNode name = 'Item']) 
       
  2765     ifTrue: 
       
  2766     [
       
  2767         |label|
       
  2768         label := aNode name, ' ',
       
  2769         (self selectedNode parent notNil ifTrue:
       
  2770         [(((self selectedNode children size = 0 ifTrue: [self selectedNode parent children] ifFalse: [self selectedNode children]) select: [:node| 
       
  2771                 |lab| lab := node contents label. ((node children size = 0) & node contents submenuChannel isNil & (lab ~= '-') & (lab ~= '=') & (lab ~= ''))]) size + 1) printString] ifFalse: ['1']).
       
  2772         aNode name: label.
       
  2773         aNode contents label: label.
       
  2774     ].
       
  2775     self selectedNodeAdd: aNode.
       
  2776     aNode isCollection ifFalse: [self selectNode: aNode] ifTrue: [self selection: (aNode collect: [:node| self indexOfNode: node])].
  2763     self setModified.
  2777     self setModified.
  2764 !
  2778 !
  2765 
  2779 
  2766 nodeLabel:aLabel
  2780 nodeLabel:aLabel
  2767 
  2781 
  2768     ^TreeItem name:aLabel contents: (MenuEditor::Item new label:aLabel)
  2782     ^TreeItem name:aLabel contents: (MenuEditor::Item new label:aLabel)
       
  2783 !
       
  2784 
       
  2785 selectedNodeAdd:something
       
  2786 
       
  2787     |node|
       
  2788 
       
  2789     something notNil ifTrue:[
       
  2790         (node := self selectedNode) notNil ifTrue:[
       
  2791             node parent notNil ifTrue:[
       
  2792                 node isCollapsable ifTrue:[
       
  2793                     model add:something afterIndex:node children size below:node
       
  2794                 ] ifFalse:[
       
  2795                     model add:something after:node
       
  2796                 ]
       
  2797             ] ifFalse:[
       
  2798                 model add:something afterIndex:node children size below:(self root)
       
  2799             ]
       
  2800         ]
       
  2801     ]
       
  2802 
       
  2803 
  2769 !
  2804 !
  2770 
  2805 
  2771 setModified 
  2806 setModified 
  2772 
  2807 
  2773     self topView application isModified: true.
  2808     self topView application isModified: true.