#UI_ENHANCEMENT by cg
class: TabListEditor class
changed:
#canvasSpec
#menu
#windowSpec
--- 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
)
!