Tools__LintRuleDetail.st
changeset 17290 ffe3a898f0a4
parent 16526 1510e5d4c2ad
child 17297 78fd75347bc3
--- a/Tools__LintRuleDetail.st	Sat Jan 28 04:13:18 2017 +0100
+++ b/Tools__LintRuleDetail.st	Sat Jan 28 12:01:57 2017 +0100
@@ -29,7 +29,7 @@
 
 ApplicationModel subclass:#LintRuleDetail
 	instanceVariableNames:'ruleHolder rationaleVisibleHolder rationalView
-		selectedMethodsHolder'
+		selectedMethodsHolder selectedClassesHolder'
 	classVariableNames:''
 	poolDictionaries:''
 	category:'Interface-Lint'
@@ -196,6 +196,7 @@
         #ruleHolder
         #ruleRationaleAspect
         #selectedMethodsHolder
+        #selectedClassesHolder
       ).
 
     "Modified: / 01-03-2012 / 16:31:04 / cg"
@@ -208,6 +209,7 @@
 
     rule := self ruleHolder value.
     rule isNil ifTrue:[^ self].
+    
     ruleClass := rule class.
     (ruleClass implements:#rationale) ifTrue:[
         sel := #rationale.
@@ -233,7 +235,7 @@
     "Modified: / 01-03-2012 / 08:50:20 / cg"
 !
 
-rationaleVisibleHolder:something
+rationaleVisibleHolder:aValueHolder
     "set the 'rationaleVisibleHolder' value holder (automatically generated)"
 
     |oldValue newValue|
@@ -242,7 +244,7 @@
         oldValue := rationaleVisibleHolder value.
         rationaleVisibleHolder removeDependent:self.
     ].
-    rationaleVisibleHolder := something.
+    rationaleVisibleHolder := aValueHolder.
     rationaleVisibleHolder notNil ifTrue:[
         rationaleVisibleHolder addDependent:self.
     ].
@@ -263,7 +265,7 @@
     "Modified: / 01-03-2012 / 08:51:03 / cg"
 !
 
-ruleHolder:something
+ruleHolder:aValueHolder
     "set the 'ruleHolder' value holder (automatically generated)"
 
     |oldValue newValue|
@@ -272,7 +274,7 @@
         oldValue := ruleHolder value.
         ruleHolder removeDependent:self.
     ].
-    ruleHolder := something.
+    ruleHolder := aValueHolder.
     ruleHolder notNil ifTrue:[
         ruleHolder addDependent:self.
     ].
@@ -323,6 +325,35 @@
     "Modified: / 01-03-2012 / 15:29:16 / cg"
 !
 
+selectedClassesHolder
+    "return/create the 'selectedClassesHolder' value holder (automatically generated)"
+
+    selectedClassesHolder isNil ifTrue:[
+        selectedClassesHolder := #() asValue.
+        selectedClassesHolder addDependent:self.
+    ].
+    ^ selectedClassesHolder
+!
+
+selectedClassesHolder:aValueHolder
+    "set the 'selectedClassesHolder' value holder (automatically generated)"
+
+    |oldValue newValue|
+
+    selectedClassesHolder notNil ifTrue:[
+        oldValue := selectedClassesHolder value.
+        selectedClassesHolder removeDependent:self.
+    ].
+    selectedClassesHolder := aValueHolder.
+    selectedClassesHolder notNil ifTrue:[
+        selectedClassesHolder addDependent:self.
+    ].
+    newValue := selectedClassesHolder value.
+    oldValue ~= newValue ifTrue:[
+        self update:#value with:newValue from:selectedClassesHolder.
+    ].
+!
+
 selectedMethodsHolder
     "return/create the 'selectedMethodsHolder' value holder (automatically generated)"
 
@@ -333,7 +364,7 @@
     ^ selectedMethodsHolder
 !
 
-selectedMethodsHolder:something
+selectedMethodsHolder:aValueHolder
     "set the 'selectedMethodsHolder' value holder (automatically generated)"
 
     |oldValue newValue|
@@ -342,7 +373,7 @@
         oldValue := selectedMethodsHolder value.
         selectedMethodsHolder removeDependent:self.
     ].
-    selectedMethodsHolder := something.
+    selectedMethodsHolder := aValueHolder.
     selectedMethodsHolder notNil ifTrue:[
         selectedMethodsHolder addDependent:self.
     ].
@@ -367,8 +398,17 @@
          ^ self.
     ].
     changedObject == selectedMethodsHolder ifTrue:[
-        "/ cg: preparations to show method-specific text in rationale/detail
-        "/ view. Not yet done...
+        "/ cg: preparations to show method-specific text in rationale/detail view
+        "/ Not yet done...
+        self updateRule.
+        ^ self 
+    ].
+
+    changedObject == selectedClassesHolder ifTrue:[
+        "/ cg: preparations to show class-specific text in rationale/detail view
+        "/ Not yet done...
+        self updateRule.
+        ^ self 
     ].
 
     super update:something with:aParameter from:changedObject
@@ -382,10 +422,23 @@
      ruleRationaleAspect, because the ruleHolder maight be changed dynamically
      via the aspect-linking mechanism"
 
-    |rule|
+    |rule text|
 
+    text := ''.
+    
     rule := self ruleHolder value.
-    self ruleRationaleAspect value: (rule isNil ifTrue:[''] ifFalse:[rule rationaleWithAnchor]).
+    rule notNil ifTrue:[
+        selectedMethodsHolder value size == 1 ifTrue:[
+            text := rule rationaleWithAnchorForMethod:(selectedMethodsHolder value first).
+        ] ifFalse:[    
+            selectedClassesHolder value size == 1 ifTrue:[
+                text := rule rationaleWithAnchorForClass:(selectedClassesHolder value first).
+            ] ifFalse:[    
+                text := rule rationaleWithAnchor.
+            ]
+        ]    
+    ].
+    self ruleRationaleAspect value:text.
 
     "Created: / 01-03-2012 / 15:28:18 / cg"
 !