--- 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