#UI_ENHANCEMENT by cg
authorClaus Gittinger <cg@exept.de>
Tue, 14 May 2019 09:46:21 +0200
changeset 3663 9d49ecf8661a
parent 3662 b958f57e0cfd
child 3664 0d01da886d5a
#UI_ENHANCEMENT by cg class: TabListEditor class changed: #canvasSpec #menu #windowSpec
TabListEditor.st
--- a/TabListEditor.st	Fri May 03 10:52:38 2019 +0200
+++ b/TabListEditor.st	Tue May 14 09:46:21 2019 +0200
@@ -420,190 +420,210 @@
     <resource: #canvas>
 
     ^ 
-     #(FullSpec
-        name: canvasSpec
-        window: 
-       (WindowSpec
-          label: 'Canvas'
-          name: 'Canvas'
-          min: (Point 10 10)
-          max: (Point 1280 1024)
-          bounds: (Rectangle 0 0 383 220)
-        )
-        component: 
-       (SpecCollection
-          collection: (
-           (LabelSpec
-              label: 'Class Name / Major Key:'
-              name: 'majorKeyLabel'
-              layout: (AlignmentOrigin 160 0 26 0 1 0.5)
-              activeHelpKey: majorKey
-              translateLabel: true
-              resizeForLabel: true
-            )
-           (InputFieldSpec
-              name: 'majorKeyField'
-              layout: (LayoutFrame 161 0 15 0 -5 1.0 37 0)
-              activeHelpKey: majorKey
-              tabable: true
-              model: majorKey
-              group: inputGroup
-              type: symbolOrNil
-              immediateAccept: true
-              acceptOnReturn: false
-              acceptOnTab: false
-              acceptOnLostFocus: false
-              modifiedChannel: modifiedChannel
-              acceptOnPointerLeave: false
-            )
-           (LabelSpec
-              label: 'Selector / Minor Key:'
-              name: 'minorKeyLabel'
-              layout: (AlignmentOrigin 160 0 55 0 1 0.5)
-              translateLabel: true
-              resizeForLabel: true
-            )
-           (InputFieldSpec
-              name: 'minorKeyField'
-              layout: (LayoutFrame 161 0 44 0 -5 1.0 66 0)
-              activeHelpKey: majorKey
-              tabable: true
-              model: minorKey
-              group: inputGroup
-              type: symbolOrNil
-              immediateAccept: true
-              acceptOnReturn: false
-              acceptOnTab: false
-              acceptOnLostFocus: false
-              modifiedChannel: modifiedChannel
-              acceptOnPointerLeave: false
-            )
-           (FramedBoxSpec
-              label: 'Scroll Bars'
-              name: 'FramedBox'
-              layout: (LayoutFrame 0 0.0 119 0.0 0 1.0 218 0)
-              labelPosition: topLeft
-              translateLabel: true
-              component: 
-             (SpecCollection
-                collection: (
-                 (HorizontalPanelViewSpec
-                    name: 'HorizontalPanel1'
-                    layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-                    horizontalLayout: fitSpace
-                    verticalLayout: fitSpace
-                    horizontalSpace: 3
-                    verticalSpace: 3
-                    component: 
-                   (SpecCollection
-                      collection: (
-                       (ViewSpec
-                          name: 'Box1'
-                          component: 
-                         (SpecCollection
-                            collection: (
-                             (CheckBoxSpec
-                                label: 'Vertical'
-                                name: 'verticalScrollBarCheckBox'
-                                layout: (LayoutFrame 0 0.0 3 0 0 1.0 27 0)
-                                activeHelpKey: verticalScroller
-                                tabable: true
-                                model: hasVerticalScrollBar
-                                translateLabel: true
-                              )
-                             (CheckBoxSpec
-                                label: 'Mini'
-                                name: 'miniScrollerVerticalCheckBox'
-                                layout: (LayoutFrame 0 0.0 32 0 0 1.0 56 0)
-                                activeHelpKey: verticalMiniScroller
-                                tabable: true
-                                model: miniScrollerVertical
-                                translateLabel: true
-                              )
+    #(FullSpec
+       name: canvasSpec
+       uuid: '8a7c55d6-761b-11e9-98ea-b8f6b1108e05'
+       window: 
+      (WindowSpec
+         label: 'Canvas'
+         name: 'Canvas'
+         uuid: '8a7c5964-761b-11e9-98ea-b8f6b1108e05'
+         min: (Point 10 10)
+         max: (Point 1280 1024)
+         bounds: (Rectangle 0 0 383 220)
+       )
+       component: 
+      (SpecCollection
+         collection: (
+          (LabelSpec
+             label: 'Class / Major Key:'
+             name: 'majorKeyLabel'
+             layout: (AlignmentOrigin 160 0 26 0 1 0.5)
+             activeHelpKey: majorKey
+             uuid: '8a7cc2f0-761b-11e9-98ea-b8f6b1108e05'
+             translateLabel: true
+             resizeForLabel: true
+           )
+          (InputFieldSpec
+             name: 'majorKeyField'
+             layout: (LayoutFrame 161 0 15 0 -5 1.0 37 0)
+             activeHelpKey: majorKey
+             uuid: '8a7cc82c-761b-11e9-98ea-b8f6b1108e05'
+             tabable: true
+             model: majorKey
+             group: inputGroup
+             type: symbolOrNil
+             immediateAccept: true
+             acceptOnReturn: false
+             acceptOnTab: false
+             acceptOnLostFocus: false
+             modifiedChannel: modifiedChannel
+             acceptOnPointerLeave: false
+           )
+          (LabelSpec
+             label: 'Selector / Minor Key:'
+             name: 'minorKeyLabel'
+             layout: (AlignmentOrigin 160 0 55 0 1 0.5)
+             uuid: '8a7ccda4-761b-11e9-98ea-b8f6b1108e05'
+             translateLabel: true
+             resizeForLabel: true
+           )
+          (InputFieldSpec
+             name: 'minorKeyField'
+             layout: (LayoutFrame 161 0 44 0 -5 1.0 66 0)
+             activeHelpKey: majorKey
+             uuid: '8a7ccf7a-761b-11e9-98ea-b8f6b1108e05'
+             tabable: true
+             model: minorKey
+             group: inputGroup
+             type: symbolOrNil
+             immediateAccept: true
+             acceptOnReturn: false
+             acceptOnTab: false
+             acceptOnLostFocus: false
+             modifiedChannel: modifiedChannel
+             acceptOnPointerLeave: false
+           )
+          (FramedBoxSpec
+             label: 'Scroll Bars'
+             name: 'FramedBox'
+             layout: (LayoutFrame 0 0.0 119 0.0 0 1.0 218 0)
+             uuid: '8a7cd1be-761b-11e9-98ea-b8f6b1108e05'
+             labelPosition: topLeft
+             translateLabel: true
+             component: 
+            (SpecCollection
+               collection: (
+                (HorizontalPanelViewSpec
+                   name: 'HorizontalPanel1'
+                   layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+                   uuid: '8a7cd42a-761b-11e9-98ea-b8f6b1108e05'
+                   horizontalLayout: fitSpace
+                   verticalLayout: fitSpace
+                   horizontalSpace: 3
+                   verticalSpace: 3
+                   component: 
+                  (SpecCollection
+                     collection: (
+                      (ViewSpec
+                         name: 'Box1'
+                         uuid: '8a7cd768-761b-11e9-98ea-b8f6b1108e05'
+                         component: 
+                        (SpecCollection
+                           collection: (
+                            (CheckBoxSpec
+                               label: 'Vertical'
+                               name: 'verticalScrollBarCheckBox'
+                               layout: (LayoutFrame 0 0.0 3 0 0 1.0 27 0)
+                               activeHelpKey: verticalScroller
+                               uuid: '8a7cd8ee-761b-11e9-98ea-b8f6b1108e05'
+                               tabable: true
+                               model: hasVerticalScrollBar
+                               translateLabel: true
                              )
-                           
-                          )
-                          useDefaultExtent: true
-                        )
-                       (ViewSpec
-                          name: 'Box2'
-                          component: 
-                         (SpecCollection
-                            collection: (
-                             (CheckBoxSpec
-                                label: 'Horizontal'
-                                name: 'horizontalScrollBarCheckBox'
-                                layout: (LayoutFrame 0 0.0 3 0 0 1.0 27 0)
-                                activeHelpKey: horizontalScroller
-                                tabable: true
-                                model: hasHorizontalScrollBar
-                                translateLabel: true
-                              )
-                             (CheckBoxSpec
-                                label: 'Mini'
-                                name: 'miniScrollerHorizontalCheckBox'
-                                layout: (LayoutFrame 0 0.0 32 0 0 1.0 56 0)
-                                activeHelpKey: horizontalMiniScroller
-                                tabable: true
-                                model: miniScrollerHorizontal
-                                translateLabel: true
-                              )
+                            (CheckBoxSpec
+                               label: 'Mini'
+                               name: 'miniScrollerVerticalCheckBox'
+                               layout: (LayoutFrame 0 0.0 32 0 0 1.0 56 0)
+                               activeHelpKey: verticalMiniScroller
+                               uuid: '8a7cdb82-761b-11e9-98ea-b8f6b1108e05'
+                               tabable: true
+                               model: miniScrollerVertical
+                               translateLabel: true
+                             )
+                            )
+                          
+                         )
+                         useDefaultExtent: true
+                       )
+                      (ViewSpec
+                         name: 'Box2'
+                         uuid: '8a7cdda8-761b-11e9-98ea-b8f6b1108e05'
+                         component: 
+                        (SpecCollection
+                           collection: (
+                            (CheckBoxSpec
+                               label: 'Horizontal'
+                               name: 'horizontalScrollBarCheckBox'
+                               layout: (LayoutFrame 0 0.0 3 0 0 1.0 27 0)
+                               activeHelpKey: horizontalScroller
+                               uuid: '8a7cdede-761b-11e9-98ea-b8f6b1108e05'
+                               tabable: true
+                               model: hasHorizontalScrollBar
+                               translateLabel: true
+                             )
+                            (CheckBoxSpec
+                               label: 'Mini'
+                               name: 'miniScrollerHorizontalCheckBox'
+                               layout: (LayoutFrame 0 0.0 32 0 0 1.0 56 0)
+                               activeHelpKey: horizontalMiniScroller
+                               uuid: '8a7ce064-761b-11e9-98ea-b8f6b1108e05'
+                               tabable: true
+                               model: miniScrollerHorizontal
+                               translateLabel: true
                              )
-                           
-                          )
-                          extent: (Point 113 61)
-                        )
-                       (ViewSpec
-                          name: 'Box3'
-                          component: 
-                         (SpecCollection
-                            collection: (
-                             (LabelSpec
-                                label: 'Auto Hide:'
-                                name: 'Label1'
-                                layout: (LayoutFrame 0 0.0 6 0 0 1.0 23 0)
-                                translateLabel: true
-                                resizeForLabel: true
-                                adjust: left
-                              )
-                             (PopUpListSpec
-                                label: 'Default'
-                                name: 'PopUpList1'
-                                layout: (LayoutFrame 0 0.0 32 0 0 1.0 54 0)
-                                activeHelpKey: autoHideScrollBars
-                                tabable: true
-                                model: autoHideScrollBars
-                                menu: 
-                               (Default
-                                  On Off
-                                )
-                                useIndex: true
-                              )
+                            )
+                          
+                         )
+                         extent: (Point 111 53)
+                       )
+                      (ViewSpec
+                         name: 'Box3'
+                         uuid: '8a7ce1fe-761b-11e9-98ea-b8f6b1108e05'
+                         component: 
+                        (SpecCollection
+                           collection: (
+                            (LabelSpec
+                               label: 'Auto Hide:'
+                               name: 'Label1'
+                               layout: (LayoutFrame 0 0.0 6 0 0 1.0 23 0)
+                               uuid: '8a7ce334-761b-11e9-98ea-b8f6b1108e05'
+                               translateLabel: true
+                               resizeForLabel: true
+                               adjust: left
                              )
-                           
-                          )
-                          extent: (Point 113 61)
-                        )
+                            (PopUpListSpec
+                               label: 'Default'
+                               name: 'PopUpList1'
+                               layout: (LayoutFrame 0 0.0 32 0 0 1.0 54 0)
+                               activeHelpKey: autoHideScrollBars
+                               uuid: '8a7ce4e2-761b-11e9-98ea-b8f6b1108e05'
+                               translateLabel: true
+                               tabable: true
+                               model: autoHideScrollBars
+                               menu: 
+                              (ImmutableArray
+                                 Default On
+                                 Off
+                               )
+                               useIndex: true
+                             )
+                            )
+                          
+                         )
+                         extent: (Point 112 53)
                        )
-                     
-                    )
-                  )
+                      )
+                    
+                   )
                  )
-               
-              )
-            )
-           (CheckBoxSpec
-              label: 'Create New Builder'
-              name: 'createNewBuilder'
-              layout: (Point 161 75)
-              activeHelpKey: createNewBuilder
-              model: createNewBuilder
-              translateLabel: true
-            )
+                )
+              
+             )
            )
-         
-        )
-      )
+          (CheckBoxSpec
+             label: 'Create New Builder'
+             name: 'createNewBuilder'
+             layout: (Point 161 75)
+             activeHelpKey: createNewBuilder
+             uuid: '8a7ce8de-761b-11e9-98ea-b8f6b1108e05'
+             model: createNewBuilder
+             translateLabel: true
+           )
+          )
+        
+       )
+     )
 !
 
 detailSpec
@@ -680,102 +700,104 @@
     <resource: #canvas>
 
     ^ 
-     #(#FullSpec
-        #name: #windowSpec
-        #window: 
-       #(#WindowSpec
-          #label: 'Tab List Editor'
-          #name: 'Tab List Editor'
-          #min: #(#Point 440 280)
-          #bounds: #(#Rectangle 596 292 1132 661)
-          #menu: #menu
-        )
-        #component: 
-       #(#SpecCollection
-          #collection: #(
-           #(#MenuPanelSpec
-              #name: 'menuToolbarView'
-              #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 34 0)
-              #menu: #menuToolbar
-              #showSeparatingLines: true
-            )
-           #(#VariableHorizontalPanelSpec
-              #name: 'VariablePanel'
-              #layout: #(#LayoutFrame 0 0.0 36 0.0 0 1.0 -26 1.0)
-              #component: 
-             #(#SpecCollection
-                #collection: #(
-                 #(#SelectionInListModelViewSpec
-                    #attributes: 
-                   #(#vpext
-                      
-                     #(#Array
-                        #Array #Array
-                        #Array #Array
-                        #Array #Point
-                        0.264414 1.0
+    #(FullSpec
+       name: windowSpec
+       uuid: 'b2e02714-761b-11e9-98ea-b8f6b1108e05'
+       window: 
+      (WindowSpec
+         label: 'Tab List Editor'
+         name: 'Tab List Editor'
+         uuid: 'b2e02a02-761b-11e9-98ea-b8f6b1108e05'
+         min: (Point 440 280)
+         bounds: (Rectangle 0 0 536 369)
+         menu: menu
+       )
+       component: 
+      (SpecCollection
+         collection: (
+          (MenuPanelSpec
+             name: 'menuToolbarView'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 34 0)
+             uuid: 'b2e02c78-761b-11e9-98ea-b8f6b1108e05'
+             menu: menuToolbar
+             showSeparatingLines: true
+           )
+          (VariableHorizontalPanelSpec
+             name: 'VariablePanel'
+             layout: (LayoutFrame 0 0.0 36 0.0 0 1.0 -26 1.0)
+             uuid: 'b2e02f48-761b-11e9-98ea-b8f6b1108e05'
+             component: 
+            (SpecCollection
+               collection: (
+                (SelectionInListModelViewSpec
+                   name: 'ListOfLabels'
+                   uuid: 'b2e031fa-761b-11e9-98ea-b8f6b1108e05'
+                   tabable: true
+                   model: selectionHolder
+                   menu: menuEdit
+                   hasHorizontalScrollBar: true
+                   hasVerticalScrollBar: true
+                   miniScrollerHorizontal: true
+                   listModel: listOfTabs
+                   highlightMode: line
+                   selectConditionSelector: askForItemModification
+                 )
+                (ViewSpec
+                   name: 'SpecView'
+                   uuid: 'b2e034d4-761b-11e9-98ea-b8f6b1108e05'
+                   level: -1
+                   component: 
+                  (SpecCollection
+                     collection: (
+                      (NoteBookViewSpec
+                         name: 'NoteBook'
+                         layout: (LayoutFrame 1 0.0 0 0.0 0 1.0 -32 1.0)
+                         uuid: 'b2e03600-761b-11e9-98ea-b8f6b1108e05'
+                         enableChannel: hasSelectionHolder
+                         tabable: true
+                         model: noteBookModel
+                         menu: noteBookTabList
+                         useIndex: true
+                         translateLabel: true
+                         keepCanvasAlive: true
+                       )
+                      (UISubSpecification
+                         name: 'subSpec'
+                         layout: (LayoutFrame 2 0.0 -32 1 -2 1.0 0 1)
+                         uuid: 'b2e039ac-761b-11e9-98ea-b8f6b1108e05'
+                         majorKey: ToolApplicationModel
+                         minorKey: windowSpecForCommit
+                       )
+                      (NoteBookViewSpec
+                         name: 'TestNoteBook'
+                         layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+                         uuid: 'b2e03b32-761b-11e9-98ea-b8f6b1108e05'
+                         visibilityChannel: testMode
+                         tabable: true
+                         menu: testItemList
+                         useIndex: true
+                         translateLabel: true
+                       )
                       )
-                    )
-                    #name: 'ListOfLabels'
-                    #tabable: true
-                    #model: #selectionHolder
-                    #menu: #menuEdit
-                    #hasHorizontalScrollBar: true
-                    #hasVerticalScrollBar: true
-                    #miniScrollerHorizontal: true
-                    #listModel: #listOfTabs
-                    #highlightMode: #line
-                    #selectConditionSelector: #askForItemModification
-                  )
-                 #(#ViewSpec
-                    #name: 'SpecView'
-                    #level: -1
-                    #component: 
-                   #(#SpecCollection
-                      #collection: #(
-                       #(#NoteBookViewSpec
-                          #name: 'NoteBook'
-                          #layout: #(#LayoutFrame 1 0.0 0 0.0 0 1.0 -30 1.0)
-                          #enableChannel: #hasSelectionHolder
-                          #tabable: true
-                          #model: #noteBookModel
-                          #menu: #noteBookTabList
-                          #useIndex: true
-                          #keepCanvasAlive: true
-                        )
-                       #(#UISubSpecification
-                          #name: 'subSpec'
-                          #layout: #(#LayoutFrame 2 0.0 -26 1 -2 1.0 -2 1)
-                          #majorKey: #ToolApplicationModel
-                          #minorKey: #windowSpecForCommit
-                        )
-                       #(#NoteBookViewSpec
-                          #name: 'TestNoteBook'
-                          #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-                          #visibilityChannel: #testMode
-                          #tabable: true
-                          #menu: #testItemList
-                          #useIndex: true
-                        )
-                       )
-                     
-                    )
-                  )
+                    
+                   )
                  )
