#UI_ENHANCEMENT by cg
authorClaus Gittinger <cg@exept.de>
Sat, 07 May 2016 21:49:15 +0200
changeset 16476 307b09c517b9
parent 16475 5206032f1a19
child 16477 590a1ae33527
#UI_ENHANCEMENT by cg class: ChangesBrowser changed: #updateInfoAfterChangedSelection more info
ChangesBrowser.st
--- a/ChangesBrowser.st	Sat May 07 21:36:48 2016 +0200
+++ b/ChangesBrowser.st	Sat May 07 21:49:15 2016 +0200
@@ -6025,8 +6025,9 @@
 updateInfoAfterChangedSelection
     "update the info label"
 
-    |selection lineNr className nClassChanges nMethodChanges uniqueSelectors
-     lastLineNr countAfterLast moreInfo|
+    |selection lineNr className nonMetaClassName metaClassName
+     nClassChanges nMethodChanges uniqueSelectors
+     lastLineNr firstLineNr countBeforeCurrent countAfterLast moreInfo|
 
     selection := lineNr := changeListView selection.
     selection isNumber ifFalse:[
@@ -6046,20 +6047,32 @@
     "/ we can do it each time the selection changes
     "/ (can we?)
     className := self realClassNameOfChange:lineNr.
-
+    nonMetaClassName := (className endsWith:' class')
+                            ifTrue:[ className copyButLast:' class' size ]
+                            ifFalse:[ className ].
+    metaClassName := nonMetaClassName,' class'.
+                            
     nClassChanges := nMethodChanges := 0.
     uniqueSelectors := Set new.
-    lastLineNr := nil.
+    lastLineNr := firstLineNr := nil.
     countAfterLast := 0.
+    countBeforeCurrent := 0.
     
     "/ count them all
     1 to:changeInfoList size do:[:i |
-        |sel|
+        |sel nameOfChange|
         
-        (self realClassNameOfChange:i) = className ifTrue:[
+        nameOfChange := self realClassNameOfChange:i.
+        ((nameOfChange = nonMetaClassName) or:[nameOfChange = metaClassName]) ifTrue:[
             lastLineNr := i.
-            i > lineNr ifTrue:[ countAfterLast := countAfterLast + 1 ].
-            
+            firstLineNr := firstLineNr ? i.
+            i > lineNr 
+                ifTrue:[ countAfterLast := countAfterLast + 1 ]
+                ifFalse:[
+                    i < lineNr ifTrue:[
+                        countBeforeCurrent := countBeforeCurrent + 1
+                    ]
+                ].    
             nClassChanges := nClassChanges + 1.
             (sel := self selectorOfMethodChange:i) notNil ifTrue:[
                 uniqueSelectors add:sel.
@@ -6068,10 +6081,17 @@
         ].    
     ].
     lastLineNr == lineNr ifTrue:[
-        moreInfo := resources string:'. This is the last for this class.'.
+        firstLineNr == lineNr ifTrue:[
+            moreInfo := resources string:'. This is the only one for this class '.
+        ] ifFalse:[    
+            moreInfo := resources string:'. This is the last for this class '.
+        ]
     ] ifFalse:[
+        firstLineNr == lineNr ifTrue:[
+            moreInfo := resources string:'. This is the first for this class'.
+        ].    
         countAfterLast > 0 ifTrue:[
-            moreInfo := resources string:'. %1 more for this class.' with:countAfterLast.
+            moreInfo := (moreInfo ? ''),(resources string:'. %1 more for this class ' with:countAfterLast).
         ].    
     ].