--- a/Tools_ClassList.st Tue Sep 22 12:30:25 2009 +0200
+++ b/Tools_ClassList.st Tue Sep 22 12:31:29 2009 +0200
@@ -735,31 +735,14 @@
|selected prevSelection selectedClassesHolder|
selectedClassesHolder := self selectedClasses.
-"/ lastSelectedClasses := selectedClassesHolder value copy.
selected := self getSelectedClassesFromIndices.
prevSelection := selectedClassesHolder value ? #().
- "/ to allow reselect, change my valueHolder, even if the same collection
-
prevSelection ~= selected ifTrue:[
- selectedClassesHolder value:selected.
-"/ ] ifFalse:[
-"/ selectedClassesHolder value:selected withoutNotifying:self
+ selectedClassesHolder value:selected.
].
-
-"/ (selectedClassesHolder value = lastSelectedClasses
-"/ and:[lastSelectedClasses size == 1]) ifTrue:[
-"/ "/ thats a kludge - we want to turn off the protocol selection,
-"/ "/ when a class is reselected.
-"/
-"/ (masterApplication notNil
-"/ and:[(mm := masterApplication masterApplication) notNil
-"/ and:[mm respondsTo:#selectedProtocols]]) ifTrue:[
-"/ mm selectedProtocols value:#()
-"/ ].
-"/ ].
!
selectionChangedByClick
@@ -967,57 +950,61 @@
to make the consumers only depend on one input (i.e. no need for another
classHolder in the methodList)."
- ^ Iterator on:[:whatToDo |
- |allEntry classes cls already anyMethod packages classIsInPackage|
+ ^ Iterator
+ on:[:whatToDo |
+ |allEntry classes cls already anyMethod packages classIsInPackage showChanged|
- allEntry := self class nameListEntryForALL.
-
- classes := self selectedClasses value ? #().
- packages := packageFilter value value.
- (packages notNil and:[packages includes:allEntry]) ifTrue:[packages := nil].
+ allEntry := self class nameListEntryForALL.
- classes do:[:cls |
- (cls notNil and:[cls ~~ allEntry]) ifTrue:[
- anyMethod := false.
- classIsInPackage := packages isNil or:[packages includes:cls package].
+ classes := self selectedClasses value ? #().
+ packages := packageFilter value value.
+ (packages notNil and:[packages includes:allEntry]) ifTrue:[packages := nil].
+ showChanged := packages notNil and:[packages includes:NavigatorModel nameListEntryForChanged].
- cls theNonMetaclass isJavaClass ifTrue:[
- cls isMeta ifTrue:[
- whatToDo value:cls theNonMetaclass value:(self class nameListEntryForStatic).
- ] ifFalse:[
- whatToDo value:cls value:(self class nameListEntryForNonStatic).
- ]
- ] ifFalse:[
- cls supportsMethodCategories ifTrue:[
- already := Set new.
- cls methodDictionary keysAndValuesDo:[:sel :mthd |
- |cat|
+ classes do:[:cls |
+ (cls notNil and:[cls ~~ allEntry]) ifTrue:[
+ anyMethod := false.
+ classIsInPackage := packages isNil
+ or:[(packages includes:cls package)
+ or:[ showChanged and:[ChangeSet current changedClasses includes:cls]] ].
- cat := mthd category.
- (already includes:cat) ifFalse:[
- (classIsInPackage
- or:[packages isNil
- or:[packages includes:mthd package]])
- ifTrue:[
- already add:cat.
- whatToDo value:cls value:cat.
- ]
- ]
- ].
- ] ifFalse:[
- whatToDo value:cls value:(self class nameListEntryForNILCategory).
- ].
- ].
+ cls theNonMetaclass isJavaClass ifTrue:[
+ cls isMeta ifTrue:[
+ whatToDo value:cls theNonMetaclass value:(self class nameListEntryForStatic).
+ ] ifFalse:[
+ whatToDo value:cls value:(self class nameListEntryForNonStatic).
+ ]
+ ] ifFalse:[
+ cls supportsMethodCategories ifTrue:[
+ already := Set new.
+ cls methodDictionary keysAndValuesDo:[:sel :mthd |
+ |cat|
- anyMethod ifFalse:[
- "/ tell the one below, which classes are seen here,
- "/ (even if no method is present)
- "/ to allow him to decide if the className is to be shown in the list
- whatToDo value:cls value:nil.
- ].
- ].
- ].
- ]
+ cat := mthd category.
+ (already includes:cat) ifFalse:[
+ (classIsInPackage
+ or:[packages isNil
+ or:[packages includes:mthd package]])
+ ifTrue:[
+ already add:cat.
+ whatToDo value:cls value:cat.
+ ]
+ ]
+ ].
+ ] ifFalse:[
+ whatToDo value:cls value:(self class nameListEntryForNILCategory).
+ ].
+ ].
+
+ anyMethod ifFalse:[
+ "/ tell the one below, which classes are seen here,
+ "/ (even if no method is present)
+ "/ to allow him to decide if the className is to be shown in the list
+ whatToDo value:cls value:nil.
+ ].
+ ].
+ ].
+ ]
"Modified: / 24.2.2000 / 23:18:26 / cg"
! !
@@ -1047,10 +1034,10 @@
].
].
].
- packageFilter := self packageFilter value.
- packageFilter notNil ifTrue:[
- (packageFilter includes:allName) ifTrue:[packageFilter := nil].
- ].
+"/ packageFilter := self packageFilter value.
+"/ packageFilter notNil ifTrue:[
+"/ (packageFilter includes:allName) ifTrue:[packageFilter := nil].
+"/ ].
inGeneratorHolder isNil ifTrue:[
"/ for standAlone testing
@@ -1126,7 +1113,8 @@
stream := WriteStream on:(Array new).
- action := [:eachClass |
+ action :=
+ [:eachClass |
|bucket|
stream nextPut:eachClass.
@@ -1135,7 +1123,7 @@
bucket notNil ifTrue:[
bucket do:action.
]
- ].
+ ].
classesOrdered do:action.
classesOrdered := stream contents.
@@ -1664,5 +1652,5 @@
!ClassList class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassList.st,v 1.38 2009-05-01 17:37:47 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassList.st,v 1.39 2009-09-22 10:31:29 cg Exp $'
! !