refactoring in ChangeSetBrowser2
authorvrany
Tue, 24 Jan 2012 23:18:39 +0100
changeset 11194 b7882ec27c05
parent 11193 bdfc09d65f51
child 11195 336471486c9f
refactoring in ChangeSetBrowser2
Tools__ChangeList.st
--- a/Tools__ChangeList.st	Tue Jan 24 18:41:02 2012 +0100
+++ b/Tools__ChangeList.st	Tue Jan 24 23:18:39 2012 +0100
@@ -28,7 +28,8 @@
 "{ NameSpace: Tools }"
 
 BrowserListWithFilter subclass:#ChangeList
-	instanceVariableNames:'listHolder showRemovedHolder showSameHolder acceptEnabledHolder'
+	instanceVariableNames:'listHolder showRemovedHolder showSameHolder allowRemoveHolder
+		allowAcceptHolder'
 	classVariableNames:'LastSelectionConditionString'
 	poolDictionaries:''
 	category:'Interface-Browsers-ChangeSet'
@@ -185,6 +186,7 @@
     "Do not manually edit this!! If it is corrupted,
      the MenuEditor may not be able to read the specification."
 
+
     "
      MenuEditor new openOnClass:Tools::ChangeList andSelector:#listMenu
      (Menu new fromLiteralArrayEncoding:(Tools::ChangeList listMenu)) startUp
@@ -200,14 +202,14 @@
             label: 'Apply'
             itemValue: listMenuApply
             translateLabel: true
