Tools__LintRuleSelectionDialog.st
changeset 13877 73cac1625cc3
parent 13282 2e628ff0e590
child 14753 ed3aa84a71ed
--- 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 $'
 ! !