ChangeSetBrowser2 refactoring/cleanup
authorvrany
Thu, 04 Aug 2011 20:03:33 +0200
changeset 10449 bdc2ecfadf41
parent 10448 0a7159ffbd18
child 10450 4aa3a9ce20bf
ChangeSetBrowser2 refactoring/cleanup
Tools__ChangeList.st
--- a/Tools__ChangeList.st	Thu Aug 04 20:03:20 2011 +0200
+++ b/Tools__ChangeList.st	Thu Aug 04 20:03:33 2011 +0200
@@ -28,7 +28,8 @@
 "{ NameSpace: Tools }"
 
 BrowserList subclass:#ChangeList
-	instanceVariableNames:'listHolder listView showRemovedHolder acceptEnabledHolder'
+	instanceVariableNames:'listHolder listView showRemovedHolder showSameHolder
+		acceptEnabledHolder'
 	classVariableNames:'LastSelectionConditionString'
 	poolDictionaries:''
 	category:'Interface-Browsers-ChangeSet'
@@ -227,7 +228,7 @@
        (SpecCollection
           collection: (
            (SelectionInListModelViewSpec
-              name: 'SelectionInListModelView1'
+              name: 'List'
               layout: (LayoutFrame 0 0 0 0 0 1 0 1)
               model: selectionHolder
               menu: menuHolder
@@ -384,8 +385,10 @@
         #outGeneratorHolder
         #selectionHolder
         #showRemovedHolder
+        #showSameHolder
       ).
 
+    "Modified: / 04-08-2011 / 18:42:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !ChangeList methodsFor:'accessing'!
@@ -462,19 +465,71 @@
     ^ showRemovedHolder
 !
 
-showRemovedHolder:aValueHolder
+showRemovedHolder:something
     "set the 'showRemovedHolder' value holder (automatically generated)"
 
-    showRemovedHolder ifNotNil:[showRemovedHolder removeDependent: self].
-    showRemovedHolder := aValueHolder.
-    showRemovedHolder ifNotNil:[showRemovedHolder addDependent: self].
+    |oldValue newValue|
+
+    showRemovedHolder notNil ifTrue:[
+        oldValue := showRemovedHolder value.
+        showRemovedHolder removeDependent:self.
+    ].
+    showRemovedHolder := something.
+    showRemovedHolder notNil ifTrue:[
+        showRemovedHolder addDependent:self.
+    ].
+    newValue := showRemovedHolder value.
+    oldValue ~~ newValue ifTrue:[
+        self update:#value with:newValue from:showRemovedHolder.
+    ].
+!
+
+showSameHolder
+    "return/create the 'showSameHolder' value holder (automatically generated)"
+
+    showSameHolder isNil ifTrue:[
+        showSameHolder := ValueHolder with: true.
+        showSameHolder addDependent:self.
+    ].
+    ^ showSameHolder
+
+    "Modified: / 04-08-2011 / 18:39:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+showSameHolder:something
+    "set the 'showSameHolder' value holder (automatically generated)"
+
+    |oldValue newValue|
+
+    showSameHolder notNil ifTrue:[
+        oldValue := showSameHolder value.
+        showSameHolder removeDependent:self.
+    ].
+    showSameHolder := something.
+    showSameHolder notNil ifTrue:[
+        showSameHolder addDependent:self.
+    ].
+    newValue := showSameHolder value.
+    oldValue ~~ newValue ifTrue:[
+        self update:#value with:newValue from:showSameHolder.
+    ].
 ! !
 
 !ChangeList methodsFor:'change & update'!
 
 update: aspect with: param from: sender
 
-    sender == selectionHolder ifTrue:[^self selectionChanged].
+    sender == selectionHolder ifTrue:[
+        self selectionChanged.
+        ^self
+    ].
+    sender == showSameHolder ifTrue:[
+        self updateList
+    ].
+    sender == showRemovedHolder ifTrue:[
+        self updateList
+    ].
+
 
     ^super update: aspect with: param from: sender
 
@@ -750,8 +805,14 @@
     inGenerator := self inGeneratorHolder value.
     changeset := inGenerator ifNil:[ #() ] ifNotNil:[ inGenerator ].
     self listHolder value:(changeset 
-                select:[:chg | self showRemovedHolder value or:[ chg removed not ] ]
+                select:
+                    [:chg | 
+                    (self showRemovedHolder value or:[ chg removed not ])
+                        and:[self showSameHolder not or:[chg delta ~~ #=]]
+                    ]
                 thenCollect:[:chg | self listEntryFor:chg ])
+
+    "Modified: / 04-08-2011 / 18:41:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !ChangeList methodsFor:'queries'!
@@ -852,12 +913,17 @@
     children ifNil:
         [children :=
             change isCompositeChange 
-                ifTrue:[change changes collect:
-                            [:chg|(self application listEntryFor: chg) parent: self]]
-                ifFalse:[#()]].
+                ifTrue:[change changes select:
+                            [:chg|
+                            (self application showRemovedHolder value or:[ chg removed not ])
+                                and:[self application showSameHolder value or:[chg delta ~~ #=]]]
+                            thenCollect:[:chg|(self application listEntryFor: chg) parent: self]]
+                ifFalse:[#()]
+        ].
     ^children
 
     "Created: / 25-07-2009 / 23:32:39 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 04-08-2011 / 18:48:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 delta
@@ -959,7 +1025,7 @@
 !ChangeList class methodsFor:'documentation'!
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__ChangeList.st,v 1.3 2011-07-19 12:33:32 vrany Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__ChangeList.st,v 1.4 2011-08-04 18:03:33 vrany Exp $'
 !
 
 version_SVN