-               
-              )
-              #handles: #(#Any 0.24053 1.0)
-            )
-           #(#UISubSpecification
-              #name: 'infoBarSubSpec'
-              #layout: #(#LayoutFrame 0 0.0 -24 1 0 1.0 0 1.0)
-              #majorKey: #ToolApplicationModel
-              #minorKey: #windowSpecForInfoBar
-            )
+                )
+              
+             )
+             handles: (Any 0.23999999999999999 1.0)
            )
-         
-        )
-      )
+          (UISubSpecification
+             name: 'infoBarSubSpec'
+             layout: (LayoutFrame 0 0.0 -24 1 0 1.0 0 1.0)
+             uuid: 'b2e03d44-761b-11e9-98ea-b8f6b1108e05'
+             majorKey: ToolApplicationModel
+             minorKey: windowSpecForInfoBar
+           )
+          )
+        
+       )
+     )
 ! !
 
 !TabListEditor class methodsFor:'list specs'!
@@ -823,6 +845,7 @@
     "Do not manually edit this!! If it is corrupted,
      the MenuEditor may not be able to read the specification."
 
+
     "
      MenuEditor new openOnClass:TabListEditor andSelector:#menu
      (Menu new fromLiteralArrayEncoding:(TabListEditor menu)) startUp
@@ -830,141 +853,132 @@
 
     <resource: #menu>
 
