#UI_ENHANCEMENT by cg
class: ChangesBrowser
changed: #updateInfoAfterChangedSelection
more info
--- 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).
].
].