checkin from browser
authorClaus Gittinger <cg@exept.de>
Sat, 03 Oct 1998 18:28:18 +0200
changeset 1009 b153d1426731
parent 1008 327f93d57c7b
child 1010 d744cc925443
checkin from browser
DataSetBuilder.st
--- a/DataSetBuilder.st	Thu Oct 01 12:46:03 1998 +0200
+++ b/DataSetBuilder.st	Sat Oct 03 18:28:18 1998 +0200
@@ -100,6 +100,7 @@
         doubleClickedSelector
         rowSeparatorSelector
         selectSelector
+        showComboFieldSelector
         printSelector
         readSelector
         writeSelector
@@ -252,6 +253,9 @@
 #selectionLabelSelectorArgument
 'An argument passed to the label selection selector.'
 
+#showComboFieldSelector
+'Selector which returns true if the editor on the ComboBox/List has an input field.'
+
 #showSelectionHighLighted
 'Show selected cell highligthened (change fg/bg color).'
 
@@ -1115,11 +1119,11 @@
           #window: 
            #(#WindowSpec
               #name: 'DataSet Basic'
-              #layout: #(#LayoutFrame 216 0 173 0 511 0 478 0)
+              #layout: #(#LayoutFrame 14 0 192 0 309 0 497 0)
               #label: 'DataSet Basic'
               #min: #(#Point 10 10)
               #max: #(#Point 1280 1024)
-              #bounds: #(#Rectangle 216 173 512 479)
+              #bounds: #(#Rectangle 14 192 310 498)
               #usePreferredExtent: false
           )
           #component: 
@@ -1212,37 +1216,53 @@
                 )
                  #(#FramedBoxSpec
                     #name: 'framedBox1'
-                    #layout: #(#LayoutFrame 1 0.0 191 0 1 1.0 249 0)
+                    #layout: #(#LayoutFrame 1 0.0 191 0 1 1.0 279 0)
                     #component: 
                      #(#SpecCollection
                         #collection: 
                          #(
                            #(#LabelSpec
-                              #name: 'label2'
+                              #name: 'ChoicesLabel'
                               #layout: #(#AlignmentOrigin 94 0 15 0 1 0.5)
                               #activeHelpKey: #valuesChoiceSelector
-                              #label: 'Selector:'
+                              #label: 'Choices:'
                               #adjust: #right
                               #resizeForLabel: true
                           )
                            #(#InputFieldSpec
-                              #name: 'inputField2'
+                              #name: 'ChoicesField'
                               #layout: #(#LayoutFrame 97 0 4 0 2 1.0 26 0)
                               #activeHelpKey: #valuesChoiceSelector
                               #tabable: true
                               #model: #choices
                               #type: #symbolOrNil
+                              #acceptOnLeave: false
+                          )
+                           #(#LabelSpec
+                              #name: 'ShowInputFieldLabel'
+                              #layout: #(#AlignmentOrigin 94 0 41 0 1 0.5)
+                              #activeHelpKey: #showComboFieldSelector
+                              #label: 'Editable:'
+                              #adjust: #right
+                              #resizeForLabel: true
+                          )
+                           #(#InputFieldSpec
+                              #name: 'ShowInputFieldField'
+                              #layout: #(#LayoutFrame 97 0 30 0 2 1.0 52 0)
+                              #activeHelpKey: #showComboFieldSelector
+                              #tabable: true
+                              #model: #showComboFieldSelector
+                              #type: #symbolOrNil
+                              #acceptOnLeave: false
                           )
                         )
                     )
-                    #label: 'List Choice:'
+                    #label: 'Combo List/Box Selectors:'
                     #labelPosition: #topLeft
                 )
               )
           )
       )
-
-    "Modified: / 13.8.1998 / 19:55:07 / cg"
 !
 
 windowSpec
@@ -2040,7 +2060,7 @@
 generateChoicesIn:aClass
     "generate code for #choices"
 
-    |sel catg code|
+    |sel catg code edt|
 
     catg := 'accessing menu' asSymbol.
     code :=   '\'
@@ -2051,14 +2071,14 @@
             , '    ^ #( foo bar baz )'
             .
 
-    columns do:
-    [:aColumn|
-        (aColumn canSelect
-        and:[aColumn rendererType ~~ #rowSelector
-        and:[(sel := aColumn choices) notNil
-        and:[(aClass implements:sel) not]]]) 
-        ifTrue:
-        [
+    columns do:[:aColumn|
+        edt := aColumn editorType.
+
+        (      aColumn canSelect
+          and:[(sel := aColumn choices) notNil
+          and:[(edt == #ComboBox or:[edt == #ComboList])
+          and:[(aClass implements:sel) not]]]
+        ) ifTrue:[
             self compile:(sel asString, code) forClass:aClass inCategory:catg
         ]
     ]
@@ -2274,6 +2294,37 @@
     ]
 !
 
+generateShowComboFieldSelectorIn:aClass
+    "generate code for #showComboFieldSelector
+    "
+    |sel catg code bCode edt state|
+
+    catg := 'accessing menu' asSymbol.
+    code :=   '\'
+            , '    "automatically generated by DataSetBuilder ..."\'
+            , '\'
+            , '    "open an editField on a combo list or box"\'
+            , '\'
+            .
+
+    columns do:[:aColumn|
+        edt := aColumn editorType.
+
+        (      aColumn canSelect
+          and:[(sel := aColumn showComboFieldSelector) notNil
+          and:[(edt == #ComboBox or:[edt == #ComboList])
+          and:[(aClass implements:sel) not]]]
+        ) ifTrue:[
+            state := edt == #ComboBoxView.
+
+            bCode := sel asString, code, '    ^ ', state printString.
+            self compile:bCode forClass:aClass inCategory:catg
+        ]
+    ]
+
+
+!
+
 generateWriteSelectorIn:aClass
     "generate code for #writeSelector"
 
@@ -2365,6 +2416,7 @@
                     foregroundSelector:nil;
                     rowSeparatorSelector:nil;
                     selectSelector: nil;
+                    showComboFieldSelector: nil;
                     doubleClickedSelector: nil;
                     printSelector: nil;
                     menu: nil;
@@ -2498,7 +2550,7 @@
 
     type == #rowSelector ifTrue:[
         #(label width minWidth editorType choices readSelector writeSelector printSelector
-          formatString type size height canSelect selectSelector
+          formatString type size height canSelect selectSelector showComboFieldSelector
          ) do:[:aKey|
             (aspects at:aKey) value:nil
         ]
@@ -2710,6 +2762,8 @@
     self generateWriteSelectorIn:cls.
     self generateDoubleClickSelectorIn:cls.
     self generateRowSeparatorSelectorIn:cls.
+    self generateShowComboFieldSelectorIn:cls.
+
 !
 
 doMoveColumn:upOrDown