bugfix 745 - argument not removeable
authorca
Tue, 23 Oct 2007 15:44:22 +0200
changeset 2189 2ee8670e6307
parent 2188 4b6ba5164391
child 2190 5bb9504b58bd
bugfix 745 - argument not removeable
MenuEditor.st
--- a/MenuEditor.st	Fri Oct 19 21:14:13 2007 +0200
+++ b/MenuEditor.st	Tue Oct 23 15:44:22 2007 +0200
@@ -3209,205 +3209,205 @@
 
     ^
      #(FullSpec
-	name: detailsEditSpec
-	window:
+        name: detailsEditSpec
+        window:
        (WindowSpec
-	  label: 'Details Edit'
-	  name: 'Details Edit'
-	  min: (Point 10 10)
-	  bounds: (Rectangle 0 0 407 291)
-	)
-	component:
+          label: 'Details Edit'
+          name: 'Details Edit'
+          min: (Point 10 10)
+          bounds: (Rectangle 0 0 407 291)
+        )
+        component:
        (SpecCollection
-	  collection: (
-	   (LabelSpec
-	      label: 'Accelerator:'
-	      name: 'shortcutKeyLabel'
-	      layout: (AlignmentOrigin 107 0 26 0 1 0.5)
-	      activeHelpKey: detailsAccelerator
-	      translateLabel: true
-	      resizeForLabel: true
-	      adjust: right
-	    )
-	   (InputFieldSpec
-	      name: 'shortcutKeyField'
-	      layout: (LayoutFrame 110 0 15 0 -5 1.0 37 0)
-	      activeHelpKey: detailsAccelerator
-	      tabable: true
-	      model: shortcutKeyCharacter
-	      group: inputGroup
-	      type: symbolOrNil
-	      immediateAccept: false
-	      acceptOnReturn: true
-	      acceptOnTab: true
-	      acceptChannel: acceptChannel
-	      modifiedChannel: modifiedChannel
-	      acceptOnPointerLeave: false
-	    )
-	   (LabelSpec
-	      label: 'Enabled:'
-	      name: 'enabledLabel'
-	      layout: (AlignmentOrigin 107 0 51 0 1 0.5)
-	      activeHelpKey: detailsEnabled
-	      translateLabel: true
-	      resizeForLabel: true
-	      adjust: right
-	    )
-	   (InputFieldSpec
-	      name: 'enabledField'
-	      layout: (LayoutFrame 110 0 40 0 -5 1.0 62 0)
-	      activeHelpKey: detailsEnabled
-	      tabable: true
-	      model: enabled
-	      group: inputGroup
-	      type: symbolOrBooleanOrNil
-	      immediateAccept: false
-	      acceptOnReturn: true
-	      acceptOnTab: true
-	      acceptChannel: acceptChannel
-	      modifiedChannel: modifiedChannel
-	      acceptOnPointerLeave: false
-	    )
-	   (LabelSpec
-	      label: 'Visibility:'
-	      name: 'visibilityLabel'
-	      layout: (AlignmentOrigin 107 0 76 0 1 0.5)
-	      activeHelpKey: detailsVisibility
-	      translateLabel: true
-	      resizeForLabel: true
-	      adjust: right
-	    )
-	   (InputFieldSpec
-	      name: 'isVisibleInputField'
-	      layout: (LayoutFrame 110 0 65 0 -5 1.0 87 0)
-	      activeHelpKey: detailsVisibility
-	      tabable: true
-	      model: isVisible
-	      group: inputGroup
-	      type: symbolOrBooleanOrNil
-	      immediateAccept: false
-	      acceptOnReturn: true
-	      acceptOnTab: true
-	      acceptChannel: acceptChannel
-	      modifiedChannel: modifiedChannel
-	      acceptOnPointerLeave: false
-	    )
-	   (LabelSpec
-	      label: 'Aux Value'
-	      name: 'auxLabel'
-	      layout: (AlignmentOrigin 107 0 101 0 1 0.5)
-	      activeHelpKey: detailsAuxValue
-	      translateLabel: true
-	      resizeForLabel: true
-	      adjust: right
-	    )
-	   (InputFieldSpec
-	      name: 'auxInputField'
-	      layout: (LayoutFrame 110 0 90 0 -5 1.0 112 0)
-	      activeHelpKey: detailsAuxValue
-	      tabable: true
-	      model: auxValue
-	      group: inputGroup
-	      type: smalltalkObject
-	      immediateAccept: false
-	      acceptOnReturn: true
-	      acceptOnTab: true
-	      acceptChannel: acceptChannel
-	      modifiedChannel: modifiedChannel
-	      acceptOnPointerLeave: false
-	    )
-	   (LabelSpec
-	      label: 'Start Group:'
-	      name: 'StartGroupLabel'
-	      layout: (AlignmentOrigin 107 0 139 0 1 0.5)
-	      activeHelpKey: detailsStartGroup
-	      translateLabel: true
-	      resizeForLabel: true
-	      adjust: right
-	    )
-	   (PopUpListSpec
-	      label: 'left'
-	      name: 'StartGroupPopUp'
-	      layout: (LayoutFrame 110 0 128 0 -5 1.0 150 0)
-	      activeHelpKey: detailsStartGroup
-	      tabable: true
-	      model: startGroup
-	      menu: (left right conditionalRight)
-	    )
-	   (LabelSpec
-	      label: 'Access Character Position:'
-	      name: 'accessCharLabel'
-	      layout: (AlignmentOrigin 217 0 170 0 1 0.5)
-	      translateLabel: true
-	      resizeForLabel: true
-	      adjust: right
-	    )
-	   (InputFieldSpec
-	      name: 'accessCharField'
-	      layout: (LayoutFrame 220 0 159 0 -5 1.0 181 0)
-	      activeHelpKey: detailsAccessCharaterPosition
-	      tabable: true
-	      model: accessCharacterPosition
-	      group: inputGroup
-	      type: numberOrNil
-	      immediateAccept: false
-	      acceptOnReturn: true
-	      acceptOnTab: true
-	      acceptChannel: acceptChannel
-	      modifiedChannel: modifiedChannel
-	      acceptOnPointerLeave: false
-	    )
-	   (CheckBoxSpec
-	      label: 'Ignore Accelerator (i.e. Display Only)'
-	      name: 'ignoreShortcutKeysInItem'
-	      layout: (AlignmentOrigin 42 0 204 0 0 0.5)
-	      activeHelpKey: detailsIgnoreAcceleratorKeys
-	      visibilityChannel: hasNoSubmenu
-	      model: ignoreShortcutKeys
-	      translateLabel: true
-	      resizeForLabel: true
-	    )
-	   (CheckBoxSpec
-	      label: 'Ignore Accelerators in Submenu'
-	      name: 'ignoreShortcutKeys'
-	      layout: (AlignmentOrigin 42 0 204 0 0 0.5)
-	      activeHelpKey: detailsIgnoreAcceleratorKeys
-	      visibilityChannel: hasSubmenu
-	      model: ignoreShortcutKeys
-	      translateLabel: true
-	      resizeForLabel: true
-	    )
-	   (CheckBoxSpec
-	      label: 'Ignore Mnemonics in Submenu'
-	      name: 'ignoreMnemonicKeys'
-	      layout: (AlignmentOrigin 42 0 232 0 0 0.5)
-	      activeHelpKey: detailsIgnoreMnemonicKeys
-	      visibilityChannel: hasSubmenu
-	      model: ignoreMnemonicKeys
-	      translateLabel: true
-	      resizeForLabel: true
-	    )
-	   (LabelSpec
-	      label: 'Font:'
-	      name: 'fontLabel'
-	      layout: (AlignmentOrigin 107 0 271 0 1 0.5)
-	      translateLabel: true
-	      resizeForLabel: true
-	      adjust: right
-	    )
-	   (FontMenuSpec
-	      attributes:
-	     (tabable
-		true
-	      )
-	      name: 'fontMenu'
-	      layout: (LayoutFrame 110 0 260 0 -5 1.0 282 0)
-	      activeHelpKey: fontMenu
-	      model: font
-	    )
-	   )
-
-	)
+          collection: (
+           (LabelSpec
+              label: 'Accelerator:'
+              name: 'shortcutKeyLabel'
+              layout: (AlignmentOrigin 107 0 26 0 1 0.5)
+              activeHelpKey: detailsAccelerator
+              translateLabel: true
+              resizeForLabel: true
+              adjust: right
+            )
+           (InputFieldSpec
+              name: 'shortcutKeyField'
+              layout: (LayoutFrame 110 0 15 0 -5 1.0 37 0)
+              activeHelpKey: detailsAccelerator
+              tabable: true
+              model: shortcutKeyCharacter
+              group: inputGroup
+              type: symbolOrNil
+              immediateAccept: false
+              acceptOnReturn: true
+              acceptOnTab: true
+              acceptChannel: acceptChannel
+              modifiedChannel: modifiedChannel
+              acceptOnPointerLeave: false
+            )
+           (LabelSpec
+              label: 'Enabled:'
+              name: 'enabledLabel'
+              layout: (AlignmentOrigin 107 0 51 0 1 0.5)
+              activeHelpKey: detailsEnabled
+              translateLabel: true
+              resizeForLabel: true
+              adjust: right
+            )
+           (InputFieldSpec
+              name: 'enabledField'
+              layout: (LayoutFrame 110 0 40 0 -5 1.0 62 0)
+              activeHelpKey: detailsEnabled
+              tabable: true
+              model: enabled
+              group: inputGroup
+              type: symbolOrBooleanOrNil
+              immediateAccept: false
+              acceptOnReturn: true
+              acceptOnTab: true
+              acceptChannel: acceptChannel
+              modifiedChannel: modifiedChannel
+              acceptOnPointerLeave: false
+            )
+           (LabelSpec
+              label: 'Visibility:'
+              name: 'visibilityLabel'
+              layout: (AlignmentOrigin 107 0 76 0 1 0.5)
+              activeHelpKey: detailsVisibility
+              translateLabel: true
+              resizeForLabel: true
+              adjust: right
+            )
+           (InputFieldSpec
+              name: 'isVisibleInputField'
+              layout: (LayoutFrame 110 0 65 0 -5 1.0 87 0)
+              activeHelpKey: detailsVisibility
+              tabable: true
+              model: isVisible
+              group: inputGroup
+              type: symbolOrBooleanOrNil
+              immediateAccept: false
+              acceptOnReturn: true
+              acceptOnTab: true
+              acceptChannel: acceptChannel
+              modifiedChannel: modifiedChannel
+              acceptOnPointerLeave: false
+            )
+           (LabelSpec
+              label: 'Aux Value'
+              name: 'auxLabel'
+              layout: (AlignmentOrigin 107 0 101 0 1 0.5)
+              activeHelpKey: detailsAuxValue
+              translateLabel: true
+              resizeForLabel: true
+              adjust: right
+            )
+           (InputFieldSpec
+              name: 'auxInputField'
+              layout: (LayoutFrame 110 0 90 0 -5 1.0 112 0)
+              activeHelpKey: detailsAuxValue
+              tabable: true
+              model: auxValue
+              group: inputGroup
+              type: smalltalkObjectOrNil
+              immediateAccept: false
+              acceptOnReturn: true
+              acceptOnTab: true
+              acceptChannel: acceptChannel
+              modifiedChannel: modifiedChannel
+              acceptOnPointerLeave: false
+            )
+           (LabelSpec
+              label: 'Start Group:'
+              name: 'StartGroupLabel'
+              layout: (AlignmentOrigin 107 0 139 0 1 0.5)
+              activeHelpKey: detailsStartGroup
+              translateLabel: true
+              resizeForLabel: true
+              adjust: right
+            )
+           (PopUpListSpec
+              label: 'left'
+              name: 'StartGroupPopUp'
+              layout: (LayoutFrame 110 0 128 0 -5 1.0 150 0)
+              activeHelpKey: detailsStartGroup
+              tabable: true
+              model: startGroup
+              menu: (left right conditionalRight)
+            )
+           (LabelSpec
+              label: 'Access Character Position:'
+              name: 'accessCharLabel'
+              layout: (AlignmentOrigin 217 0 170 0 1 0.5)
+              translateLabel: true
+              resizeForLabel: true
+              adjust: right
+            )
+           (InputFieldSpec
+              name: 'accessCharField'
+              layout: (LayoutFrame 220 0 159 0 -5 1.0 181 0)
+              activeHelpKey: detailsAccessCharaterPosition
+              tabable: true
+              model: accessCharacterPosition
+              group: inputGroup
+              type: numberOrNil
+              immediateAccept: false
+              acceptOnReturn: true
+              acceptOnTab: true
+              acceptChannel: acceptChannel
+              modifiedChannel: modifiedChannel
+              acceptOnPointerLeave: false
+            )
+           (CheckBoxSpec
+              label: 'Ignore Accelerator (i.e. Display Only)'
+              name: 'ignoreShortcutKeysInItem'
+              layout: (AlignmentOrigin 42 0 204 0 0 0.5)
+              activeHelpKey: detailsIgnoreAcceleratorKeys
+              visibilityChannel: hasNoSubmenu
+              model: ignoreShortcutKeys
+              translateLabel: true
+              resizeForLabel: true
+            )
+           (CheckBoxSpec
+              label: 'Ignore Accelerators in Submenu'
+              name: 'ignoreShortcutKeys'
+              layout: (AlignmentOrigin 42 0 204 0 0 0.5)
+              activeHelpKey: detailsIgnoreAcceleratorKeys
+              visibilityChannel: hasSubmenu
+              model: ignoreShortcutKeys
+              translateLabel: true
+              resizeForLabel: true
+            )
+           (CheckBoxSpec
+              label: 'Ignore Mnemonics in Submenu'
+              name: 'ignoreMnemonicKeys'
+              layout: (AlignmentOrigin 42 0 232 0 0 0.5)
+              activeHelpKey: detailsIgnoreMnemonicKeys
+              visibilityChannel: hasSubmenu
+              model: ignoreMnemonicKeys
+              translateLabel: true
+              resizeForLabel: true
+            )
+           (LabelSpec
+              label: 'Font:'
+              name: 'fontLabel'
+              layout: (AlignmentOrigin 107 0 271 0 1 0.5)
+              translateLabel: true
+              resizeForLabel: true
+              adjust: right
+            )
+           (FontMenuSpec
+              attributes:
+             (tabable
+                true
+              )
+              name: 'fontMenu'
+              layout: (LayoutFrame 110 0 260 0 -5 1.0 282 0)
+              activeHelpKey: fontMenu
+              model: font
+            )
+           )
+
+        )
       )
 
     "Modified: / 16-10-2006 / 12:48:12 / cg"
