--- 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 <jan.vrany@fit.cvut.cz>"
! !
!LintRuleSelectionDialog methodsFor:'accessing'!
+ruleset: ruleset
+ self rulesetHolder value: ruleset
+
+ "Created: / 27-02-2013 / 23:36:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
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 <enter your email here>"
+ "Modified: / 27-02-2013 / 23:40:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!LintRuleSelectionDialog methodsFor:'actions'!
@@ -311,6 +327,112 @@
"Created: / 15-04-2010 / 20:13:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
+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 <jan.vrany@fit.cvut.cz>"
+!
+
+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 <jan.vrany@fit.cvut.cz>"
+!
+
+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 <jan.vrany@fit.cvut.cz>"
! !
+!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 <jan.vrany@fit.cvut.cz>"
+!
+
+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 <jan.vrany@fit.cvut.cz>"
+!
+
+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 <jan.vrany@fit.cvut.cz>"
+! !
+
+!LintRuleSelectionDialog methodsFor:'hooks'!
+
+commonPostBuild
+ self updateRulesetNameList.
+
+ "Created: / 27-02-2013 / 23:10:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
!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 $'
! !