-            isVisible: acceptEnabledHolder
+            isVisible: allowAcceptHolder
             shortcutKey: Accept
           )
          (MenuItem
             label: 'Apply all'
             itemValue: listMenuApplyAll
             translateLabel: true
-            isVisible: acceptEnabledHolder
+            isVisible: allowAcceptHolder
           )
          (MenuItem
             enabled: hasSingleChangeSelectedAndCanBrowse
@@ -223,10 +225,12 @@
             itemValue: listMenuDeleteSelection
             nameKey: Delete
             translateLabel: true
+            isVisible: allowRemoveHolder
             shortcutKey: Delete
           )
          (MenuItem
             label: '-'
+            isVisible: allowRemoveHolder
           )
          (MenuItem
             label: 'Select...'
@@ -281,6 +285,7 @@
          (MenuItem
             label: 'Show Deleted'
             translateLabel: true
+            isVisible: allowRemoveHolder
             indication: showRemovedHolder
           )
          (MenuItem
@@ -308,7 +313,9 @@
      (if this app is embedded in a subCanvas)."
 
     ^ #(
-        #acceptEnabledHolder
+        #allowAcceptHolder
+        #allowRemoveHolder
+
         #inGeneratorHolder
         #menuHolder
         #outGeneratorHolder
@@ -317,20 +324,27 @@
         #showSameHolder
       ).
 
+    "Modified: / 24-01-2012 / 19:54:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !ChangeList methodsFor:'accessing'!
 
-acceptEnabled
-    "return the value in 'acceptEnabledHolder'"
+allowAccept
+    ^ self allowAcceptHolder value
 
-    ^ self acceptEnabledHolder value
+    "Created: / 24-01-2012 / 19:52:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
-acceptEnabled: newValue
-    "set the value in 'acceptEnabledHolder'"
+allowAccept: aBoolean
+    ^ self allowAcceptHolder value: aBoolean
 
-    self acceptEnabledHolder value: newValue
+    "Created: / 24-01-2012 / 19:52:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+allowRemoved
+    ^ self allowRemoveHolder value ? true
+
+    "Created: / 05-12-2009 / 14:28:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 list
@@ -368,29 +382,68 @@
 
 selectionDoubleclicked
 
-    | app |
+    self listMenuBrowse
+"/    | app |
+"/
+"/    self selection do:
+"/        [:e|e removed: e removed not].
+"/    ((app := self masterApplication) respondsTo: #redrawChangeListViews)
+"/        ifTrue:[app redrawChangeListViews].
 
-    self selection do:
-        [:e|e removed: e removed not].
-    ((app := self masterApplication) respondsTo: #redrawChangeListViews)
-        ifTrue:[app redrawChangeListViews].
-
-    "Modified: / 16-03-2011 / 22:51:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 24-01-2012 / 22:01:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !ChangeList methodsFor:'aspects'!
 
-acceptEnabledHolder
+allowAcceptHolder
     "return/create the valueHolder 'acceptEnabledHolder'"
 
-    acceptEnabledHolder isNil ifTrue:[
-        acceptEnabledHolder := ValueHolder with:nil "defaultValue here".
+    allowAcceptHolder isNil ifTrue:[
+        allowAcceptHolder := ValueHolder with:nil "defaultValue here".
     ].
-    ^ acceptEnabledHolder
+    ^ allowAcceptHolder
+
+    "Created: / 24-01-2012 / 19:53:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+allowAcceptHolder:something
+    "set the 'allowAcceptHolder' value holder (automatically generated)"
+
+    allowAcceptHolder := something.
 !
 
-acceptEnabledHolder:aValueModel
-    acceptEnabledHolder := aValueModel.
+allowRemoveHolder
+    "return/create the 'allowRemoveHolder' value holder (automatically generated)"
+    
+    allowRemoveHolder isNil ifTrue:[
+        allowRemoveHolder := ValueHolder with:true.
+        allowRemoveHolder addDependent:self.
+    ].
+    ^ allowRemoveHolder
+
+    "Modified (comment): / 24-01-2012 / 19:44:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+allowRemoveHolder:something 
+    "set the 'showRemovedHolder' value holder (automatically generated)"
+    
+    |oldValue newValue|
+
+    allowRemoveHolder notNil ifTrue:[
+        oldValue := allowRemoveHolder value.
+        allowRemoveHolder removeDependent:self.
+    ].
+    allowRemoveHolder := something.
+    allowRemoveHolder notNil ifTrue:[
+        allowRemoveHolder addDependent:self.
+    ].
+    newValue := allowRemoveHolder value.
+    oldValue ~~ newValue ifTrue:[
+        self 
+            update:#value
+            with:newValue
+            from:allowRemoveHolder.
+    ].
 !
 
 listHolder
@@ -572,22 +625,29 @@
 
 listMenuBrowse
 
+    self listMenuBrowseChanges:
+        ((self selectionHolder value ? #()) collect:[:e|e change])
+
+    "Modified: / 24-01-2012 / 22:00:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+listMenuBrowseChanges: changes
+
     | classes methods methodsOnly |
     classes := Set new.
     methods := Set new.
     methodsOnly := true.
-    self selectionHolder value do:
+    changes do:
         [:each|
-        each change isClassChange ifTrue:
-            [each change changeClass ifNotNil:
-                [classes add: each change changeClass.
-                each change isMethodCodeChange 
+        each  isClassChange ifTrue:
+            [each  changeClass ifNotNil:
+                [classes add: each  changeClass.
+                each isMethodCodeChange 
                     ifTrue:
-                        [each change changeMethod ifNotNil:
-                            [methods add:each change changeMethod]]
+                        [each changeMethod ifNotNil:
+                            [methods add:each changeMethod]]
                     ifFalse:
                         [methodsOnly := false]]]].
-
     methodsOnly 
         ifTrue:
             [methods size = 1 
@@ -598,10 +658,8 @@
                 ifTrue:[Smalltalk browserClass browseClass: classes anyOne]
                 ifFalse:[Smalltalk browserClass browseClasses: classes]]
 
-
-
-
     "Modified: / 24-10-2009 / 22:02:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Created: / 24-01-2012 / 22:00:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 listMenuDeleteSelection
@@ -961,7 +1019,7 @@
 
     | cx icon |
     cx := x := newX.
-    self application showRemoved ifTrue:
+    self application allowRemoveHolder value ifTrue:
         [(icon := self iconRemoved) ifNotNil:
             [icon displayOn: aGC x: cx y: y + (h / 2) - (icon height / 2) ].
         cx := cx + 22."experimental value - this looks good"].
@@ -972,7 +1030,7 @@
 
     super displayLabel:aLabel h:lH on:aGC x:cx y:y h:h
 
-    "Modified: / 05-12-2009 / 14:49:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 24-01-2012 / 21:44:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !ChangeList::ListEntry methodsFor:'private'!
@@ -1002,11 +1060,11 @@
 !ChangeList class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__ChangeList.st,v 1.12 2011-12-28 16:17:51 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__ChangeList.st,v 1.13 2012-01-24 22:18:39 vrany Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__ChangeList.st,v 1.12 2011-12-28 16:17:51 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__ChangeList.st,v 1.13 2012-01-24 22:18:39 vrany Exp $'
 !
 
 version_SVN