added: #updateRule
authorClaus Gittinger <cg@exept.de>
Thu, 01 Mar 2012 16:44:18 +0100
changeset 11306 64efae786a2c
parent 11305 f9019302309d
child 11307 f5a4988c23ec
added: #updateRule comment/format in: #ruleHolder: changed: #aspectSelectors #ruleRationaleAspect #update:with:from: update fixes
Tools__LintRuleDetail.st
--- a/Tools__LintRuleDetail.st	Thu Mar 01 14:29:29 2012 +0100
+++ b/Tools__LintRuleDetail.st	Thu Mar 01 16:44:18 2012 +0100
@@ -193,8 +193,10 @@
 
     ^ #(
         #ruleHolder
+        #ruleRationaleAspect
       ).
 
+    "Modified: / 01-03-2012 / 16:31:04 / cg"
 ! !
 
 !LintRuleDetail methodsFor:'actions'!
@@ -265,17 +267,19 @@
     |oldValue newValue|
 
     ruleHolder notNil ifTrue:[
-	oldValue := ruleHolder value.
-	ruleHolder removeDependent:self.
+        oldValue := ruleHolder value.
+        ruleHolder removeDependent:self.
     ].
     ruleHolder := something.
     ruleHolder notNil ifTrue:[
-	ruleHolder addDependent:self.
+        ruleHolder addDependent:self.
     ].
     newValue := ruleHolder value.
     oldValue ~~ newValue ifTrue:[
-	self update:#value with:newValue from:ruleHolder.
+        self update:#value with:newValue from:ruleHolder.
     ].
+
+    "Modified: / 01-03-2012 / 15:29:30 / cg"
 !
 
 ruleNameAspect
@@ -304,13 +308,17 @@
     |holder|
 
     (holder := builder bindingAt:#ruleRationaleAspect) isNil ifTrue:[
-        holder := (AspectAdaptor forAspect: #rationale) subjectChannel: self ruleHolder.
+        "cannot use a BlockValue linked on the ruleHolder for the
+         ruleRationaleAspect, because the ruleHolder maight be changed dynamically
+         via the aspect-linking mechanism"
+"/        holder := (AspectAdaptor forAspect: #rationale) subjectChannel: self ruleHolder.
+        holder := '' asValue.
         builder aspectAt:#ruleRationaleAspect put:holder.
     ].
     ^ holder.
 
     "Modified: / 05-02-2010 / 12:51:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified (comment): / 07-09-2011 / 04:12:16 / cg"
+    "Modified: / 01-03-2012 / 15:29:16 / cg"
 ! !
 
 !LintRuleDetail methodsFor:'change & update'!
@@ -320,6 +328,7 @@
 
     changedObject == ruleHolder ifTrue:[
         self updateVisibility.
+        self updateRule.
          ^ self.
     ].
     changedObject == rationaleVisibleHolder ifTrue:[
@@ -329,6 +338,20 @@
     super update:something with:aParameter from:changedObject
 
     "Modified: / 04-08-2011 / 21:31:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 01-03-2012 / 15:27:38 / cg"
+!
+
+updateRule
+    "cannot use a BlockValue linked on the ruleHolder for the
+     ruleRationaleAspect, because the ruleHolder maight be changed dynamically
+     via the aspect-linking mechanism"
+
+    |rule|
+
+    rule := self ruleHolder value.
+    self ruleRationaleAspect value: (rule isNil ifTrue:[''] ifFalse:[rule rationale]).
+
+    "Created: / 01-03-2012 / 15:28:18 / cg"
 !
 
 updateVisibility
@@ -416,11 +439,11 @@
 !LintRuleDetail class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__LintRuleDetail.st,v 1.11 2012-03-01 09:56:50 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__LintRuleDetail.st,v 1.12 2012-03-01 15:44:18 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__LintRuleDetail.st,v 1.11 2012-03-01 09:56:50 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__LintRuleDetail.st,v 1.12 2012-03-01 15:44:18 cg Exp $'
 !
 
 version_SVN