--- a/Tools__LintRuleDetail.st Wed Jan 25 19:02:59 2017 +0000
+++ b/Tools__LintRuleDetail.st Wed Feb 01 11:36:30 2017 +0000
@@ -29,7 +29,7 @@
ApplicationModel subclass:#LintRuleDetail
instanceVariableNames:'ruleHolder rationaleVisibleHolder rationalView
- selectedMethodsHolder'
+ selectedMethodsHolder selectedClassesHolder'
classVariableNames:''
poolDictionaries:''
category:'Interface-Lint'
@@ -63,6 +63,23 @@
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
"
+!
+
+documentation
+"
+ Embeddable list to display affected methods from a selected SmallLint rules.
+ (this is embedded in the browser when showing lint check outcomes)
+
+ [author:]
+ Jan Vrany <jan.vrany@fit.cvut.cz>
+
+ [instance variables:]
+
+ [class variables:]
+
+ [see also:]
+
+"
! !
!LintRuleDetail class methodsFor:'help specs'!
@@ -196,6 +213,7 @@
#ruleHolder
#ruleRationaleAspect
#selectedMethodsHolder
+ #selectedClassesHolder
).
"Modified: / 01-03-2012 / 16:31:04 / cg"
@@ -208,6 +226,7 @@
rule := self ruleHolder value.
rule isNil ifTrue:[^ self].
+
ruleClass := rule class.
(ruleClass implements:#rationale) ifTrue:[
sel := #rationale.
@@ -233,7 +252,7 @@
"Modified: / 01-03-2012 / 08:50:20 / cg"
!
-rationaleVisibleHolder:something
+rationaleVisibleHolder:aValueHolder
"set the 'rationaleVisibleHolder' value holder (automatically generated)"
|oldValue newValue|
@@ -242,7 +261,7 @@
oldValue := rationaleVisibleHolder value.
rationaleVisibleHolder removeDependent:self.
].
- rationaleVisibleHolder := something.
+ rationaleVisibleHolder := aValueHolder.
rationaleVisibleHolder notNil ifTrue:[
rationaleVisibleHolder addDependent:self.
].
@@ -263,7 +282,7 @@
"Modified: / 01-03-2012 / 08:51:03 / cg"
!
-ruleHolder:something
+ruleHolder:aValueHolder
"set the 'ruleHolder' value holder (automatically generated)"
|oldValue newValue|
@@ -272,7 +291,7 @@
oldValue := ruleHolder value.
ruleHolder removeDependent:self.
].
- ruleHolder := something.
+ ruleHolder := aValueHolder.
ruleHolder notNil ifTrue:[
ruleHolder addDependent:self.
].
@@ -311,7 +330,7 @@
(holder := builder bindingAt:#ruleRationaleAspect) isNil ifTrue:[
"cannot use a BlockValue linked on the ruleHolder for the
- ruleRationaleAspect, because the ruleHolder maight be changed dynamically
+ ruleRationaleAspect, because the ruleHolder might be changed dynamically
via the aspect-linking mechanism"
"/ holder := (AspectAdaptor forAspect: #rationale) subjectChannel: self ruleHolder.
holder := '' asValue.
@@ -323,6 +342,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 +381,7 @@
^ selectedMethodsHolder
!
-selectedMethodsHolder:something
+selectedMethodsHolder:aValueHolder
"set the 'selectedMethodsHolder' value holder (automatically generated)"
|oldValue newValue|
@@ -342,7 +390,7 @@
oldValue := selectedMethodsHolder value.
selectedMethodsHolder removeDependent:self.
].
- selectedMethodsHolder := something.
+ selectedMethodsHolder := aValueHolder.
selectedMethodsHolder notNil ifTrue:[
selectedMethodsHolder addDependent:self.
].
@@ -367,8 +415,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 +439,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"
!