@@ -3530,8 +3530,9 @@
     "read values from aspects
     "
     MenuEditor aspects do:[:aKey|
-	self aspectAt:aKey put:((aspects at:aKey) value)
+        self aspectAt:aKey put:((aspects at:aKey) value).
     ].
+    self validateMenuItem.
     self changed.
 !
 
@@ -3544,6 +3545,17 @@
     (aspects at:#notDelayedMenu) value:(self isDelayedMenu not).
     (aspects at:#hasSubmenu)     value:(self isKindOfMenu or:[self children size ~~ 0]).
     (aspects at:#hasNoSubmenu)   value:(self isKindOfMenu not ).
+!
+
+validateMenuItem
+    "validate the menuItem for correctness"
+
+    menuItem isNil ifTrue:[^ self].
+
+    menuItem choice isEmptyOrNil ifTrue:[
+        menuItem choice:nil.
+        menuItem choiceValue:nil.
+    ].
 ! !
 
 !MenuEditor::Item methodsFor:'displaying'!
@@ -3751,254 +3763,254 @@
 
     ^
      #(FullSpec
-	name: basicsEditSpec
-	window:
+        name: basicsEditSpec
+        window:
        (WindowSpec
-	  label: 'basicsEditSpec'
-	  name: 'basicsEditSpec'
-	  min: (Point 10 10)
-	  bounds: (Rectangle 0 0 340 340)
-	)
-	component:
+          label: 'basicsEditSpec'
+          name: 'basicsEditSpec'
+          min: (Point 10 10)
+          bounds: (Rectangle 0 0 340 340)
+        )
+        component:
        (SpecCollection
-	  collection: (
-	   (LabelSpec
-	      label: 'Name Key:'
-	      name: 'nameKeyLabel'
-	      layout: (AlignmentOrigin 107 0 25 0 1 0.5)
-	      activeHelpKey: basicsKey
-	      translateLabel: true
-	      resizeForLabel: true
-	      adjust: right
-	    )
-	   (InputFieldSpec
-	      name: 'nameKeyField'
-	      layout: (LayoutFrame 110 0 15 0 -5 1.0 37 0)
-	      activeHelpKey: basicsKey
-	      tabable: true
-	      model: nameKey
-	      group: inputGroup
-	      type: symbolOrNil
-	      immediateAccept: false
-	      acceptOnLeave: false
-	      acceptOnReturn: true
-	      acceptOnTab: true
-	      acceptOnLostFocus: false
-	      acceptChannel: acceptChannel
-	      modifiedChannel: modifiedChannel
-	      acceptOnPointerLeave: false
-	    )
-	   (LabelSpec
-	      label: 'Label:'
-	      name: 'labelLabel'
-	      layout: (AlignmentOrigin 107 0 51 0 1 0.5)
-	      activeHelpKey: basicsLabel
-	      translateLabel: true
-	      resizeForLabel: true
-	      adjust: right
-	    )
-	   (InputFieldSpec
-	      name: 'labelField'
-	      layout: (LayoutFrame 110 0 40 0 -5 1.0 62 0)
-	      activeHelpKey: basicsLabel
-	      tabable: true
-	      model: rawLabel
-	      group: inputGroup
-	      immediateAccept: false
-	      acceptOnReturn: true
-	      acceptOnTab: true
-	      acceptOnLostFocus: false
-	      acceptChannel: acceptChannel
-	      modifiedChannel: modifiedChannel
-	      acceptOnPointerLeave: false
-	    )
-	   (LabelSpec
-	      label: 'Action:'
-	      name: 'valueLabel'
-	      layout: (AlignmentOrigin 107 0 82 0 1 0.5)
-	      activeHelpKey: basicsAction
-	      translateLabel: true
-	      resizeForLabel: true
-	      adjust: right
-	    )
-	   (InputFieldSpec
-	      name: 'valueField'
-	      layout: (LayoutFrame 110 0 71 0 -5 1.0 93 0)
-	      activeHelpKey: basicsAction
-	      tabable: true
-	      model: itemValue
-	      group: inputGroup
-	      type: symbolOrNil
-	      immediateAccept: false
-	      acceptOnLeave: true
-	      acceptOnReturn: true
-	      acceptOnTab: true
-	      acceptOnLostFocus: true
-	      acceptChannel: acceptChannel
-	      modifiedChannel: modifiedChannel
-	      acceptOnPointerLeave: true
-	    )
-	   (LabelSpec
-	      label: 'Argument:'
-	      name: 'argumentLabel'
-	      layout: (AlignmentOrigin 107 0 107 0 1 0.5)
-	      activeHelpKey: basicsArgument
-	      translateLabel: true
-	      resizeForLabel: true
-	      adjust: right
-	    )
-	   (InputFieldSpec
-	      name: 'argumentField'
-	      layout: (LayoutFrame 110 0 96 0 -5 1.0 118 0)
-	      activeHelpKey: basicsArgument
-	      tabable: true
-	      model: argument
-	      group: inputGroup
-	      type: smalltalkObject
-	      immediateAccept: false
-	      acceptOnReturn: true
-	      acceptOnTab: true
-	      acceptOnLostFocus: false
-	      acceptChannel: acceptChannel
-	      modifiedChannel: modifiedChannel
-	      acceptOnPointerLeave: false
-	    )
-	   (LabelSpec
-	      label: 'Indication:'
-	      name: 'indicationLabel'
-	      layout: (AlignmentOrigin 107 0 138 0 1 0.5)
-	      activeHelpKey: basicsIndication
-	      translateLabel: true
-	      resizeForLabel: true
-	      adjust: right
-	    )
-	   (InputFieldSpec
-	      name: 'indicationField'
-	      layout: (LayoutFrame 110 0 127 0 -5 1.0 149 0)
-	      activeHelpKey: basicsIndication
-	      enableChannel: indicationEnabled
-	      tabable: true
-	      model: indication
-	      group: inputGroup
-	      type: symbolOrNil
-	      immediateAccept: true
-	      acceptOnReturn: false
-	      acceptOnTab: false
-	      acceptOnLostFocus: false
-	      modifiedChannel: modifiedChannel
-	      acceptOnPointerLeave: false
-	    )
-	   (LabelSpec
-	      label: 'Choice:'
-	      name: 'choiceLabel'
-	      layout: (AlignmentOrigin 107 0 163 0 1 0.5)
-	      activeHelpKey: basicsChoice
-	      translateLabel: true
-	      resizeForLabel: true
-	      adjust: right
-	    )
-	   (InputFieldSpec
-	      name: 'choiceField'
-	      layout: (LayoutFrame 110 0 152 0 -5 1.0 174 0)
-	      activeHelpKey: basicsChoice
-	      enableChannel: choiceEnabled
-	      tabable: true
-	      model: choice
-	      group: inputGroup
-	      type: symbolOrNil
-	      immediateAccept: true
-	      acceptOnReturn: false
-	      acceptOnTab: false
-	      acceptOnLostFocus: false
-	      modifiedChannel: modifiedChannel
-	      acceptOnPointerLeave: false
-	    )
-	   (LabelSpec
-	      label: 'Value:'
-	      name: 'choiceValueLabel'
-	      layout: (AlignmentOrigin 107 0 188 0 1 0.5)
-	      activeHelpKey: basicsChoiceValue
-	      translateLabel: true
-	      resizeForLabel: true
-	      adjust: right
-	    )
-	   (InputFieldSpec
-	      name: 'choiceValueField'
-	      layout: (LayoutFrame 110 0 177 0 -5 1.0 199 0)
-	      activeHelpKey: basicsChoiceValue
-	      enableChannel: choiceValueEnabled
-	      tabable: true
-	      model: choiceValue
-	      group: inputGroup
-	      type: smalltalkObjectOrNil
-	      immediateAccept: false
-	      acceptOnLeave: false
-	      acceptOnReturn: true
-	      acceptOnTab: true
-	      acceptOnLostFocus: false
-	      acceptChannel: acceptChannel
-	      modifiedChannel: modifiedChannel
-	      acceptOnPointerLeave: false
-	    )
-	   (CheckBoxSpec
-	      label: 'Translate Label'
-	      name: 'translateLabelCheckBox'
-	      layout: (AlignmentOrigin 7 0 213 0 0 0)
-	      activeHelpKey: basicsTranslateLabel
-	      tabable: true
-	      model: translateLabel
-	      translateLabel: true
-	    )
-	   (CheckBoxSpec
-	      label: 'Is Button'
-	      name: 'isButtonCheckBox'
-	      layout: (AlignmentOrigin 7 0 238 0 0 0)
-	      activeHelpKey: basicsIsButton
-	      tabable: true
-	      model: isButton
-	      translateLabel: true
-	    )
-	   (CheckBoxSpec
-	      label: 'Hide Menu after Activation'
-	      name: 'hideMenuOnActivated'
-	      layout: (AlignmentOrigin 7 0 263 0 0 0)
-	      activeHelpKey: hideMenuOnActivated
-	      tabable: true
-	      model: hideMenuOnActivated
-	      translateLabel: true
-	    )
-	   (CheckBoxSpec
-	      label: 'BusyCursor while Active'
-	      name: 'showBusyCursorWhilePerforming'
-	      layout: (AlignmentOrigin 7 0 288 0 0 0)
-	      activeHelpKey: showBusyCursorWhilePerforming
-	      tabable: true
-	      model: showBusyCursorWhilePerforming
-	      translateLabel: true
-	    )
-	   (CheckBoxSpec
-	      label: 'Trigger On Down'
-	      name: 'triggerOnDown'
-	      layout: (AlignmentOrigin 25 0.5 238 0 0 0)
-	      activeHelpKey: triggerOnDown
-	      enableChannel: hasNoDelayedMenuValue
-	      tabable: true
-	      model: triggerOnDown
-	      translateLabel: true
-	    )
-	   (CheckBoxSpec
-	      label: 'Send To Originating Widget'
-	      name: 'sendToOriginator'
-	      layout: (AlignmentOrigin 7 0 313 0 0 0)
-	      activeHelpKey: sendToOriginator
-	      enableChannel: hasItemValue
-	      tabable: true
-	      model: sendToOriginator
-	      translateLabel: true
-	    )
-	   )
-
-	)
+          collection: (
+           (LabelSpec
+              label: 'Name Key:'
+              name: 'nameKeyLabel'
+              layout: (AlignmentOrigin 107 0 25 0 1 0.5)
+              activeHelpKey: basicsKey
+              translateLabel: true
+              resizeForLabel: true
+              adjust: right
+            )
+           (InputFieldSpec
+              name: 'nameKeyField'
+              layout: (LayoutFrame 110 0 15 0 -5 1.0 37 0)
+              activeHelpKey: basicsKey
+              tabable: true
+              model: nameKey
+              group: inputGroup
+              type: symbolOrNil
+              immediateAccept: false
+              acceptOnLeave: false
+              acceptOnReturn: true
+              acceptOnTab: true
+              acceptOnLostFocus: false
+              acceptChannel: acceptChannel
+              modifiedChannel: modifiedChannel
+              acceptOnPointerLeave: false
+            )
+           (LabelSpec
+              label: 'Label:'
+              name: 'labelLabel'
+              layout: (AlignmentOrigin 107 0 51 0 1 0.5)
+              activeHelpKey: basicsLabel
+              translateLabel: true
+              resizeForLabel: true
+              adjust: right
+            )
+           (InputFieldSpec
+              name: 'labelField'
+              layout: (LayoutFrame 110 0 40 0 -5 1.0 62 0)
+              activeHelpKey: basicsLabel
+              tabable: true
+              model: rawLabel
+              group: inputGroup
+              immediateAccept: false
+              acceptOnReturn: true
+              acceptOnTab: true
+              acceptOnLostFocus: false
+              acceptChannel: acceptChannel
+              modifiedChannel: modifiedChannel
+              acceptOnPointerLeave: false
+            )
+           (LabelSpec
+              label: 'Action:'
+              name: 'valueLabel'
+              layout: (AlignmentOrigin 107 0 82 0 1 0.5)
+              activeHelpKey: basicsAction
+              translateLabel: true
+              resizeForLabel: true
+              adjust: right
+            )
+           (InputFieldSpec
+              name: 'valueField'
+              layout: (LayoutFrame 110 0 71 0 -5 1.0 93 0)
+              activeHelpKey: basicsAction
+              tabable: true
+              model: itemValue
+              group: inputGroup
+              type: symbolOrNil
+              immediateAccept: false
+              acceptOnLeave: true
+              acceptOnReturn: true
+              acceptOnTab: true
+              acceptOnLostFocus: true
+              acceptChannel: acceptChannel
+              modifiedChannel: modifiedChannel
+              acceptOnPointerLeave: true
+            )
+           (LabelSpec
+              label: 'Argument:'
+              name: 'argumentLabel'
+              layout: (AlignmentOrigin 107 0 107 0 1 0.5)
+              activeHelpKey: basicsArgument
+              translateLabel: true
+              resizeForLabel: true
+              adjust: right
+            )
+           (InputFieldSpec
+              name: 'argumentField'
+              layout: (LayoutFrame 110 0 96 0 -5 1.0 118 0)
+              activeHelpKey: basicsArgument
+              tabable: true
+              model: argument
+              group: inputGroup
+              type: smalltalkObjectOrNil
+              immediateAccept: false
+              acceptOnReturn: true
+              acceptOnTab: true
+              acceptOnLostFocus: false
+              acceptChannel: acceptChannel
+              modifiedChannel: modifiedChannel
+              acceptOnPointerLeave: false
+            )
+           (LabelSpec
+              label: 'Indication:'
+              name: 'indicationLabel'
+              layout: (AlignmentOrigin 107 0 138 0 1 0.5)
+              activeHelpKey: basicsIndication
+              translateLabel: true
+              resizeForLabel: true
+              adjust: right
+            )
+           (InputFieldSpec
+              name: 'indicationField'
+              layout: (LayoutFrame 110 0 127 0 -5 1.0 149 0)
+              activeHelpKey: basicsIndication
+              enableChannel: indicationEnabled
+              tabable: true
+              model: indication
+              group: inputGroup
+              type: symbolOrNil
+              immediateAccept: true
+              acceptOnReturn: false
+              acceptOnTab: false
+              acceptOnLostFocus: false
+              modifiedChannel: modifiedChannel
+              acceptOnPointerLeave: false
+            )
+           (LabelSpec
+              label: 'Choice:'
+              name: 'choiceLabel'
+              layout: (AlignmentOrigin 107 0 163 0 1 0.5)
+              activeHelpKey: basicsChoice
+              translateLabel: true
+              resizeForLabel: true
+              adjust: right
+            )
+           (InputFieldSpec
+              name: 'choiceField'
+              layout: (LayoutFrame 110 0 152 0 -5 1.0 174 0)
+              activeHelpKey: basicsChoice
+              enableChannel: choiceEnabled
+              tabable: true
+              model: choice
+              group: inputGroup
+              type: symbolOrNil
+              immediateAccept: true
+              acceptOnReturn: false
+              acceptOnTab: false
+              acceptOnLostFocus: false
+              modifiedChannel: modifiedChannel
+              acceptOnPointerLeave: false
+            )
+           (LabelSpec
+              label: 'Value:'
+              name: 'choiceValueLabel'
+              layout: (AlignmentOrigin 107 0 188 0 1 0.5)
+              activeHelpKey: basicsChoiceValue
+              translateLabel: true
+              resizeForLabel: true
+              adjust: right
+            )
+           (InputFieldSpec
+              name: 'choiceValueField'
+              layout: (LayoutFrame 110 0 177 0 -5 1.0 199 0)
+              activeHelpKey: basicsChoiceValue
+              enableChannel: choiceValueEnabled
+              tabable: true
+              model: choiceValue
+              group: inputGroup
+              type: smalltalkObjectOrNil
+              immediateAccept: false
+              acceptOnLeave: false
+              acceptOnReturn: true
+              acceptOnTab: true
+              acceptOnLostFocus: false
+              acceptChannel: acceptChannel
+              modifiedChannel: modifiedChannel
+              acceptOnPointerLeave: false
+            )
+           (CheckBoxSpec
+              label: 'Translate Label'
+              name: 'translateLabelCheckBox'
+              layout: (AlignmentOrigin 7 0 213 0 0 0)
+              activeHelpKey: basicsTranslateLabel
+              tabable: true
+              model: translateLabel
+              translateLabel: true
+            )
+           (CheckBoxSpec
+              label: 'Is Button'
+              name: 'isButtonCheckBox'
+              layout: (AlignmentOrigin 7 0 238 0 0 0)
+              activeHelpKey: basicsIsButton
+              tabable: true
+              model: isButton
+              translateLabel: true
+            )
+           (CheckBoxSpec
+              label: 'Hide Menu after Activation'
+              name: 'hideMenuOnActivated'
+              layout: (AlignmentOrigin 7 0 263 0 0 0)
+              activeHelpKey: hideMenuOnActivated
+              tabable: true
+              model: hideMenuOnActivated
+              translateLabel: true
+            )
+           (CheckBoxSpec
+              label: 'BusyCursor while Active'
+              name: 'showBusyCursorWhilePerforming'
+              layout: (AlignmentOrigin 7 0 288 0 0 0)
+              activeHelpKey: showBusyCursorWhilePerforming
+              tabable: true
+              model: showBusyCursorWhilePerforming
+              translateLabel: true
+            )
+           (CheckBoxSpec
+              label: 'Trigger On Down'
+              name: 'triggerOnDown'
+              layout: (AlignmentOrigin 25 0.5 238 0 0 0)
+              activeHelpKey: triggerOnDown
+              enableChannel: hasNoDelayedMenuValue
+              tabable: true
+              model: triggerOnDown
+              translateLabel: true
+            )
+           (CheckBoxSpec
+              label: 'Send To Originating Widget'
+              name: 'sendToOriginator'
+              layout: (AlignmentOrigin 7 0 313 0 0 0)
+              activeHelpKey: sendToOriginator
+              enableChannel: hasItemValue
+              tabable: true
+              model: sendToOriginator
+              translateLabel: true
+            )
+           )
+
+        )
       )
 ! !
 
