diff -r 82a149c4e4cb -r 73cac1625cc3 Tools__LintRuleSelectionDialog.st --- a/Tools__LintRuleSelectionDialog.st Wed Feb 05 20:08:56 2014 +0100 +++ b/Tools__LintRuleSelectionDialog.st Wed Feb 05 20:08:58 2014 +0100 @@ -28,8 +28,9 @@ "{ NameSpace: Tools }" SimpleDialog subclass:#LintRuleSelectionDialog - instanceVariableNames:'selectedRulesHolder selectionHolder variablePanel relativeCorners - detailsShown listSelection' + instanceVariableNames:'selectionHolder variablePanel relativeCorners detailsShown + listSelection rulesetList rulesetHolder rulesetNameList + rulesetNameHolder' classVariableNames:'' poolDictionaries:'' category:'Interface-Lint' @@ -127,9 +128,16 @@ component: (SpecCollection collection: ( + (ComboListSpec + name: 'ComboBox1' + layout: (LayoutFrame 0 0 0 0 0 1 25 0) + model: rulesetNameHolder + acceptOnPointerLeave: false + comboList: rulesetNameList + ) (VariableVerticalPanelSpec name: 'VariableVerticalPanel1' - layout: (LayoutFrame 0 0 0 0 0 1 -30 1) + layout: (LayoutFrame 0 0 30 0 0 1 -30 1) component: (SpecCollection collection: ( @@ -224,11 +232,17 @@ ) ) - "Modified: / 01-03-2012 / 10:50:28 / cg" + "Modified: / 27-02-2013 / 23:23:58 / Jan Vrany " ! ! !LintRuleSelectionDialog methodsFor:'accessing'! +ruleset: ruleset + self rulesetHolder value: ruleset + + "Created: / 27-02-2013 / 23:36:18 / Jan Vrany " +! + selection ^self selectionHolder value @@ -245,9 +259,11 @@ selectionAsRule - ^RBCompositeLintRule rules: self selection name: 'Selected rules' + self rulesetHolder value rules: self selection. + ^self rulesetHolder value. "Created: / 25-08-2010 / 14:10:58 / Jan Vrany " + "Modified: / 27-02-2013 / 23:40:39 / Jan Vrany " ! ! !LintRuleSelectionDialog methodsFor:'actions'! @@ -311,6 +327,112 @@ "Created: / 15-04-2010 / 20:13:51 / Jan Vrany " ! +rulesetHolder + "return/create the 'rulesetHolder' value holder (automatically generated)" + + rulesetHolder isNil ifTrue:[ + rulesetHolder := ValueHolder new. + rulesetHolder addDependent:self. + ]. + ^ rulesetHolder +! + +rulesetHolder:something + "set the 'rulesetHolder' value holder (automatically generated)" + + |oldValue newValue| + + rulesetHolder notNil ifTrue:[ + oldValue := rulesetHolder value. + rulesetHolder removeDependent:self. + ]. + rulesetHolder := something. + rulesetHolder notNil ifTrue:[ + rulesetHolder addDependent:self. + ]. + newValue := rulesetHolder value. + oldValue ~~ newValue ifTrue:[ + self update:#value with:newValue from:rulesetHolder. + ]. +! + +rulesetList + "return/create the 'rulesetList' value holder (automatically generated)" + + rulesetList isNil ifTrue:[ + rulesetList := RBCompositeLintRule rulesets asList. + rulesetList addDependent:self. + ]. + ^ rulesetList + + "Modified: / 27-02-2013 / 23:07:28 / Jan Vrany " +! + +rulesetList:something + "set the 'rulesetList' value holder (automatically generated)" + + |oldValue newValue| + + rulesetList notNil ifTrue:[ + oldValue := rulesetList value. + rulesetList removeDependent:self. + ]. + rulesetList := something. + rulesetList notNil ifTrue:[ + rulesetList addDependent:self. + ]. + newValue := rulesetList value. + oldValue ~~ newValue ifTrue:[ + self update:#value with:newValue from:rulesetList. + ]. +! + +rulesetNameHolder + "return/create the 'rulesetNameHolder' value holder (automatically generated)" + + rulesetNameHolder isNil ifTrue:[ + rulesetNameHolder := self rulesetHolder value name asValue. + rulesetNameHolder addDependent:self. + ]. + ^ rulesetNameHolder + + "Modified: / 27-02-2013 / 23:42:31 / Jan Vrany " +! + +rulesetNameHolder:something + "set the 'rulesetNameHolder' value holder (automatically generated)" + + |oldValue newValue| + + rulesetNameHolder notNil ifTrue:[ + oldValue := rulesetNameHolder value. + rulesetNameHolder removeDependent:self. + ]. + rulesetNameHolder := something. + rulesetNameHolder notNil ifTrue:[ + rulesetNameHolder addDependent:self. + ]. + newValue := rulesetNameHolder value. + oldValue ~~ newValue ifTrue:[ + self update:#value with:newValue from:rulesetNameHolder. + ]. +! + +rulesetNameList + "return/create the 'rulesetNameList' value holder (automatically generated)" + + rulesetNameList isNil ifTrue:[ + rulesetNameList := ValueHolder new. + ]. + ^ rulesetNameList +! + +rulesetNameList:something + "set the 'rulesetNameList' value holder (automatically generated)" + + rulesetNameList := something. +! + selectionHolder "return/create the 'selectionHolder' value holder (automatically generated)" @@ -329,17 +451,83 @@ "Created: / 24-07-2010 / 15:05:21 / Jan Vrany " ! ! +!LintRuleSelectionDialog methodsFor:'change & update'! + +update:something with:aParameter from:changedObject + "Invoked when an object that I depend upon sends a change notification." + + "stub code automatically generated - please change as required" + + changedObject == rulesetList ifTrue:[ + self updateRulesetNameList. + ^ self. + ]. + changedObject == rulesetHolder ifTrue:[ + self rulesetNameHolder value: self rulesetHolder value name. + self selection: self rulesetHolder value flattened. + ^ self. + ]. + changedObject == rulesetNameHolder ifTrue:[ + self updateRulesetHolder. + ^ self. + ]. + super update:something with:aParameter from:changedObject + + "Modified: / 27-02-2013 / 23:27:44 / Jan Vrany " +! + +updateRulesetHolder + | ruleset | + + self rulesetHolder value name == self rulesetNameHolder value ifTrue:[ + ^self. + ]. + + (self rulesetNameList value notNil and:[self rulesetNameHolder value asString = self rulesetNameList value last asString]) ifTrue:[ + ruleset := RBCompositeLintRule new. + ruleset name: ('New Rule Set ' , (self rulesetList size + 1) printString). + self rulesetList add: ruleset. + RBCompositeLintRule rulesets add: ruleset. + self rulesetNameHolder value: ruleset name. + ] ifFalse:[ + | idx | + idx := self rulesetNameList value indexOf: self rulesetNameHolder value. + ruleset := self rulesetList at: idx. + ]. + self rulesetHolder value: ruleset. + + "Created: / 27-02-2013 / 23:15:27 / Jan Vrany " +! + +updateRulesetNameList + + self rulesetNameList value: + ((self rulesetList collect:[:e|e name]) + add: 'New Ruleset...' asText allItalic; + yourself) + + "Created: / 27-02-2013 / 23:08:22 / Jan Vrany " +! ! + +!LintRuleSelectionDialog methodsFor:'hooks'! + +commonPostBuild + self updateRulesetNameList. + + "Created: / 27-02-2013 / 23:10:54 / Jan Vrany " +! ! + !LintRuleSelectionDialog class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libtool/Tools__LintRuleSelectionDialog.st,v 1.5 2013-07-31 16:08:52 cg Exp $' + ^ '$Header: /cvs/stx/stx/libtool/Tools__LintRuleSelectionDialog.st,v 1.6 2014-02-05 19:08:58 cg Exp $' ! version_CVS - ^ '$Header: /cvs/stx/stx/libtool/Tools__LintRuleSelectionDialog.st,v 1.5 2013-07-31 16:08:52 cg Exp $' + ^ '$Header: /cvs/stx/stx/libtool/Tools__LintRuleSelectionDialog.st,v 1.6 2014-02-05 19:08:58 cg Exp $' ! version_SVN - ^ '$Id: Tools__LintRuleSelectionDialog.st,v 1.5 2013-07-31 16:08:52 cg Exp $' + ^ '$Id: Tools__LintRuleSelectionDialog.st,v 1.6 2014-02-05 19:08:58 cg Exp $' ! !