better test mode
authortz
Tue, 03 Feb 1998 22:16:13 +0100
changeset 570 f79a0178adc1
parent 569 8df885a4b692
child 571 1e362121fe32
better test mode
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'!