@@ -4093,23 +4105,23 @@
     "set a specific aspect named aKey to the aValue"
 
     aKey == #argument ifTrue:[
-	self hasDelayedMenu ifTrue:[
-	    children first argument:aValue
-	].
-	menuItem argument:aValue.
-	^ self
+        self hasDelayedMenu ifTrue:[
+            children first argument:aValue
+        ].
+        menuItem argument:aValue.
+        ^ self
     ].
 
     aKey == #triggerOnDown ifTrue:[
-	|triggerOnDown|
-
-	self hasDelayedMenu ifTrue:[
-	    triggerOnDown := false
-	] ifFalse:[
-	    triggerOnDown := aValue
-	].
-	menuItem triggerOnDown:triggerOnDown.
-	^ self.
+        |triggerOnDown|
+
+        self hasDelayedMenu ifTrue:[
+            triggerOnDown := false
+        ] ifFalse:[
+            triggerOnDown := aValue
+        ].
+        menuItem triggerOnDown:triggerOnDown.
+        ^ self.
     ].
     super aspectAt:aKey put:aValue.
 
@@ -4195,163 +4207,163 @@
 
     ^
      #(FullSpec
-	name: basicsEditSpec
-	window:
+        name: basicsEditSpec
+        window:
        (WindowSpec
-	  label: 'basicsEditSpec'
-	  name: 'basicsEditSpec'
-	  min: (Point 10 10)
-	  bounds: (Rectangle 0 0 340 340)
-	)
-	component:
+          label: 'basicsEditSpec'
+          name: 'basicsEditSpec'
+          min: (Point 10 10)
+          bounds: (Rectangle 0 0 340 340)
+        )
+        component:
        (SpecCollection
-	  collection: (
-	   (LabelSpec
-	      label: 'Name Key:'
-	      name: 'nameKeyLabel'
-	      layout: (AlignmentOrigin 107 0 25 0 1 0.5)
-	      activeHelpKey: basicsKey
-	      visibilityChannel: notDelayedMenu
-	      translateLabel: true
-	      resizeForLabel: true
-	      adjust: right
-	    )
-	   (InputFieldSpec
-	      name: 'nameKeyField'
-	      layout: (LayoutFrame 110 0 15 0 -5 1.0 37 0)
-	      activeHelpKey: basicsKey
-	      visibilityChannel: notDelayedMenu
-	      tabable: true
-	      model: nameKey
-	      group: inputGroup
-	      type: symbolOrNil
-	      immediateAccept: false
-	      acceptOnLeave: false
-	      acceptOnReturn: true
-	      acceptOnTab: true
-	      acceptOnLostFocus: false
-	      acceptChannel: acceptChannel
-	      modifiedChannel: modifiedChannel
-	      acceptOnPointerLeave: false
-	    )
-	   (LabelSpec
-	      label: 'Label:'
-	      name: 'labelLabel'
-	      layout: (AlignmentOrigin 107 0 51 0 1 0.5)
-	      activeHelpKey: basicsLabel
-	      visibilityChannel: notDelayedMenu
-	      translateLabel: true
-	      resizeForLabel: true
-	      adjust: right
-	    )
-	   (InputFieldSpec
-	      name: 'labelField'
-	      layout: (LayoutFrame 110 0 40 0 -5 1.0 62 0)
-	      activeHelpKey: basicsLabel
-	      visibilityChannel: notDelayedMenu
-	      tabable: true
-	      model: rawLabel
-	      group: inputGroup
-	      immediateAccept: false
-	      acceptOnReturn: true
-	      acceptOnTab: true
-	      acceptOnLostFocus: false
-	      acceptChannel: acceptChannel
-	      modifiedChannel: modifiedChannel
-	      acceptOnPointerLeave: false
-	    )
-	   (LabelSpec
-	      label: 'Menu:'
-	      name: 'menuLabel'
-	      layout: (AlignmentOrigin 107 0 90 0 1 0.5)
-	      activeHelpKey: basicsLabel
-	      translateLabel: true
-	      resizeForLabel: true
-	      adjust: right
-	    )
-	   (InputFieldSpec
-	      name: 'menuField'
-	      layout: (LayoutFrame 110 0 79 0 -5 1.0 101 0)
-	      activeHelpKey: basicsMenu
-	      tabable: true
-	      model: submenuChannel
-	      group: inputGroup
-	      type: symbolOrNil
-	      immediateAccept: false
-	      acceptOnReturn: true
-	      acceptOnTab: true
-	      acceptOnLostFocus: false
-	      acceptChannel: acceptChannel
-	      modifiedChannel: modifiedChannel
-	      acceptOnPointerLeave: false
-	    )
-	   (LabelSpec
-	      label: 'Argument:'
-	      name: 'argumentLabel'
-	      layout: (AlignmentOrigin 107 0 115 0 1 0.5)
-	      activeHelpKey: basicsLabel
-	      translateLabel: true
-	      resizeForLabel: true
-	      adjust: right
-	    )
-	   (InputFieldSpec
-	      name: 'argumentField'
-	      layout: (LayoutFrame 110 0 104 0 -5 1.0 126 0)
-	      activeHelpKey: basicsMenuArgument
-	      enableChannel: notDelayedMenu
-	      tabable: true
-	      model: argument
-	      group: inputGroup
-	      type: smalltalkObject
-	      immediateAccept: false
-	      acceptOnReturn: true
-	      acceptOnTab: true
-	      acceptOnLostFocus: false
-	      acceptChannel: acceptChannel
-	      modifiedChannel: modifiedChannel
-	      acceptOnPointerLeave: false
-	    )
-	   (CheckBoxSpec
-	      label: 'Translate Label'
-	      name: 'translateLabelCheckBox'
-	      layout: (Point 20 213)
-	      activeHelpKey: basicsTranslateLabel
-	      visibilityChannel: notDelayedMenu
-	      tabable: true
-	      model: translateLabel
-	      translateLabel: true
-	    )
-	   (CheckBoxSpec
-	      label: 'Is Button'
-	      name: 'isButtonCheckBox'
-	      layout: (Point 20 238)
-	      activeHelpKey: basicsIsButton
-	      visibilityChannel: notDelayedMenu
-	      tabable: true
-	      model: isButton
-	      translateLabel: true
-	    )
-	   (CheckBoxSpec
-	      label: 'Horizontal Layout'
-	      name: 'horizontalLayout'
-	      layout: (Point 20 263)
-	      activeHelpKey: horizontalLayout
-	      tabable: true
-	      model: horizontalLayout
-	      translateLabel: true
-	    )
-	   (CheckBoxSpec
-	      label: 'Do not Destroy Linked Menu'
-	      name: 'keepLinkedMenu'
-	      layout: (Point 20 288)
-	      activeHelpKey: keepLinkedMenu
-	      tabable: true
-	      model: keepLinkedMenu
-	      translateLabel: true
-	    )
-	   )
-
-	)
+          collection: (
+           (LabelSpec
+              label: 'Name Key:'
+              name: 'nameKeyLabel'
+              layout: (AlignmentOrigin 107 0 25 0 1 0.5)
+              activeHelpKey: basicsKey
+              visibilityChannel: notDelayedMenu
+              translateLabel: true
+              resizeForLabel: true
+              adjust: right
+            )
+           (InputFieldSpec
+              name: 'nameKeyField'
+              layout: (LayoutFrame 110 0 15 0 -5 1.0 37 0)
+              activeHelpKey: basicsKey
+              visibilityChannel: notDelayedMenu
+              tabable: true
+              model: nameKey
+              group: inputGroup
+              type: symbolOrNil
+              immediateAccept: false
+              acceptOnLeave: false
+              acceptOnReturn: true
+              acceptOnTab: true
+              acceptOnLostFocus: false
+              acceptChannel: acceptChannel
+              modifiedChannel: modifiedChannel
+              acceptOnPointerLeave: false
+            )
+           (LabelSpec
+              label: 'Label:'
+              name: 'labelLabel'
+              layout: (AlignmentOrigin 107 0 51 0 1 0.5)
+              activeHelpKey: basicsLabel
+              visibilityChannel: notDelayedMenu
+              translateLabel: true
+              resizeForLabel: true
+              adjust: right
+            )
+           (InputFieldSpec
+              name: 'labelField'
+              layout: (LayoutFrame 110 0 40 0 -5 1.0 62 0)
+              activeHelpKey: basicsLabel
+              visibilityChannel: notDelayedMenu
+              tabable: true
+              model: rawLabel
+              group: inputGroup
+              immediateAccept: false
+              acceptOnReturn: true
+              acceptOnTab: true
+              acceptOnLostFocus: false
+              acceptChannel: acceptChannel
+              modifiedChannel: modifiedChannel
+              acceptOnPointerLeave: false
+            )
+           (LabelSpec
+              label: 'Menu:'
+              name: 'menuLabel'
+              layout: (AlignmentOrigin 107 0 90 0 1 0.5)
+              activeHelpKey: basicsLabel
+              translateLabel: true
+              resizeForLabel: true
+              adjust: right
+            )
+           (InputFieldSpec
+              name: 'menuField'
+              layout: (LayoutFrame 110 0 79 0 -5 1.0 101 0)
+              activeHelpKey: basicsMenu
+              tabable: true
+              model: submenuChannel
+              group: inputGroup
+              type: symbolOrNil
+              immediateAccept: false
+              acceptOnReturn: true
+              acceptOnTab: true
+              acceptOnLostFocus: false
+              acceptChannel: acceptChannel
+              modifiedChannel: modifiedChannel
+              acceptOnPointerLeave: false
+            )
+           (LabelSpec
+              label: 'Argument:'
+              name: 'argumentLabel'
+              layout: (AlignmentOrigin 107 0 115 0 1 0.5)
+              activeHelpKey: basicsLabel
+              translateLabel: true
+              resizeForLabel: true
+              adjust: right
+            )
+           (InputFieldSpec
+              name: 'argumentField'
+              layout: (LayoutFrame 110 0 104 0 -5 1.0 126 0)
+              activeHelpKey: basicsMenuArgument
+              enableChannel: notDelayedMenu
+              tabable: true
+              model: argument
+              group: inputGroup
+              type: smalltalkObjectOrNil
+              immediateAccept: false
+              acceptOnReturn: true
+              acceptOnTab: true
+              acceptOnLostFocus: false
+              acceptChannel: acceptChannel
+              modifiedChannel: modifiedChannel
+              acceptOnPointerLeave: false
+            )
+           (CheckBoxSpec
+              label: 'Translate Label'
+              name: 'translateLabelCheckBox'
+              layout: (Point 20 213)
+              activeHelpKey: basicsTranslateLabel
+              visibilityChannel: notDelayedMenu
+              tabable: true
+              model: translateLabel
+              translateLabel: true
+            )
+           (CheckBoxSpec
+              label: 'Is Button'
+              name: 'isButtonCheckBox'
+              layout: (Point 20 238)
+              activeHelpKey: basicsIsButton
+              visibilityChannel: notDelayedMenu
+              tabable: true
+              model: isButton
+              translateLabel: true
+            )
+           (CheckBoxSpec
+              label: 'Horizontal Layout'
+              name: 'horizontalLayout'
+              layout: (Point 20 263)
+              activeHelpKey: horizontalLayout
+              tabable: true
+              model: horizontalLayout
+              translateLabel: true
+            )
+           (CheckBoxSpec
+              label: 'Do not Destroy Linked Menu'
+              name: 'keepLinkedMenu'
+              layout: (Point 20 288)
+              activeHelpKey: keepLinkedMenu
+              tabable: true
+              model: keepLinkedMenu
+              translateLabel: true
+            )
+           )
+
+        )
       )
 ! !
 
