#UI_ENHANCEMENT by cg
class: Tools::ClassList
class definition
comment/format in: #addOwnerClasses:
changed:
#listOfClasses
#listOfClassesByInheritance
#nameListForClasses:
if classes were only added to the list because
they are the owner of a private class (and the owner
is actually not really part of the search result),
show these owners in grey.
Especially useful to avoid confusion in the smallLint
result classList.
--- a/Tools__ClassList.st Sat Jan 28 12:01:57 2017 +0100
+++ b/Tools__ClassList.st Sat Jan 28 13:08:20 2017 +0100
@@ -18,7 +18,7 @@
selectedClassNameIndices currentNamespace hidePrivateClasses
unloadedClassesColor markApplicationsHolder classFilterBlock
sortByNameAndInheritance outGeneratorHolderForMethods
- addOwnerClasses'
+ addOwnerClasses ownersAddedForTheirPrivateClassesOnly'
classVariableNames:''
poolDictionaries:''
category:'Interface-Browsers-New'
@@ -242,11 +242,11 @@
^ addOwnerClasses.
!
-addOwnerClasses:aValueHolder
+addOwnerClasses:aBooleanValueHolder
addOwnerClasses notNil ifTrue:[
addOwnerClasses removeDependent:self
].
- addOwnerClasses := aValueHolder.
+ addOwnerClasses := aBooleanValueHolder.
addOwnerClasses notNil ifTrue:[
addOwnerClasses addDependent:self
].
@@ -1256,6 +1256,8 @@
classesAlready := IdentitySet new.
classesOrdered := OrderedCollection new.
+ ownersAddedForTheirPrivateClassesOnly := IdentitySet new.
+
hidePrivate := self hidePrivateClasses value.
privateClassesPerClass := IdentityDictionary new.
@@ -1305,6 +1307,7 @@
"/ are there any private classes, for which the owner is not in the list ?
privateClassesPerClass keysAndValuesDo:[:eachOwnerClass :privateClasses|
(classesAlready includes:eachOwnerClass) ifFalse:[
+ ownersAddedForTheirPrivateClassesOnly add:eachOwnerClass.
classesOrdered add:eachOwnerClass.
classesAlready add:eachOwnerClass.
"/ privateClasses do:[:privateClass |
@@ -1385,6 +1388,7 @@
classesAlready := IdentitySet new.
classes := Set new.
classesOrdered := OrderedCollection new.
+ ownersAddedForTheirPrivateClassesOnly := IdentitySet new.
hidePrivate := self hidePrivateClasses value.
privateClassesPerClass := IdentityDictionary new.
@@ -1402,8 +1406,10 @@
or:[self isClass:cls shownWithPackageFilter:packageFilter]) ifTrue:[
(classesAlready includes:cls) ifFalse:[
classesAlready add:cls.
+ ownersAddedForTheirPrivateClassesOnly remove:cls ifAbsent:[].
((owner := cls owningClass) notNil and:[self addOwnerClasses value]) ifTrue:[
(classesAlready includes:owner) ifFalse:[
+ ownersAddedForTheirPrivateClassesOnly add:owner.
classesAlready add:owner.
classes add:owner.
].
@@ -1573,13 +1579,16 @@
].
].
+ (ownersAddedForTheirPrivateClassesOnly includes:eachClass) ifTrue:[
+ clr := Color grey.
+ ].
+
self showCoverageInformation value ifTrue:[
clr := self colorForCoverageInformationOfClass:eachClass.
- clr notNil ifTrue:[
- nm := self colorize:nm with:#color -> clr
- ].
].
- clr isNil ifTrue:[
+ clr notNil ifTrue:[
+ nm := self colorize:nm with:#color -> clr
+ ] ifFalse:[
isInChangeSet ifTrue:[
nm := self emphasizeForChangedCode:nm
].