diff -r 9057ea063eca -r 1a24037cd490 DataSetBuilder.st --- a/DataSetBuilder.st Fri Nov 07 14:30:55 1997 +0100 +++ b/DataSetBuilder.st Wed Nov 12 17:26:53 1997 +0100 @@ -538,7 +538,7 @@ #( #(#FramedBoxSpec #'name:' 'valuesBox' - #'layout:' #(#LayoutFrame 0 0.0 20 0 0 1.0 101 0) + #'layout:' #(#LayoutFrame 0 0.0 20 0 0 1.0 125 0) #'component:' #(#SpecCollection #'collection:' @@ -557,20 +557,34 @@ #'model:' #readSelector #'type:' #symbolOrNil ) + #(#InputFieldSpec + #'name:' 'writeSelector' + #'layout:' #(#LayoutFrame 86 0 38 0 17 1.0 58 0) + #'activeHelpKey:' #writeSelector + #'model:' #writeSelector + #'type:' #symbolOrNil + ) #(#LabelSpec #'name:' 'printLabel' - #'layout:' #(#AlignmentOrigin 84 0 51 0 1 0.5) + #'layout:' #(#AlignmentOrigin 84 0 78 0 1 0.5) #'label:' 'Print:' #'adjust:' #right #'resizeForLabel:' true ) #(#InputFieldSpec #'name:' 'printSelector' - #'layout:' #(#LayoutFrame 86 0 42 0 17 1.0 62 0) + #'layout:' #(#LayoutFrame 86 0 69 0 17 1.0 89 0) #'activeHelpKey:' #printSelector #'model:' #printSelector #'type:' #symbolOrNil ) + #(#LabelSpec + #'name:' 'writeLabel' + #'layout:' #(#AlignmentOrigin 84 0 48 0 1 0.5) + #'label:' 'Write:' + #'adjust:' #right + #'resizeForLabel:' true + ) ) ) #'label:' 'Values:' @@ -578,7 +592,7 @@ ) #(#FramedBoxSpec #'name:' 'menusBox' - #'layout:' #(#LayoutFrame 0 0.0 115 0 0 1.0 195 0) + #'layout:' #(#LayoutFrame 0 0.0 137 0 0 1.0 217 0) #'component:' #(#SpecCollection #'collection:' @@ -1357,7 +1371,7 @@ type := (aspects at:#rendererType) value. type == #rowSelector ifTrue:[ - #( label width minWidth editorType choices readSelector printSelector + #( label width minWidth editorType choices readSelector writeSelector printSelector formatString type size height canSelect selectSelector ) do:[:aKey| (aspects at:aKey) value:nil ]. ]. @@ -1624,7 +1638,11 @@ and:[(aClass implements:sel) not]] ) ifTrue:[ (aColumn printSelector isNil or:[aColumn canSelect]) ifTrue:[ - bCode := sel asString, code. + sel numArgs == 0 ifTrue:[ + bCode := sel asString, code + ] ifFalse:[ + bCode := sel asString, 'anIndex\', code + ]. aColumn rendererType == #CheckToggle ifFalse:[ bCode := bCode, ' ^ nil' ] ifTrue:[ @@ -1665,7 +1683,7 @@ generateWriteSelectorIn:aClass "generate code for #writeSelector " - |sel catg code| + |sel catg code bCode sz| catg := 'accessing writeSelector' asSymbol. code := 'aValue\' @@ -1675,10 +1693,18 @@ . columns do:[:aColumn| - ( (sel := aColumn writeSelector) notNil - and:[(aClass implements:sel) not] + ( (sel := aColumn writeSelector) notNil + and:[(aColumn canSelect) + and:[(aClass implements:sel) not]] ) ifTrue:[ - self compile:(sel asString, code) forClass:aClass inCategory:catg + sel numArgs == 1 ifTrue:[ + bCode := sel asString + ] ifFalse:[ + sz := sel indexOf:$:. + bCode := sel copyTo:sz. + bCode := bCode, 'anIndex ', (sel copyFrom:(sz + 1)). + ]. + self compile:(bCode, code) forClass:aClass inCategory:catg ] ] ! ! @@ -1714,6 +1740,7 @@ selectSelector printSelector readSelector + writeSelector rendererType showColSeparator showRowSeparator