# HG changeset patch # User tz # Date 886540573 -3600 # Node ID f79a0178adc14df4f5f4d1776816861f0364b8f5 # Parent 8df885a4b6929c07bcddad99e94b365683636060 better test mode diff -r 8df885a4b692 -r f79a0178adc1 TabItemEditor.st --- a/TabItemEditor.st Tue Feb 03 22:12:26 1998 +0100 +++ b/TabItemEditor.st Tue Feb 03 22:16:13 1998 +0100 @@ -82,6 +82,9 @@ #fileSave 'Saves current tab list.' +#testPreview +'Toggle on/off preview of the tab list.' + ) ! ! @@ -179,11 +182,11 @@ #'window:' #(#WindowSpec #'name:' 'Tab Basic' - #'layout:' #(#LayoutFrame 265 0 591 0 571 0 791 0) + #'layout:' #(#LayoutFrame 171 0 551 0 477 0 751 0) #'label:' 'Tab Basic' #'min:' #(#Point 10 10) #'max:' #(#Point 1280 1024) - #'bounds:' #(#Rectangle 265 591 572 792) + #'bounds:' #(#Rectangle 171 551 478 752) #'usePreferredExtent:' false ) #'component:' @@ -192,19 +195,19 @@ #( #(#LabelSpec #'name:' 'Label' - #'layout:' #(#AlignmentOrigin 95 0 34 0 1 0.5) + #'layout:' #(#AlignmentOrigin 104 0 26 0 1 0.5) #'label:' 'Label:' #'resizeForLabel:' true ) #(#InputFieldSpec #'name:' 'LabelField' - #'layout:' #(#LayoutFrame 97 0 24 0 -4 1.0 46 0) + #'layout:' #(#LayoutFrame 107 0 15 0 -5 1.0 37 0) #'activeHelpKey:' #label #'model:' #label ) #(#CheckBoxSpec #'name:' 'TranslateLabel' - #'layout:' #(#LayoutOrigin 95 0 47 0) + #'layout:' #(#LayoutOrigin 107 0 47 0) #'activeHelpKey:' #translateLabel #'model:' #translateLabel #'label:' 'Label derives from Application' @@ -225,19 +228,19 @@ ) #(#CheckBoxSpec #'name:' 'CanSelect' - #'layout:' #(#LayoutFrame 34 0 176 0 153 0 198 0) + #'layout:' #(#LayoutFrame 107 0 176 0 226 0 198 0) #'model:' #enabled #'label:' 'Can Select' ) #(#LabelSpec #'name:' 'ArgumentLabel' - #'layout:' #(#AlignmentOrigin 95 0 91 0 1 0.5) - #'label:' 'Argument' + #'layout:' #(#AlignmentOrigin 104 0 91 0 1 0.5) + #'label:' 'Argument:' #'resizeForLabel:' true ) #(#InputFieldSpec #'name:' 'ArgumentField' - #'layout:' #(#LayoutFrame 97 0 80 0 -4 1.0 102 0) + #'layout:' #(#LayoutFrame 107 0 80 0 -5 1.0 102 0) #'activeHelpKey:' #label #'model:' #editAgument ) @@ -266,11 +269,11 @@ #'window:' #(#WindowSpec #'name:' 'TabItem Editor' - #'layout:' #(#LayoutFrame 512 0 124 0 980 0 452 0) + #'layout:' #(#LayoutFrame 275 0 353 0 743 0 681 0) #'label:' 'TabItem Editor' #'min:' #(#Point 10 10) #'max:' #(#Point 1152 900) - #'bounds:' #(#Rectangle 512 124 981 453) + #'bounds:' #(#Rectangle 275 353 744 682) #'menu:' #menu #'usePreferredExtent:' false ) @@ -286,7 +289,7 @@ ) #(#VariableHorizontalPanelSpec #'name:' 'VariablePanel' - #'layout:' #(#LayoutFrame 0 0.0 36 0.0 0 1.0 -22 1.0) + #'layout:' #(#LayoutFrame 0 0.0 36 0.0 0 1.0 -26 1.0) #'component:' #(#SpecCollection #'collection:' @@ -310,7 +313,7 @@ #( #(#ViewSpec #'name:' 'TestView' - #'layout:' #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0) + #'layout:' #(#LayoutFrame 1 0.0 0 0.0 0 1.0 0 1.0) #'component:' #(#SpecCollection #'collection:' @@ -324,12 +327,12 @@ ) #(#SubCanvasSpec #'name:' 'specCanvas' - #'layout:' #(#LayoutFrame 0 0.0 0 0.0 0 1.0 -30 1.0) + #'layout:' #(#LayoutFrame 1 0.0 0 0.0 0 1.0 -30 1.0) #'specHolder:' #specChannel ) #(#HorizontalPanelViewSpec #'name:' 'modifyPanel' - #'layout:' #(#LayoutFrame 0 0.0 -30 1.0 0 1.0 0 1.0) + #'layout:' #(#LayoutFrame 1 0.0 -30 1.0 0 1.0 0 1.0) #'component:' #(#SpecCollection #'collection:' @@ -339,14 +342,14 @@ #'label:' 'Cancel' #'model:' #cancel #'enableChannel:' #modifiedChannel - #'extent:' #(#Point 168 24) + #'extent:' #(#Point 166 24) ) #(#ActionButtonSpec #'name:' 'acceptButton' #'label:' 'OK' #'model:' #accept #'enableChannel:' #modifiedChannel - #'extent:' #(#Point 169 24) + #'extent:' #(#Point 167 24) ) ) ) @@ -357,15 +360,15 @@ ) ) ) - #'borderWidth:' 1 + #'level:' -1 ) ) ) #'handles:' #(#Any 0.259875 1.0) ) - #(#UISubSpecification + #(#UISubSpecification #'name:' 'infoBarSubSpec' - #'layout:' #(#LayoutFrame 0 0.0 -22 1 0 1.0 0 1.0) + #'layout:' #(#LayoutFrame 0 0.0 -24 1 0 1.0 0 1.0) #'majorKey:' #ToolApplicationModel #'minorKey:' #windowSpecForInfoBar ) @@ -408,6 +411,7 @@ #(#MenuItem #'label:' 'New' #'value:' #doNew + #'activeHelpKey:' #fileNew ) #(#MenuItem #'label:' '-' @@ -415,6 +419,7 @@ #(#MenuItem #'label:' 'Reload' #'value:' #doReload + #'activeHelpKey:' #fileReload #'enabled:' #hasClassAndSelector ) #(#MenuItem @@ -423,6 +428,7 @@ #(#MenuItem #'label:' 'Save' #'value:' #doInstallSpec + #'activeHelpKey:' #fileSave #'enabled:' #isNotModified ) #(#MenuItem @@ -431,6 +437,7 @@ #(#MenuItem #'label:' 'Define Class And Selector...' #'value:' #doDefineClassAndSelector + #'activeHelpKey:' #fileDefineClassAndSelector ) #(#MenuItem #'label:' 'Create Aspect Method' @@ -443,6 +450,7 @@ #(#MenuItem #'label:' 'Exit' #'value:' #closeRequest + #'activeHelpKey:' #fileExit #'enabled:' #isNotModified ) ) nil @@ -462,6 +470,7 @@ #(#MenuItem #'label:' 'Tab Item' #'value:' #doCreateTab + #'activeHelpKey:' #addTabItem #'labelImage:' #(#ResourceRetriever nil #newTabItemIcon 'Tab Item') ) ) nil @@ -469,6 +478,22 @@ ) ) #(#MenuItem + #'label:' 'Test' + #'activeHelpKey:' #testPreview + #'submenu:' + #(#Menu + + #( + #(#MenuItem + #'label:' 'Preview' + #'enabled:' #canShowTestMode + #'indication:' #testMode + ) + ) nil + nil + ) + ) + #(#MenuItem #'label:' 'History' #'submenuChannel:' #menuHistory ) @@ -503,16 +528,19 @@ #(#MenuItem #'label:' 'Cut' #'value:' #doCutTab + #'activeHelpKey:' #editCut #'enabled:' #isColumnSelected ) #(#MenuItem #'label:' 'Copy' #'value:' #doCopyTab + #'activeHelpKey:' #editCopy #'enabled:' #isColumnSelected ) #(#MenuItem #'label:' 'Paste' #'value:' #doPasteTab + #'activeHelpKey:' #editPaste #'enabled:' #valueOfHavingClipboard ) #(#MenuItem @@ -521,6 +549,7 @@ #(#MenuItem #'label:' 'Move Up' #'value:' #'doMoveTabUpOrDown:' + #'activeHelpKey:' #editMoveUp #'enabled:' #canMoveTabUpOrDown #'argument:' #up #'labelImage:' #(#ResourceRetriever #ToolApplicationModel #upIcon 'Move Up') @@ -528,6 +557,7 @@ #(#MenuItem #'label:' 'Move Down' #'value:' #'doMoveTabUpOrDown:' + #'activeHelpKey:' #editMoveDown #'enabled:' #canMoveTabUpOrDown #'argument:' #down #'labelImage:' #(#ResourceRetriever #ToolApplicationModel #downIcon 'Move Down') @@ -556,24 +586,17 @@ #( #(#MenuItem - #'label:' 'Test' - #'isButton:' true - #'value:' #doTest - #'labelImage:' #(#ResourceRetriever #UIPainter #startIcon) - ) - #(#MenuItem - #'label:' '' - ) - #(#MenuItem #'label:' 'New' #'isButton:' true #'value:' #doNew + #'activeHelpKey:' #fileNew #'labelImage:' #(#ResourceRetriever nil #newIcon) ) #(#MenuItem #'label:' 'Save' #'isButton:' true #'value:' #doInstallSpec + #'activeHelpKey:' #fileSave #'enabled:' #isNotModified #'labelImage:' #(#ResourceRetriever nil #saveIcon) ) @@ -584,6 +607,7 @@ #'label:' 'Add Tab Item' #'isButton:' true #'value:' #doCreateTab + #'activeHelpKey:' #addTabItem #'enabled:' #isNotModified #'labelImage:' #(#ResourceRetriever nil #newTabItemIcon) ) @@ -594,6 +618,7 @@ #'label:' 'Move Tab Up' #'isButton:' true #'value:' #'doMoveTabUpOrDown:' + #'activeHelpKey:' #editMoveUp #'enabled:' #canMoveTabUpOrDown #'argument:' #up #'labelImage:' #(#ResourceRetriever nil #upIcon) @@ -602,10 +627,22 @@ #'label:' 'Move Tab Down' #'isButton:' true #'value:' #'doMoveTabUpOrDown:' + #'activeHelpKey:' #editMoveDown #'enabled:' #canMoveTabUpOrDown #'argument:' #down #'labelImage:' #(#ResourceRetriever nil #downIcon) ) + #(#MenuItem + #'label:' '' + ) + #(#MenuItem + #'label:' 'Preview' + #'isButton:' true + #'activeHelpKey:' #testPreview + #'enabled:' #canShowTestMode + #'labelImage:' #(#ResourceRetriever nil #startIcon) + #'indication:' #testMode + ) ) nil nil ) @@ -725,6 +762,17 @@ ! +canShowTestMode + + |holder| + + (holder := builder bindingAt:#canShowTestMode) isNil ifTrue:[ + builder aspectAt:#canShowTestMode put:(holder := false asValue). + ]. + ^ holder + +! + hasClassAndSelector |holder| @@ -790,6 +838,18 @@ builder aspectAt:#specChannel put:(holder := ValueHolder new). ]. ^ holder +! + +testMode + + |holder| + + (holder := builder bindingAt:#testMode) isNil ifTrue:[ + builder aspectAt:#testMode put:(holder := false asValue). + holder addDependent: self + ]. + ^ holder + ! ! !TabItemEditor methodsFor:'building'! @@ -859,7 +919,24 @@ " self modified:true. + someObject = self testMode + ifTrue: + [ + someObject value + ifTrue: [self doTest] + ifFalse:[testView lower. self selectionHolder value:1]. + self valueOfInfoLabel value: self defaultInfoLabel. + ] +! ! + +!TabItemEditor methodsFor:'help'! + +defaultInfoLabel + + ^self testMode value + ifTrue: ['Test mode'] + ifFalse: [''] ! ! !TabItemEditor methodsFor:'selection'! @@ -871,6 +948,8 @@ selectedIndex:anIndex |s oldSel| + self listOfLabels notEmpty ifTrue: [self canShowTestMode value: true]. + oldSel := selectedIndex. selectedIndex := anIndex ? 0. @@ -886,8 +965,12 @@ self cancel. testView notNil ifTrue:[ - testView lower - ] + testView lower. + ]. + + + "self testMode value not & anIndex notNil ifTrue: [self testMode value: false]. + " ! ! !TabItemEditor methodsFor:'startup / release'! @@ -970,8 +1053,9 @@ ! doCreateTab + |tab| - + self testMode value: false. tab := TabItem label:'Tab Item ', (listOfTabs size + 1) printString. listOfTabs add:tab afterIndex:selectedIndex. @@ -980,8 +1064,8 @@ selectedIndex == 0 ifTrue:[ self selectionHolder value:1 - ] ifFalse:[ - self selectionHolder value:listOfTabs size. + ] ifFalse:[ + self selectionHolder value:selectedIndex + 1. self cancel. ] ! @@ -1002,7 +1086,8 @@ index > list size ifTrue:[ index := index - 1 ]. - self selectionHolder value:index + self selectionHolder value:index. + self listOfLabels isEmpty ifTrue: [self canShowTestMode value: false]. ] ! @@ -1193,6 +1278,8 @@ hasChanged := true. rebuildMode := false. + + self canShowTestMode value: false ! doPasteTab @@ -1207,6 +1294,9 @@ selectedIndex == 0 ifTrue:[ self selectionHolder value:1 + ] ifFalse:[ + self selectionHolder value:selectedIndex + 1. + self cancel. ] ! @@ -1237,6 +1327,7 @@ testView raise. + ! ! !TabItemEditor class methodsFor:'documentation'!