# HG changeset patch # User Claus Gittinger # Date 907432098 -7200 # Node ID b153d142673128a58dc057e41ebb1c34d7db29cd # Parent 327f93d57c7b78abc9969752c1aaf0def18129d9 checkin from browser diff -r 327f93d57c7b -r b153d1426731 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