-    ^
-     
-       #(#Menu
-          
-           #(
-             #(#MenuItem
-                #label: 'About'
-                #activeHelpKey: #about
-                #labelImage: #(#ResourceRetriever nil #menuIcon)
-                #submenuChannel: #menuAbout
-            )
-             #(#MenuItem
-                #label: 'File'
-                #activeHelpKey: #file
-                #submenu: 
-                 #(#Menu
-                    
-                     #(
-                       #(#MenuItem
-                          #label: 'New'
-                          #value: #doNew
-                          #activeHelpKey: #fileNew
-                      )
-                       #(#MenuItem
-                          #label: '-'
-                      )
-                       #(#MenuItem
-                          #label: 'Load...'
-                          #translateLabel: true
-                          #value: #doLoad
-                          #activeHelpKey: #fileLoad
-                      )
-                       #(#MenuItem
-                          #label: '-'
-                      )
-                       #(#MenuItem
-                          #label: 'Save'
-                          #value: #doSave
-                          #activeHelpKey: #fileSave
-                      )
-                       #(#MenuItem
-                          #label: 'Save As...'
-                          #value: #doSaveAs
-                          #activeHelpKey: #fileSave
-                      )
-                       #(#MenuItem
-                          #label: '-'
-                      )
-                       #(#MenuItem
-                          #label: 'Browse Class'
-                          #value: #doBrowseClass
-                          #activeHelpKey: #fileBrowseClass
-                      )
-                       #(#MenuItem
-                          #label: '-'
-                      )
-                       #(#MenuItem
-                          #label: 'Exit'
-                          #value: #closeRequest
-                          #activeHelpKey: #fileExit
-                      )
-                    ) nil
-                    nil
+    ^ 
+     #(Menu
+        (
+         (MenuItem
+            activeHelpKey: file
+            label: 'File'
+            submenu: 
+           (Menu
+              (
+               (MenuItem
+                  activeHelpKey: fileNew
+                  label: 'New'
+                  itemValue: doNew
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  activeHelpKey: fileLoad
+                  label: 'Load...'
+                  itemValue: doLoad
+                )
+               (MenuItem
+                  label: '-'
                 )
+               (MenuItem
+                  activeHelpKey: fileSave
+                  label: 'Save'
+                  itemValue: doSave
+                )
+               (MenuItem
+                  activeHelpKey: fileSave
+                  label: 'Save As...'
+                  itemValue: doSaveAs
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  activeHelpKey: fileBrowseClass
+                  label: 'Browse Class'
+                  itemValue: doBrowseClass
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  activeHelpKey: fileExit
+                  label: 'Exit'
+                  itemValue: closeRequest
+                )
+               )
+              nil
+              nil
             )
-             #(#MenuItem
-                #label: 'Edit'
-                #activeHelpKey: #edit
-                #submenuChannel: #menuEdit
-            )
-             #(#MenuItem
-                #label: 'Add'
-                #activeHelpKey: #add
-                #submenu: 
-                 #(#Menu
-                    
-                     #(
-                       #(#MenuItem
-                          #label: 'Tab Item'
-                          #value: #doCreate
-                          #activeHelpKey: #addTabItem
-                          #labelImage: #(#ResourceRetriever nil #newTabItemIcon 'Tab Item')
-                      )
-                    ) nil
-                    nil
+          )
+         (MenuItem
+            activeHelpKey: edit
+            label: 'Edit'
+            submenuChannel: menuEdit
+          )
+         (MenuItem
+            activeHelpKey: add
+            label: 'Add'
+            submenu: 
+           (Menu
+              (
+               (MenuItem
+                  activeHelpKey: addTabItem
+                  label: 'Tab Item'
+                  itemValue: doCreate
+                  labelImage: (ResourceRetriever nil newTabItemIcon 'Tab Item')
                 )
+               )
+              nil
+              nil
             )
-             #(#MenuItem
-                #label: 'Generate'
-                #activeHelpKey: #add
-                #submenu: 
-                 #(#Menu
-                    
-                     #(
-                       #(#MenuItem
-                          #label: 'Aspect Method'
-                          #value: #doGenerateAspectMethod
-                          #activeHelpKey: #fileCreateAspectMethod
-                          #enabled: #hasClassAndSelector
-                      )
-                    ) nil
-                    nil
+          )
+         (MenuItem
+            activeHelpKey: add
+            label: 'Generate'
+            submenu: 
+           (Menu
+              (
+               (MenuItem
+                  activeHelpKey: fileCreateAspectMethod
+                  enabled: hasClassAndSelector
+                  label: 'Aspect Method'
+                  itemValue: doGenerateAspectMethod
                 )
+               )
+              nil
+              nil
             )
-             #(#MenuItem
-                #label: 'Test'
-                #activeHelpKey: #test
-                #submenu: 
-                 #(#Menu
-                    
-                     #(
-                       #(#MenuItem
-                          #label: 'Preview'
-                          #activeHelpKey: #testPreview
-                          #enabled: #canToggleTestMode
-                          #indication: #testMode
-                      )
-                    ) nil
-                    nil
+          )
+         (MenuItem
+            activeHelpKey: test
+            label: 'Test'
+            submenu: 
+           (Menu
+              (
+               (MenuItem
+                  activeHelpKey: testPreview
+                  enabled: canToggleTestMode
+                  label: 'Preview'
+                  indication: testMode
                 )
-            )
-             #(#MenuItem
-                #label: 'History'
-                #activeHelpKey: #history
-                #submenuChannel: #menuHistory
+               )
+              nil
+              nil
             )
-             #(#MenuItem
-                label: 'MENU_Help'
-                #startGroup: #right
-                #activeHelpKey: #help
-                #submenuChannel: #menuHelp
-                startGroup: conditionalRight
-            )
-          ) nil
-          nil
+          )
+         (MenuItem
+            activeHelpKey: history
+            label: 'History'
+            submenuChannel: menuHistory
+          )
+         (MenuItem
+            activeHelpKey: help
+            label: 'MENU_Help'
+            startGroup: conditionalRight
+            submenuChannel: menuHelp
+          )
+         )
+        nil
+        nil
       )
 !