--- a/DataSetBuilder.st Sun Aug 11 11:59:20 2013 +0200
+++ b/DataSetBuilder.st Thu Aug 22 09:59:07 2013 +0200
@@ -2668,6 +2668,20 @@
itemValue: makeSelectedCellsSelectable
translateLabel: true
)
+ (MenuItem
+ label: '-'
+ )
+
+ (MenuItem
+ label: 'Make All Cells Unselectable'
+ itemValue: makeAllCellsUnselectable
+ translateLabel: true
+ )
+ (MenuItem
+ label: 'Make All Cells Selectable'
+ itemValue: makeAllCellsSelectable
+ translateLabel: true
+ )
)
nil
nil
@@ -3502,454 +3516,7 @@
"/ aDataSetColumnSpec editorType: #InputField.
! !
-!DataSetBuilder methodsFor:'operations'!
-
-addCellSeparators
- self addRowSeparators.
- self addColumnSeparators.
-!
-
-addColumnSeparators
- self selectedColumnsDo:[:eachColDescr |
- eachColDescr showColSeparator:true
- ].
- self updateAfterOperation.
-!
-
-addLabelColumnSeparators
- self selectedColumnsDo:[:eachColDescr |
- eachColDescr labelButtonType:#Button
- ].
- self updateAfterOperation.
-!
-
-addLabelSeparators
- self selectedColumnsDo:[:eachColDescr |
- eachColDescr labelButtonType:#Button
- ].
- self updateAfterOperation.
-!
-
-addRowSeparators
- self selectedColumnsDo:[:eachColDescr |
- eachColDescr showRowSeparator:true
- ].
- self updateAfterOperation.
-!
-
-alignColumns:how
- self selectedColumnsDo:[:eachColDescr |
- eachColDescr columnAlignment:how
- ].
- self updateAfterOperation.
-!
-
-alignColumnsCentered
- self alignColumns:#centered
-!
-
-alignColumnsLeft
- self alignColumns:#left
-!
-
-alignColumnsRight
- self alignColumns:#right
-!
-
-alignLabels:how
- self selectedColumnsDo:[:eachColDescr |
- eachColDescr labelAlignment:how
- ].
- self updateAfterOperation.
-!
-
-alignLabelsCentered
- self alignLabels:#centered
-!
-
-alignLabelsLeft
- self alignLabels:#left
-!
-
-alignLabelsRight
- self alignLabels:#right
-!
-
-makeColumnsSelectable
- self makeColumnsSelectable:true
-!
-
-makeColumnsSelectable:aBoolean
- self selectedColumnsDo:[:eachColDescr |
- eachColDescr canSelect:aBoolean
- ].
- self updateAfterOperation.
-!
-
-makeColumnsUnselectable
- self makeColumnsSelectable:false
-!
-
-makeSelectedCellsSelectable
- self selectedColumnsDo:[:eachColDescr |
- eachColDescr canSelect:true
- ].
- self updateAfterOperation.
-!
-
-makeSelectedCellsUnselectable
- self selectedColumnsDo:[:eachColDescr |
- eachColDescr canSelect:false
- ].
- self updateAfterOperation.
-!
-
-removeCellSeparators
- self removeRowSeparators.
- self removeColumnSeparators.
-!
-
-removeColumnSeparators
- self selectedColumnsDo:[:eachColDescr |
- eachColDescr showColSeparator:false
- ].
- self updateAfterOperation.
-!
-
-removeLabelColumnSeparators
- self selectedColumnsDo:[:eachColDescr |
- eachColDescr labelButtonType:#Group
- ].
- self updateAfterOperation.
-!
-
-removeLabelSeparators
- self selectedColumnsDo:[:eachColDescr |
- eachColDescr labelButtonType:#None
- ].
- self updateAfterOperation.
-!
-
-removeRowSeparators
- self selectedColumnsDo:[:eachColDescr |
- eachColDescr showRowSeparator:false
- ].
- self updateAfterOperation.
-!
-
-selectedColumnsDo:aBlock
- selectedColumnIndex isCollection ifTrue:[
- selectedColumnIndex do:[:idx | aBlock value:(columns at:idx)].
- ] ifFalse:[
- selectedColumnIndex ~~ 0 ifTrue:[
- selectedColumnIndex notNil ifTrue:[
- aBlock value:(columns at:selectedColumnIndex)
- ]
- ].
- ].
-!
-
-setCellColorSelectors
- |fgSelector bgSelector|
-
- fgSelector := Dialog request:'FG-Selector for all selected Columns (accept empty for none):'.
- fgSelector isNil ifTrue:[^ self].
-
- bgSelector := Dialog request:'BG-Selector for all selected Columns (accept empty for none):'.
- bgSelector isNil ifTrue:[^ self].
-
- self selectedColumnsDo:[:eachColDescr |
- bgSelector notEmpty ifTrue:[
- eachColDescr backgroundSelector:bgSelector
- ].
- fgSelector notEmpty ifTrue:[
- eachColDescr foregroundSelector:fgSelector
- ].
- ].
- self updateAfterOperation.
-!
-
-setSelectedCellColorSelectors
- |fgSelector bgSelector|
-
- fgSelector := Dialog request:'Selected FG-Selector for all selected Columns (accept empty for none):'.
- fgSelector isNil ifTrue:[^ self].
-
- bgSelector := Dialog request:'Selected BG-Selector for all selected Columns (accept empty for none):'.
- bgSelector isNil ifTrue:[^ self].
-
- self selectedColumnsDo:[:eachColDescr |
- bgSelector notEmpty ifTrue:[
- eachColDescr selectedBackgroundSelector:bgSelector
- ].
- fgSelector notEmpty ifTrue:[
- eachColDescr selectedForegroundSelector:fgSelector
- ].
- ].
- self updateAfterOperation.
-!
-
-updateAfterOperation
- self updateColumnView.
- self updateInputFields.
- self setModified.
-! !
-
-!DataSetBuilder methodsFor:'private'!
-
-labelFromColumn:aColumn
- |label|
-
- aColumn rendererType == #rowSelector ifTrue:[
- ^ 'Row Selector'
- ].
- label := aColumn label.
- label isNil ifTrue:[^ nil].
-
- label isString ifTrue:[^ label].
-
- label size > 0 ifTrue:[
- label := label at:1.
- ].
- ^ label printString
-!
-
-labelInPreviewPressed:anIndex
- (self componentAt:#labelAndColumns) selection:anIndex
-!
-
-updateColumnView
- "updates the column view from column descriptions"
-
- |size previewColumns columnList|
-
- columnView notNil ifTrue:[
- columnList := List new.
- previewColumns := OrderedCollection new.
-
- (size := columns size) ~~ 0 ifTrue:[
- columns do:[:aCol|
- previewColumns add:(aCol copy)
- ].
- previewColumns keysAndValuesDo:[:anIndex :column|
- column
- readSelector: #at:;
- writeSelector: #at:put:;
- backgroundSelector:nil;
- foregroundSelector:nil;
- rowSeparatorSelector:nil;
- selectSelector: nil;
- showComboFieldSelector: nil;
- selectSelector: nil;
- doubleClickedSelector: nil;
- printSelector: nil;
- visibilitySelector: nil;
- menu: nil;
- labelActionSelector:#labelInPreviewPressed:;
- labelActionArgument:anIndex;
- choices:#choices;
- sortSelector: nil;
- isSortable: false
- ].
- #(' 1' ' 2' ' x') do:[:suffix|
- |oneRow|
-
- oneRow := Row new:size.
- 1 to:size do:[:i | oneRow at: i put: ('Cell%1-%2' bindWith:suffix with:i)].
- columnList add: oneRow.
- ]
- ].
-
- columnView list: #().
- columnView columnDescriptors: previewColumns.
- columnView list: columnList.
- ].
-
- "Modified: / 27.10.1998 / 14:41:16 / cg"
-!
-
-updateInputFields
- "reloads item value into input fields"
-
- |column notifyValue|
-
- (column := self selectedColumn) isNil ifTrue:[
- self tabModel value:0.
- ] ifFalse:[
- notifyValue := nil. "/ old: '' -> problems with Toggles (asBoolean)
-
- aspects do:[:anAspect| anAspect value:notifyValue ].
- aspects keysAndValuesDo:[:aKey :aModel |
- aModel value:(column perform:aKey) withoutNotifying: self
- ].
-
-"/ REPALCE nil by empty string for specific inputFields without an adapter
- #( #labelActionArgument #formatString #id ) do:[:aKey| |model|
- model := aspects at:aKey.
- model value isNil ifTrue:[model value:notifyValue withoutNotifying: self]
- ].
-
- tabSelection == 0 ifTrue:[self tabModel value:1].
- ].
-! !
-
-!DataSetBuilder methodsFor:'selection'!
-
-selectedColumn
- "returns selected column or nil"
-
- selectedColumnIndex isCollection ifTrue:[
- ^ selectedColumnIndex size == 1
- ifTrue:[ columns at:selectedColumnIndex first ]
- ifFalse:[ nil ]
- ].
-
- ^selectedColumnIndex == 0
- ifFalse:[columns at:selectedColumnIndex ifAbsent: nil]
- ifTrue: [nil]
-!
-
-selectedColumnIndex
- "returns selected column index or 0"
-
- ^selectedColumnIndex
-!
-
-selectedColumnIndex:something
- "changes selected column and updates specifications"
-
- something == selectedColumnIndex ifFalse:[
- selectedColumnIndex := something ? 0.
- "/ self assert:( selectedColumnIndex <= columns size ).
- "/ self assert:( selectedColumnIndex <= self seqList size ).
- self isColumnSelected value: true
- ].
-!
-
-selectedColumnIndices
- "returns selected column indices or #()"
-
- selectedColumnIndex == 0 ifTrue:[ ^ #() ].
- selectedColumnIndex isNumber ifTrue:[ ^ Array with:selectedColumnIndex ].
- ^selectedColumnIndex
-!
-
-selectedColumns
- selectedColumnIndex isCollection ifTrue:[
- ^ selectedColumnIndex collect:[:idx | columns at:idx]
- ].
-
- ^ selectedColumnIndex == 0
- ifFalse:[ Array with:(columns at:selectedColumnIndex) ]
- ifTrue: [ #() ]
-!
-
-singleSelectedColumnIndex
- selectedColumnIndex isCollection ifTrue:[
- ^ selectedColumnIndex size == 1
- ifTrue:[ selectedColumnIndex first ]
- ifFalse:[ 0 ]
- ].
-
- ^ selectedColumnIndex
-!
-
-tabSelection:something
- "changes selected tab and set corresponding specification"
-
- |view spec|
-
- something == tabSelection ifTrue:[^self].
-
- (tabSelection := something) isNil ifTrue:[
- tabSelection == 0 ifTrue:[^ self].
- tabSelection := 0.
- ].
-
- self selectedColumn isNil ifTrue:[
- tabSelection ~~ 0 ifTrue:[
- self tabModel value:0
- ] ifFalse:[
- self canvasHolder value:nil
- ].
- ^ self
- ].
-
- tabSelection == 0 ifTrue:[
- ^ self tabModel value:1.
- ].
-
- (view := listOfSpecViews at:tabSelection) isNil ifTrue:[
- view := SimpleView new.
- spec := (self class slices at:tabSelection) last.
-
-"/ view client:nil spec:(self class interfaceSpecFor:spec) builder:(self builder).
- view client:self spec:spec builder:(self builder).
- listOfSpecViews at:tabSelection put:view.
- ].
- self canvasHolder value:view
-! !
-
-!DataSetBuilder methodsFor:'startup & release'!
-
-commonPostBuild
- columnView := self componentAt:#columnView.
-
- columns notEmpty ifTrue: [
- self tabModel value: 1.
- self selectedColumnModel value:nil; value:1. "/ toggle to force change
- self updateInputFields.
- self updateInfoLabel.
- self updateHistory
- ].
-
- (self componentAt: #labelAndColumns)
- selectConditionBlock: [:i|self askForItemModification];
- action: [:i|self cancel];
- selection: 1.
-
- "/ using masters infoHolder ?
- (builder aspectAt:#useAlienInfoLabelHolder) == true ifTrue:[
- (builder componentAt:#mainPanel) layout bottomOffset:0.
- (builder componentAt:#infoBarSubSpec) beInvisible
- ]
-!
-
-openModal
- "sets the modalOpened flag, so later,
- there is no need to ask for saving into a class"
-
- modalOpened := true.
- super openModal
-!
-
-openModalOnResourceSpec: aListSpec
- "sets the modalOpened flag, so later,
- there is no need to ask for saving into a class"
-
- modalOpened := true.
- super openModalOnResourceSpec: aListSpec
-
-
-!
-
-postBuildListOfItemsView:aView
- listOfItemsView := aView
-!
-
-postBuildSpecView:aView
- listOfItemsView := aView
-!
-
-postOpenWith:aBuilder
- "reset keyboardProcessor for menuBar"
-
- super postOpenWith:aBuilder.
- aBuilder keyboardProcessor menuBar:nil.
- self windowGroup addPreEventHook:self.
-! !
-
-!DataSetBuilder methodsFor:'user actions'!
+!DataSetBuilder methodsFor:'menu & user actions'!
accept
"accept changes made"
@@ -4389,6 +3956,467 @@
self openHTMLDocument:'tools/uipainter/DataSetBuilder.html'.
! !
+!DataSetBuilder methodsFor:'menu operations'!
+
+addCellSeparators
+ self addRowSeparators.
+ self addColumnSeparators.
+!
+
+addColumnSeparators
+ self selectedColumnsDo:[:eachColDescr |
+ eachColDescr showColSeparator:true
+ ].
+ self updateAfterOperation.
+!
+
+addLabelColumnSeparators
+ self selectedColumnsDo:[:eachColDescr |
+ eachColDescr labelButtonType:#Button
+ ].
+ self updateAfterOperation.
+!
+
+addLabelSeparators
+ self selectedColumnsDo:[:eachColDescr |
+ eachColDescr labelButtonType:#Button
+ ].
+ self updateAfterOperation.
+!
+
+addRowSeparators
+ self selectedColumnsDo:[:eachColDescr |
+ eachColDescr showRowSeparator:true
+ ].
+ self updateAfterOperation.
+!
+
+alignColumns:how
+ self selectedColumnsDo:[:eachColDescr |
+ eachColDescr columnAlignment:how
+ ].
+ self updateAfterOperation.
+!
+
+alignColumnsCentered
+ self alignColumns:#centered
+!
+
+alignColumnsLeft
+ self alignColumns:#left
+!
+
+alignColumnsRight
+ self alignColumns:#right
+!
+
+alignLabels:how
+ self selectedColumnsDo:[:eachColDescr |
+ eachColDescr labelAlignment:how
+ ].
+ self updateAfterOperation.
+!
+
+alignLabelsCentered
+ self alignLabels:#centered
+!
+
+alignLabelsLeft
+ self alignLabels:#left
+!
+
+alignLabelsRight
+ self alignLabels:#right
+!
+
+makeAllCellsSelectable
+ columns do:[:eachColDescr |
+ eachColDescr canSelect:true
+ ].
+ self updateAfterOperation.
+!
+
+makeAllCellsUnselectable
+ columns do:[:eachColDescr |
+ eachColDescr canSelect:false
+ ].
+ self updateAfterOperation.
+!
+
+makeColumnsSelectable
+ self makeColumnsSelectable:true
+!
+
+makeColumnsSelectable:aBoolean
+ self selectedColumnsDo:[:eachColDescr |
+ eachColDescr canSelect:aBoolean
+ ].
+ self updateAfterOperation.
+!
+
+makeColumnsUnselectable
+ self makeColumnsSelectable:false
+!
+
+makeSelectedCellsSelectable
+ self selectedColumnsDo:[:eachColDescr |
+ eachColDescr canSelect:true
+ ].
+ self updateAfterOperation.
+!
+
+makeSelectedCellsUnselectable
+ self selectedColumnsDo:[:eachColDescr |
+ eachColDescr canSelect:false
+ ].
+ self updateAfterOperation.
+!
+
+removeCellSeparators
+ self removeRowSeparators.
+ self removeColumnSeparators.
+!
+
+removeColumnSeparators
+ self selectedColumnsDo:[:eachColDescr |
+ eachColDescr showColSeparator:false
+ ].
+ self updateAfterOperation.
+!
+
+removeLabelColumnSeparators
+ self selectedColumnsDo:[:eachColDescr |
+ eachColDescr labelButtonType:#Group
+ ].
+ self updateAfterOperation.
+!
+
+removeLabelSeparators
+ self selectedColumnsDo:[:eachColDescr |
+ eachColDescr labelButtonType:#None
+ ].
+ self updateAfterOperation.
+!
+
+removeRowSeparators
+ self selectedColumnsDo:[:eachColDescr |
+ eachColDescr showRowSeparator:false
+ ].
+ self updateAfterOperation.
+!
+
+selectedColumnsDo:aBlock
+ selectedColumnIndex isCollection ifTrue:[
+ selectedColumnIndex do:[:idx | aBlock value:(columns at:idx)].
+ ] ifFalse:[
+ selectedColumnIndex ~~ 0 ifTrue:[
+ selectedColumnIndex notNil ifTrue:[
+ aBlock value:(columns at:selectedColumnIndex)
+ ]
+ ].
+ ].
+!
+
+setCellColorSelectors
+ |fgSelector bgSelector|
+
+ fgSelector := Dialog request:'FG-Selector for all selected Columns (accept empty for none):'.
+ fgSelector isNil ifTrue:[^ self].
+
+ bgSelector := Dialog request:'BG-Selector for all selected Columns (accept empty for none):'.
+ bgSelector isNil ifTrue:[^ self].
+
+ self selectedColumnsDo:[:eachColDescr |
+ bgSelector notEmpty ifTrue:[
+ eachColDescr backgroundSelector:bgSelector
+ ].
+ fgSelector notEmpty ifTrue:[
+ eachColDescr foregroundSelector:fgSelector
+ ].
+ ].
+ self updateAfterOperation.
+!
+
+setSelectedCellColorSelectors
+ |fgSelector bgSelector|
+
+ fgSelector := Dialog request:'Selected FG-Selector for all selected Columns (accept empty for none):'.
+ fgSelector isNil ifTrue:[^ self].
+
+ bgSelector := Dialog request:'Selected BG-Selector for all selected Columns (accept empty for none):'.
+ bgSelector isNil ifTrue:[^ self].
+
+ self selectedColumnsDo:[:eachColDescr |
+ bgSelector notEmpty ifTrue:[
+ eachColDescr selectedBackgroundSelector:bgSelector
+ ].
+ fgSelector notEmpty ifTrue:[
+ eachColDescr selectedForegroundSelector:fgSelector
+ ].
+ ].
+ self updateAfterOperation.
+!
+
+updateAfterOperation
+ self updateColumnView.
+ self updateInputFields.
+ self setModified.
+! !
+
+!DataSetBuilder methodsFor:'private'!
+
+labelFromColumn:aColumn
+ |label|
+
+ aColumn rendererType == #rowSelector ifTrue:[
+ ^ 'Row Selector'
+ ].
+ label := aColumn label.
+ label isNil ifTrue:[^ nil].
+
+ label isString ifTrue:[^ label].
+
+ label size > 0 ifTrue:[
+ label := label at:1.
+ ].
+ ^ label printString
+!
+
+labelInPreviewPressed:anIndex
+ (self componentAt:#labelAndColumns) selection:anIndex
+!
+
+updateColumnView
+ "updates the column view from column descriptions"
+
+ |size previewColumns columnList|
+
+ columnView notNil ifTrue:[
+ columnList := List new.
+ previewColumns := OrderedCollection new.
+
+ (size := columns size) ~~ 0 ifTrue:[
+ columns do:[:aCol|
+ previewColumns add:(aCol copy)
+ ].
+ previewColumns keysAndValuesDo:[:anIndex :column|
+ column
+ readSelector: #at:;
+ writeSelector: #at:put:;
+ backgroundSelector:nil;
+ foregroundSelector:nil;
+ rowSeparatorSelector:nil;
+ selectSelector: nil;
+ showComboFieldSelector: nil;
+ selectSelector: nil;
+ doubleClickedSelector: nil;
+ printSelector: nil;
+ visibilitySelector: nil;
+ menu: nil;
+ labelActionSelector:#labelInPreviewPressed:;
+ labelActionArgument:anIndex;
+ choices:#choices;
+ sortSelector: nil;
+ isSortable: false
+ ].
+ #(' 1' ' 2' ' x') do:[:suffix|
+ |oneRow|
+
+ oneRow := Row new:size.
+ 1 to:size do:[:i | oneRow at: i put: ('Cell%1-%2' bindWith:suffix with:i)].
+ columnList add: oneRow.
+ ]
+ ].
+
+ columnView list: #().
+ columnView columnDescriptors: previewColumns.
+ columnView list: columnList.
+ ].
+
+ "Modified: / 27.10.1998 / 14:41:16 / cg"
+!
+
+updateInputFields
+ "reloads item value into input fields"
+
+ |column notifyValue|
+
+ (column := self selectedColumn) isNil ifTrue:[
+ self tabModel value:0.
+ ] ifFalse:[
+ notifyValue := nil. "/ old: '' -> problems with Toggles (asBoolean)
+
+ aspects do:[:anAspect| anAspect value:notifyValue ].
+ aspects keysAndValuesDo:[:aKey :aModel |
+ aModel value:(column perform:aKey) withoutNotifying: self
+ ].
+
+"/ REPALCE nil by empty string for specific inputFields without an adapter
+ #( #labelActionArgument #formatString #id ) do:[:aKey| |model|
+ model := aspects at:aKey.
+ model value isNil ifTrue:[model value:notifyValue withoutNotifying: self]
+ ].
+
+ tabSelection == 0 ifTrue:[self tabModel value:1].
+ ].
+! !
+
+!DataSetBuilder methodsFor:'selection'!
+
+selectedColumn
+ "returns selected column or nil"
+
+ selectedColumnIndex isCollection ifTrue:[
+ ^ selectedColumnIndex size == 1
+ ifTrue:[ columns at:selectedColumnIndex first ]
+ ifFalse:[ nil ]
+ ].
+
+ ^selectedColumnIndex == 0
+ ifFalse:[columns at:selectedColumnIndex ifAbsent: nil]
+ ifTrue: [nil]
+!
+
+selectedColumnIndex
+ "returns selected column index or 0"
+
+ ^selectedColumnIndex
+!
+
+selectedColumnIndex:something
+ "changes selected column and updates specifications"
+
+ something == selectedColumnIndex ifFalse:[
+ selectedColumnIndex := something ? 0.
+ "/ self assert:( selectedColumnIndex <= columns size ).
+ "/ self assert:( selectedColumnIndex <= self seqList size ).
+ self isColumnSelected value: true
+ ].
+!
+
+selectedColumnIndices
+ "returns selected column indices or #()"
+
+ selectedColumnIndex == 0 ifTrue:[ ^ #() ].
+ selectedColumnIndex isNumber ifTrue:[ ^ Array with:selectedColumnIndex ].
+ ^selectedColumnIndex
+!
+
+selectedColumns
+ selectedColumnIndex isCollection ifTrue:[
+ ^ selectedColumnIndex collect:[:idx | columns at:idx]
+ ].
+
+ ^ selectedColumnIndex == 0
+ ifFalse:[ Array with:(columns at:selectedColumnIndex) ]
+ ifTrue: [ #() ]
+!
+
+singleSelectedColumnIndex
+ selectedColumnIndex isCollection ifTrue:[
+ ^ selectedColumnIndex size == 1
+ ifTrue:[ selectedColumnIndex first ]
+ ifFalse:[ 0 ]
+ ].
+
+ ^ selectedColumnIndex
+!
+
+tabSelection:something
+ "changes selected tab and set corresponding specification"
+
+ |view spec|
+
+ something == tabSelection ifTrue:[^self].
+
+ (tabSelection := something) isNil ifTrue:[
+ tabSelection == 0 ifTrue:[^ self].
+ tabSelection := 0.
+ ].
+
+ self selectedColumn isNil ifTrue:[
+ tabSelection ~~ 0 ifTrue:[
+ self tabModel value:0
+ ] ifFalse:[
+ self canvasHolder value:nil
+ ].
+ ^ self
+ ].
+
+ tabSelection == 0 ifTrue:[
+ ^ self tabModel value:1.
+ ].
+
+ (view := listOfSpecViews at:tabSelection) isNil ifTrue:[
+ view := SimpleView new.
+ spec := (self class slices at:tabSelection) last.
+
+"/ view client:nil spec:(self class interfaceSpecFor:spec) builder:(self builder).
+ view client:self spec:spec builder:(self builder).
+ listOfSpecViews at:tabSelection put:view.
+ ].
+ self canvasHolder value:view
+! !
+
+!DataSetBuilder methodsFor:'startup & release'!
+
+commonPostBuild
+ columnView := self componentAt:#columnView.
+
+ columns notEmpty ifTrue: [
+ self tabModel value: 1.
+ self selectedColumnModel value:nil; value:1. "/ toggle to force change
+ self updateInputFields.
+ self updateInfoLabel.
+ self updateHistory
+ ].
+
+ (self componentAt: #labelAndColumns)
+ selectConditionBlock: [:i|self askForItemModification];
+ action: [:i|self cancel];
+ selection: 1.
+
+ "/ using masters infoHolder ?
+ (builder aspectAt:#useAlienInfoLabelHolder) == true ifTrue:[
+ (builder componentAt:#mainPanel) layout bottomOffset:0.
+ (builder componentAt:#infoBarSubSpec) beInvisible
+ ]
+!
+
+openModal
+ "sets the modalOpened flag, so later,
+ there is no need to ask for saving into a class"
+
+ modalOpened := true.
+ super openModal
+!
+
+openModalOnResourceSpec: aListSpec
+ "sets the modalOpened flag, so later,
+ there is no need to ask for saving into a class"
+
+ modalOpened := true.
+ super openModalOnResourceSpec: aListSpec
+
+
+!
+
+postBuildListOfItemsView:aView
+ listOfItemsView := aView
+!
+
+postBuildSpecView:aView
+ listOfItemsView := aView
+!
+
+postOpenWith:aBuilder
+ "reset keyboardProcessor for menuBar"
+
+ super postOpenWith:aBuilder.
+ aBuilder keyboardProcessor menuBar:nil.
+ self windowGroup addPreEventHook:self.
+! !
+
!DataSetBuilder::Row methodsFor:'accessing'!
choices