@@ -4475,125 +4487,125 @@
 
     ^
      #(FullSpec
-	name: basicsEditSpec
-	window:
+        name: basicsEditSpec
+        window:
        (WindowSpec
-	  label: 'basicsEditSpec'
-	  name: 'basicsEditSpec'
-	  min: (Point 10 10)
-	  bounds: (Rectangle 0 0 344 146)
-	)
-	component:
+          label: 'basicsEditSpec'
+          name: 'basicsEditSpec'
+          min: (Point 10 10)
+          bounds: (Rectangle 0 0 344 146)
+        )
+        component:
        (SpecCollection
-	  collection: (
-	   (LabelSpec
-	      label: 'Name Key:'
-	      name: 'nameKeyLabel'
-	      layout: (AlignmentOrigin 107 0 25 0 1 0.5)
-	      activeHelpKey: basicsKey
-	      visibilityChannel: notDelayedMenu
-	      translateLabel: true
-	      resizeForLabel: true
-	      adjust: right
-	    )
-	   (InputFieldSpec
-	      name: 'nameKeyField'
-	      layout: (LayoutFrame 110 0 15 0 -5 1.0 37 0)
-	      activeHelpKey: basicsKey
-	      visibilityChannel: notDelayedMenu
-	      tabable: true
-	      model: nameKey
-	      group: inputGroup
-	      type: symbolOrNil
-	      immediateAccept: false
-	      acceptOnLeave: false
-	      acceptOnReturn: true
-	      acceptOnTab: true
-	      acceptOnLostFocus: false
-	      acceptChannel: acceptChannel
-	      modifiedChannel: modifiedChannel
-	      acceptOnPointerLeave: false
-	    )
-	   (LabelSpec
-	      label: 'Label:'
-	      name: 'labelLabel'
-	      layout: (AlignmentOrigin 107 0 51 0 1 0.5)
-	      activeHelpKey: basicsLabel
-	      visibilityChannel: notDelayedMenu
-	      translateLabel: true
-	      resizeForLabel: true
-	      adjust: right
-	    )
-	   (InputFieldSpec
-	      name: 'labelField'
-	      layout: (LayoutFrame 110 0 40 0 -5 1.0 62 0)
-	      activeHelpKey: basicsLabel
-	      visibilityChannel: notDelayedMenu
-	      tabable: true
-	      model: rawLabel
-	      group: inputGroup
-	      immediateAccept: false
-	      acceptOnReturn: true
-	      acceptOnTab: true
-	      acceptOnLostFocus: false
-	      acceptChannel: acceptChannel
-	      modifiedChannel: modifiedChannel
-	      acceptOnPointerLeave: false
-	    )
-	   (LabelSpec
-	      label: 'Menu:'
-	      name: 'menuLabel'
-	      layout: (AlignmentOrigin 107 0 90 0 1 0.5)
-	      activeHelpKey: basicsLabel
-	      translateLabel: true
-	      resizeForLabel: true
-	      adjust: right
-	    )
-	   (InputFieldSpec
-	      name: 'menuField'
-	      layout: (LayoutFrame 110 0 79 0 -5 1.0 101 0)
-	      activeHelpKey: basicsMenu
-	      tabable: true
-	      model: submenuChannel
-	      group: inputGroup
-	      type: symbolOrNil
-	      immediateAccept: false
-	      acceptOnReturn: true
-	      acceptOnTab: true
-	      acceptOnLostFocus: false
-	      acceptChannel: acceptChannel
-	      modifiedChannel: modifiedChannel
-	      acceptOnPointerLeave: false
-	    )
-	   (LabelSpec
-	      label: 'Argument:'
-	      name: 'argumentLabel'
-	      layout: (AlignmentOrigin 107 0 115 0 1 0.5)
-	      activeHelpKey: basicsLabel
-	      translateLabel: true
-	      resizeForLabel: true
-	      adjust: right
-	    )
-	   (InputFieldSpec
-	      name: 'argumentField'
-	      layout: (LayoutFrame 110 0 104 0 -5 1.0 126 0)
-	      activeHelpKey: basicsMenuArgument
-	      enableChannel: notDelayedMenu
-	      tabable: true
-	      model: argument
-	      group: inputGroup
-	      type: smalltalkObject
-	      immediateAccept: false
-	      acceptOnReturn: true
-	      acceptOnTab: true
-	      acceptOnLostFocus: false
-	      acceptChannel: acceptChannel
-	      modifiedChannel: modifiedChannel
-	      acceptOnPointerLeave: false
-	    )
-	   )
-
-	)
+          collection: (
+           (LabelSpec
+              label: 'Name Key:'
+              name: 'nameKeyLabel'
+              layout: (AlignmentOrigin 107 0 25 0 1 0.5)
+              activeHelpKey: basicsKey
+              visibilityChannel: notDelayedMenu
+              translateLabel: true
+              resizeForLabel: true
+              adjust: right
+            )
+           (InputFieldSpec
+              name: 'nameKeyField'
+              layout: (LayoutFrame 110 0 15 0 -5 1.0 37 0)
+              activeHelpKey: basicsKey
+              visibilityChannel: notDelayedMenu
+              tabable: true
+              model: nameKey
+              group: inputGroup
+              type: symbolOrNil
+              immediateAccept: false
+              acceptOnLeave: false
+              acceptOnReturn: true
+              acceptOnTab: true
+              acceptOnLostFocus: false
+              acceptChannel: acceptChannel
+              modifiedChannel: modifiedChannel
+              acceptOnPointerLeave: false
+            )
+           (LabelSpec
+              label: 'Label:'
+              name: 'labelLabel'
+              layout: (AlignmentOrigin 107 0 51 0 1 0.5)
+              activeHelpKey: basicsLabel
+              visibilityChannel: notDelayedMenu
+              translateLabel: true
+              resizeForLabel: true
+              adjust: right
+            )
+           (InputFieldSpec
+              name: 'labelField'
+              layout: (LayoutFrame 110 0 40 0 -5 1.0 62 0)
+              activeHelpKey: basicsLabel
+              visibilityChannel: notDelayedMenu
+              tabable: true
+              model: rawLabel
+              group: inputGroup
+              immediateAccept: false
+              acceptOnReturn: true
+              acceptOnTab: true
+              acceptOnLostFocus: false
+              acceptChannel: acceptChannel
+              modifiedChannel: modifiedChannel
+              acceptOnPointerLeave: false
+            )
+           (LabelSpec
+              label: 'Menu:'
+              name: 'menuLabel'
+              layout: (AlignmentOrigin 107 0 90 0 1 0.5)
+              activeHelpKey: basicsLabel
+              translateLabel: true
+              resizeForLabel: true
+              adjust: right
+            )
+           (InputFieldSpec
+              name: 'menuField'
+              layout: (LayoutFrame 110 0 79 0 -5 1.0 101 0)
+              activeHelpKey: basicsMenu
+              tabable: true
+              model: submenuChannel
+              group: inputGroup
+              type: symbolOrNil
+              immediateAccept: false
+              acceptOnReturn: true
+              acceptOnTab: true
+              acceptOnLostFocus: false
+              acceptChannel: acceptChannel
+              modifiedChannel: modifiedChannel
+              acceptOnPointerLeave: false
+            )
+           (LabelSpec
+              label: 'Argument:'
+              name: 'argumentLabel'
+              layout: (AlignmentOrigin 107 0 115 0 1 0.5)
+              activeHelpKey: basicsLabel
+              translateLabel: true
+              resizeForLabel: true
+              adjust: right
+            )
+           (InputFieldSpec
+              name: 'argumentField'
+              layout: (LayoutFrame 110 0 104 0 -5 1.0 126 0)
+              activeHelpKey: basicsMenuArgument
+              enableChannel: notDelayedMenu
+              tabable: true
+              model: argument
+              group: inputGroup
+              type: smalltalkObjectOrNil
+              immediateAccept: false
+              acceptOnReturn: true
+              acceptOnTab: true
+              acceptOnLostFocus: false
+              acceptChannel: acceptChannel
+              modifiedChannel: modifiedChannel
+              acceptOnPointerLeave: false
+            )
+           )
+
+        )
       )
 ! !