class: Tools::ChangeList
authorClaus Gittinger <cg@exept.de>
Sun, 14 Apr 2013 21:55:58 +0200
changeset 12666 c90e266fc135
parent 12665 3fe28ec40b3f
child 12667 5b04311f860d
class: Tools::ChangeList added: #iconExcla #iconSelectorForChange: changed: #hasSingleChangeSelectedAndCanBrowse #listMenuApply #listMenuBrowseChanges:
Tools__ChangeList.st
--- a/Tools__ChangeList.st	Sun Apr 14 20:13:55 2013 +0200
+++ b/Tools__ChangeList.st	Sun Apr 14 21:55:58 2013 +0200
@@ -87,6 +87,10 @@
     "Modified: / 31-08-2011 / 10:54:00 / cg"
 !
 
+iconExcla
+    ^ ToolbarIconLibrary iconExclaRed12x12
+!
+
 iconMinus
     ^ ToolbarIconLibrary iconMinusRed12x12
 
@@ -685,18 +689,19 @@
 !ChangeList methodsFor:'menu actions'!
 
 listMenuApply
-    |sel list idx|
+    |sel list idx selectionHolder|
 
     self acceptEnabled ifFalse:[^self].
+    selectionHolder := self selectionHolder.
 
-    (sel := self selectionHolder value) do:[:e| applyAction value:e change].
+    (sel := selectionHolder value) do:[:e| applyAction value:e change].
     sel size == 1 ifTrue:[
         list := self listHolder value. 
         idx := list indexOf:(sel first). 
         idx < list size ifTrue:[
-            self selectionHolder value:(Array with:(list at:idx+1))
+            selectionHolder value:(Array with:(list at:idx+1))
         ] ifFalse:[
-            self selectionHolder value:#()
+            selectionHolder value:#()
         ].
     ].
 
@@ -724,31 +729,35 @@
 !
 
 listMenuBrowseChanges: changes
+    | classes methods methodsOnly browserClass|
 
-    | classes methods methodsOnly |
     classes := Set new.
     methods := Set new.
     methodsOnly := true.
-    changes do:
-        [:each|
-        each  isClassChange ifTrue:
-            [each  changeClass ifNotNil:
-                [classes add: each  changeClass.
+    changes do: [:each |
+        each isClassChange ifTrue:[
+            each changeClass ifNotNil:[
+                classes add: each  changeClass.
                 each isMethodCodeChange 
                     ifTrue:
                         [each changeMethod ifNotNil:
                             [methods add:each changeMethod]]
                     ifFalse:
-                        [methodsOnly := false]]]].
+                        [methodsOnly := false]
+            ]
+        ]
+    ].
+
+    browserClass := Smalltalk browserClass.
     methodsOnly 
         ifTrue:
             [methods size = 1 
-                ifTrue:[Smalltalk browserClass openInMethod: methods anyOne]
-                ifFalse:[Smalltalk browserClass browseMethods: methods asArray title: 'Selected methods from changeset' sort: true]]
+                ifTrue:[ browserClass openInMethod: methods anyOne]
+                ifFalse:[ browserClass browseMethods: methods asArray title: 'Selected methods from changeset' sort: true]]
         ifFalse:
             [classes size = 1
-                ifTrue:[Smalltalk browserClass browseClass: classes anyOne]
-                ifFalse:[Smalltalk browserClass browseClasses: classes]]
+                ifTrue:[ browserClass browseClass: classes anyOne]
+                ifFalse:[ 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>"
@@ -872,6 +881,22 @@
     "Modified: / 24-07-2009 / 22:06:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
 !
 
+iconSelectorForChange:change
+    | delta sym selectorOrNil |
+
+    masterApplication notNil ifTrue:[
+        selectorOrNil := masterApplication iconSelectorForChange:change.
+        selectorOrNil notNil ifTrue:[ ^ selectorOrNil ].
+    ].
+    delta := change deltaDetail.
+    sym := delta shortDeltaSymbol.
+    sym = #+ ifTrue:[^#iconPlus].
+    sym = #- ifTrue:[^#iconMinus].
+    sym = #= ifTrue:[^#iconEqual].
+    "/ different.
+    ^ nil.
+!
+
 listEntryFor:chg 
     ^ListEntry change:chg application: self
 
@@ -948,14 +973,15 @@
 !
 
 hasSingleChangeSelectedAndCanBrowse
-
+    self selectionHolder value ? #() do: [:each |
+        |chg|
 
-    self selectionHolder value ? #() do:
-        [:each|
-        (each change isClassChange and:
-            [each change isMethodChange not
-                or:[each change isMethodCodeChange]]) ifFalse:[^false]].
-    ^true
+        chg := each change.
+        chg isClassChange ifTrue:[
+            (chg isMethodChange not or:[chg isMethodCodeChange]) ifFalse:[^ false]
+        ].
+    ].
+    ^ true
 ! !
 
 !ChangeList::ListEntry class methodsFor:'instance creation'!
@@ -1074,27 +1100,6 @@
     "Created: / 31-08-2011 / 10:29:21 / cg"
 !
 
-iconDelta
-
-    | iconSelector |
-    iconSelector := self iconSelector.
-    iconSelector isNil ifTrue:[^nil].
-    self removed ifTrue:[iconSelector := iconSelector , #Grayed].
-    ^self application class perform: iconSelector asSymbol.
-
-    "Created: / 05-12-2009 / 14:11:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 18-11-2011 / 14:56:33 / cg"
-!
-
-iconRemoved
-
-    ^self removed 
-        ifTrue: [self application class uncheckedIcon ]
-        ifFalse:[self application class checkedIcon ]
-
-    "Created: / 05-12-2009 / 14:11:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
 imageSource
     "return the source for the in-image version of the change"
 
@@ -1155,22 +1160,33 @@
 
     "Modified: / 24-01-2012 / 21:44:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 27-07-2012 / 21:26:23 / cg"
-! !
+!
+
+iconDelta
+    | iconSelector |
+
+    iconSelector := self iconSelector.
+    iconSelector isNil ifTrue:[^nil].
+    self removed ifTrue:[iconSelector := iconSelector , #Grayed].
+    ^self application class perform: iconSelector asSymbol.
 
-!ChangeList::ListEntry methodsFor:'private'!
+    "Created: / 05-12-2009 / 14:11:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 18-11-2011 / 14:56:33 / cg"
+!
+
+iconRemoved
+    |appClass|
+
+    appClass := self application class.
+    ^self removed 
+        ifTrue: [appClass uncheckedIcon ]
+        ifFalse:[appClass checkedIcon ]
+
+    "Created: / 05-12-2009 / 14:11:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
 
 iconSelector
-    | delta sym |
-
-    delta := change deltaDetail.
-    sym := delta shortDeltaSymbol.
-    sym = #+ ifTrue:[^#iconPlus].
-    sym = #- ifTrue:[^#iconMinus].
-    sym = #= ifTrue:[^#iconEqual].
-    "/ different.
-    ^ nil.
-
-    "Modified: / 31-08-2011 / 10:39:32 / cg"
+    ^ application iconSelectorForChange:change
 ! !
 
 !ChangeList::ListEntry methodsFor:'protocol-queries'!
@@ -1185,11 +1201,11 @@
 !ChangeList class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__ChangeList.st,v 1.23 2013-04-14 06:49:03 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__ChangeList.st,v 1.24 2013-04-14 19:55:58 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__ChangeList.st,v 1.23 2013-04-14 06:49:03 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__ChangeList.st,v 1.24 2013-04-14 19:55:58 cg Exp $'
 !
 
 version_SVN