Tools__ClassList.st
branchjv
changeset 16315 73c4f82ca456
parent 16066 471853fc1521
parent 16310 431559157925
child 16445 6bc184e74f9c
--- a/Tools__ClassList.st	Fri Apr 22 06:41:59 2016 +0200
+++ b/Tools__ClassList.st	Sat Apr 23 06:56:00 2016 +0200
@@ -17,7 +17,8 @@
 	instanceVariableNames:'classList classNameList meta lastSelectedClasses
 		selectedClassNameIndices currentNamespace hidePrivateClasses
 		unloadedClassesColor markApplicationsHolder classFilterBlock
-		sortByNameAndInheritance outGeneratorHolderForMethods'
+		sortByNameAndInheritance outGeneratorHolderForMethods
+		addOwnerClasses'
 	classVariableNames:''
 	poolDictionaries:''
 	category:'Interface-Browsers-New'
@@ -233,6 +234,24 @@
 
 !ClassList methodsFor:'aspects'!
 
+addOwnerClasses
+    addOwnerClasses isNil ifTrue:[
+        addOwnerClasses := ValueHolder with:true.
+        addOwnerClasses addDependent:self.
+    ].
+    ^ addOwnerClasses.
+!
+
+addOwnerClasses:aValueHolder
+    addOwnerClasses notNil ifTrue:[
+        addOwnerClasses removeDependent:self
+    ].
+    addOwnerClasses := aValueHolder.
+    addOwnerClasses notNil ifTrue:[
+        addOwnerClasses addDependent:self
+    ].
+!
+
 classLabelHolder
     ^ self pseudoListLabelHolder
 !
@@ -1257,7 +1276,7 @@
                             (nameFilter isNil 
                               or:[ (nameFilterIncludesMatchCharacters not and:[ cls name asLowercase startsWith:lcNameFilter])
                               or:[ (nameFilterIncludesMatchCharacters and:[nameFilter match:cls name ignoreCase:true]) ]]) ifTrue:[
-                                (owner := cls owningClass) notNil ifTrue:[
+                                ((owner := cls owningClass) notNil and:[self addOwnerClasses value]) ifTrue:[
                                     bucket := privateClassesPerClass 
                                                     at:owner 
                                                     ifAbsentPut:[SortedCollection new 
@@ -1388,7 +1407,7 @@
                 or:[self isClass:cls shownWithPackageFilter:packageFilter]) ifTrue:[
                     (classesAlready includes:cls) ifFalse:[
                         classesAlready add:cls.
-                        (owner := cls owningClass) notNil ifTrue:[
+                        ((owner := cls owningClass) notNil and:[self addOwnerClasses value]) ifTrue:[
                             (classesAlready includes:owner) ifFalse:[
                                 classesAlready add:owner.
                                 classes add:owner.