# HG changeset patch # User Claus Gittinger # Date 1243794240 -7200 # Node ID 55c5ca5f8689dc0dd88c4adf15d23901f5ec5c7c # Parent c3ee3b652ef7eea30720f9e304039f2dca92ee9d more fixes to run on spec only (no class/selector) diff -r c3ee3b652ef7 -r 55c5ca5f8689 DataSetBuilder.st --- a/DataSetBuilder.st Sun May 31 13:13:11 2009 +0200 +++ b/DataSetBuilder.st Sun May 31 20:24:00 2009 +0200 @@ -13,7 +13,8 @@ ResourceSpecEditor subclass:#DataSetBuilder instanceVariableNames:'rowClass rowSuperClass columnView columns selectedColumnIndex - modalOpened listOfSpecViews listOfItemsView' + modalOpened listOfSpecViews listOfItemsView editingSpecOnly + acceptedColumns' classVariableNames:'' poolDictionaries:'' category:'Interface-UIPainter' @@ -166,10 +167,13 @@ 'New Column Description' #fileSave +'Save the Column Description' + +#fileSaveMethod 'Save Column Description as Method' -#fileSaveAs -'Save Column Description as Method' +#fileSaveAsMethod +'Save Column Description as Method (ask for Class/Selector)' #editCut 'Cut Column' @@ -2104,6 +2108,101 @@ !DataSetBuilder class methodsFor:'menu specs'! +fileMenu + "This resource specification was automatically generated + by the MenuEditor of ST/X." + + "Do not manually edit this!! If it is corrupted, + the MenuEditor may not be able to read the specification." + + " + MenuEditor new openOnClass:DataSetBuilder andSelector:#fileMenu + (Menu new fromLiteralArrayEncoding:(DataSetBuilder fileMenu)) startUp + " + + + + ^ + #(Menu + ( + (MenuItem + activeHelpKey: fileNew + label: 'New' + itemValue: doNew + translateLabel: true + ) + (MenuItem + label: '-' + isVisible: notEditingSpecOnly + ) + (MenuItem + activeHelpKey: fileLoad + label: 'Load...' + itemValue: doLoad + translateLabel: true + isVisible: notEditingSpecOnly + ) + (MenuItem + label: '-' + ) + (MenuItem + activeHelpKey: fileSave + label: 'Save' + itemValue: doSave + translateLabel: true + isVisible: editingSpecOnly + ) + (MenuItem + activeHelpKey: fileSaveMethod + label: 'Save' + itemValue: doSave + translateLabel: true + isVisible: notEditingSpecOnly + ) + (MenuItem + activeHelpKey: fileSaveAsMethod + label: 'Save As...' + itemValue: doSaveAs + translateLabel: true + isVisible: notEditingSpecOnly + ) + (MenuItem + label: '-' + ) + (MenuItem + activeHelpKey: pickColumns + label: 'Pick Columns...' + itemValue: doPickColumns + translateLabel: true + ) + (MenuItem + label: '-' + isVisible: isStandAlone + ) + (MenuItem + activeHelpKey: fileBrowseClass + label: 'Browse Class' + itemValue: doBrowseClass + translateLabel: true + isVisible: isStandAlone + ) + (MenuItem + label: '-' + isVisible: isStandAlone + ) + (MenuItem + activeHelpKey: fileExit + label: 'Exit' + itemValue: closeRequest + translateLabel: true + isVisible: isStandAlone + ) + ) + nil + nil + ) +! + menu "This resource specification was automatically generated by the MenuEditor of ST/X." @@ -2124,74 +2223,7 @@ (MenuItem label: 'File' translateLabel: true - submenu: - (Menu - ( - (MenuItem - activeHelpKey: fileNew - label: 'New' - itemValue: doNew - translateLabel: true - ) - (MenuItem - label: '-' - ) - (MenuItem - activeHelpKey: fileLoad - label: 'Load...' - itemValue: doLoad - translateLabel: true - ) - (MenuItem - label: '-' - ) - (MenuItem - activeHelpKey: fileSave - label: 'Save' - itemValue: doSave - translateLabel: true - ) - (MenuItem - activeHelpKey: fileSaveAs - label: 'Save As...' - itemValue: doSaveAs - translateLabel: true - ) - (MenuItem - label: '-' - ) - (MenuItem - activeHelpKey: pickColumns - label: 'Pick Columns...' - itemValue: doPickColumns - translateLabel: true - ) - (MenuItem - label: '-' - isVisible: isStandAlone - ) - (MenuItem - activeHelpKey: fileBrowseClass - label: 'Browse Class' - itemValue: doBrowseClass - translateLabel: true - isVisible: isStandAlone - ) - (MenuItem - label: '-' - isVisible: isStandAlone - ) - (MenuItem - activeHelpKey: fileExit - label: 'Exit' - itemValue: closeRequest - translateLabel: true - isVisible: isStandAlone - ) - ) - nil - nil - ) + submenuChannel: fileMenu ) (MenuItem label: 'Edit' @@ -2228,6 +2260,7 @@ (MenuItem label: 'Generate' translateLabel: true + isVisible: notEditingSpecOnly submenu: (Menu ( @@ -2630,12 +2663,22 @@ labelImage: (ResourceRetriever ToolbarIconLibrary loadFromMethodIcon) ) (MenuItem + activeHelpKey: fileSaveMethod + label: 'Save' + itemValue: doSave + translateLabel: true + isButton: true + isVisible: notEditingSpecOnly + labelImage: (ResourceRetriever ToolbarIconLibrary saveAsMethodIcon) + ) + (MenuItem activeHelpKey: fileSave label: 'Save' itemValue: doSave translateLabel: true isButton: true - labelImage: (ResourceRetriever ToolbarIconLibrary saveAsMethodIcon) + isVisible: editingSpecOnly + labelImage: (ResourceRetriever ToolbarIconLibrary saveToFileIcon) ) (MenuItem label: '-' @@ -2731,6 +2774,12 @@ !DataSetBuilder methodsFor:'accessing'! +acceptedColumns + "returns the last saved columns (internal, for specOnly edit mode)" + + ^ acceptedColumns +! + columns "returns list of columns" @@ -2740,11 +2789,10 @@ columns:aListOfColumns "setup columns from a column view" - |list| - - columns := OrderedCollection new. - list := self seqList. - + |list newColumns| + + newColumns := OrderedCollection new. + list := self seqList. list removeAll. aListOfColumns size ~~ 0 ifTrue:[ @@ -2754,15 +2802,28 @@ ] ifFalse:[ column := aColumn copy ]. - columns add:column. + newColumns add:column. list add:(self labelFromColumn:column). ] ]. + columns := newColumns. self updateColumnView. "Modified: / 27-03-2007 / 08:46:39 / cg" ! +editingSpecOnly + ^ editingSpecOnly ? false +! + +editingSpecOnly:something + editingSpecOnly := something. +! + +notEditingSpecOnly + ^ self editingSpecOnly not +! + resolveRowClass "returns the resolved row class " @@ -2913,38 +2974,28 @@ ! loadFromClass:aClass andSelector:aSelector - |updateBlock cls list| + |cls list| self assert:(aClass isNil or:[aClass isClass]). selectedColumnIndex := 0. - updateBlock := [ - columns notEmpty ifTrue: [ - self tabModel value:0; value:1. "/ toggle to force change - self selectedColumnModel value:nil; value:1. "/ toggle to force change - self updateColumnView. - self updateInputFields. - self updateInfoLabel. - self updateHistory. - self clearModifiedFlag. - self enablingCommitButtonsHolder value:false. - ] - ]. - "if opened on table columns" aClass isNil ifTrue: [ self tabModel value: 0. - self columns removeAll. - self seqList removeAll. + "/ self columns removeAll. + "/ self seqList removeAll. self updateColumnView. self updateInfoLabel. self isColumnSelected value: false. ^ self. ]. - specSelector isNil ifTrue: [updateBlock value. ^self]. + specSelector isNil ifTrue: [ + self updateAfterColumnChange. + ^ self + ]. list := nil. @@ -2960,7 +3011,18 @@ list := columns ]. self columns:list. - updateBlock value. + self updateAfterColumnChange. +! + +updateAfterColumnChange + self tabModel value:0; value:1. "/ toggle to force change + self selectedColumnModel value:nil; value:1. "/ toggle to force change + self updateColumnView. + self updateInputFields. + self updateInfoLabel. + self updateHistory. + self clearModifiedFlag. + self enablingCommitButtonsHolder value:false. ! ! !DataSetBuilder methodsFor:'code generation'! @@ -3349,6 +3411,13 @@ ! +loadFromResourceSpec: aResourceSpec + self columns:aResourceSpec copy. + modified := false. + hasSaved := false. + self updateAfterColumnChange. +! + setDefaultValuesInNewColumn:aDataSetColumnSpec "/ aDataSetColumnSpec readSelector: #'valueAtColumnIndex:'. "/ aDataSetColumnSpec writeSelector: #'valueAtColumnIndex:put:'. @@ -3553,6 +3622,16 @@ !DataSetBuilder methodsFor:'private'! +askForModification + "asks first for item and then for resource modification" + + editingSpecOnly ifTrue:[ + self accept. + ^ true. + ]. + ^ self askForItemModification and: [self askForListModification] +! + labelFromColumn:aColumn |label| @@ -3575,12 +3654,11 @@ ! updateColumnView - "updates column view from column descriptions - " - |size| + "updates the column view from column descriptions" + + |size previewColumns columnList| columnView notNil ifTrue:[ - |previewColumns columnItems columnList| columnList := List new. previewColumns := OrderedCollection new. @@ -3607,11 +3685,14 @@ choices:#choices ]. #(' 1' ' 2' ' x') do:[:suffix| - columnItems := Row new:size. - 1 to:size do:[:i| columnItems at: i put: ('Cell', suffix)]. - columnList add: columnItems. + |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. @@ -4167,6 +4248,13 @@ doSave |cls dst spc category mthd excla code resourceType| + editingSpecOnly == true ifTrue:[ + acceptedColumns := columns. + hasSaved := true. + self clearModified. + ^ self. + ]. + (columns size ~~ 0 and:[super doSave]) ifFalse:[ ^ nil ].