+ pseudo changed entry
authorClaus Gittinger <cg@exept.de>
Mon, 21 Sep 2009 15:56:13 +0200
changeset 8734 d34b06b82112
parent 8733 31c0ffee640f
child 8735 325a0d90b312
+ pseudo changed entry
Tools_ClassCategoryList.st
--- a/Tools_ClassCategoryList.st	Mon Sep 21 15:11:31 2009 +0200
+++ b/Tools_ClassCategoryList.st	Mon Sep 21 15:56:13 2009 +0200
@@ -513,7 +513,7 @@
 makeGenerator
     "return a generator which enumerates the classes from the selected category."
 
-    |cats hideUnloadedClasses allName nameSpaceFilter packageFilter|
+    |cats hideUnloadedClasses allName nameSpaceFilter packageFilter showChangedClasses|
 
     cats := self selectedCategoriesStrings.
     cats size == 0 ifTrue:[
@@ -528,6 +528,8 @@
         ]
     ].
 
+    showChangedClasses := cats includes:(self class nameListEntryForChanged).
+
     hideUnloadedClasses := self hideUnloadedClasses value ? false.
     nameSpaceFilter := self nameSpaceFilter value.
     nameSpaceFilter notNil ifTrue:[
@@ -572,12 +574,17 @@
     ].
 
     ^ Iterator on:[:whatToDo | 
-                       Smalltalk allClassesDo:[:cls | |cat|
+                       Smalltalk allClassesDo:[:cls | 
+                           |cat|
+
                            (hideUnloadedClasses not or:[cls isLoaded]) 
                            ifTrue:[
                                (cls isRealNameSpace not) ifTrue:[
                                    cat := cls category ? '* no category *'.
-                                   (cats includes:cat) ifTrue:[
+                                   ((cats includes:cat)
+                                    or:[showChangedClasses 
+                                        and:[ (ChangeSet current changedClasses includes:cls theNonMetaclass)
+                                              or:[(ChangeSet current changedClasses includes:cls theMetaclass)] ]]) ifTrue:[
                                        (nameSpaceFilter isNil
                                        or:[self isClass:cls shownWithNameSpaceFilter:nameSpaceFilter]) ifTrue:[
                                            (packageFilter isNil
@@ -615,7 +622,7 @@
 listOfCategories
     |categories hideUnloadedClasses generator nameSpaceFilter packageFilter allName
      categoriesWithExtensions categoriesWithChangedCode categoriesWithRemoteChangedCode
-     classesInChangeSet classesInRemoteChangeSet|
+     classesInChangeSet classesInRemoteChangeSet numClassesInChangeSet numClasses|
 
     allName := self class nameListEntryForALL.
 
@@ -629,6 +636,8 @@
         (packageFilter includes:allName) ifTrue:[packageFilter := nil].
     ].
 
+    numClasses := 0.
+
     categories := Set new.
     categoriesWithExtensions := Set new.
     categoriesWithChangedCode := Set new.
@@ -652,6 +661,8 @@
                     or:[self isClass:cls shownWithNameSpaceFilter:nameSpaceFilter]) ifTrue:[
                         (packageFilter isNil
                         or:[self isClass:cls shownWithPackageFilter:packageFilter]) ifTrue:[
+                            numClasses := numClasses + 1.
+
                             cat := cls category ? '* no category *'.
                             cat isString ifFalse:[self halt:'oops - strange category'].
                             categories add:cat.
@@ -706,12 +717,20 @@
                 ]
             ]
         ].
-    categories size == 1 ifTrue:[
-        self classCategoryLabelHolder value:(categories first)
+
+    numClassesInChangeSet := ChangeSet current changedClasses size.
+    numClassesInChangeSet > 0 ifTrue:[
+        "/ dont include count - makeGenerator compares against the un-expanded nameListEntry (sigh - need two lists)
+        categories addFirst:((self class nameListEntryForChanged "bindWith:numClassesInChangeSet") allItalic).
     ].
-    categories size == 0 ifFalse:[
-        categories addFirst:(self class nameListEntryForALL allItalic).
+
+    categories size > 0 ifTrue:[
+        categories size == 1 ifTrue:[
+            self classCategoryLabelHolder value:(categories first)
+        ].
+        categories addFirst:((self class nameListEntryForALL "WithCount bindWith:numClasses") allItalic).
     ].
+
     ^ categories
 
     "Created: / 05-02-2000 / 13:42:12 / cg"
@@ -862,5 +881,5 @@
 !ClassCategoryList class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassCategoryList.st,v 1.22 2009-09-15 08:33:17 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassCategoryList.st,v 1.23 2009-09-21 13:56:13 cg Exp $'
 ! !