Tools_ClassList.st
changeset 10529 bf7dcbf92471
parent 10421 75c4bfa6618e
child 11259 088e5db972c6
equal deleted inserted replaced
10528:61c4f5551b4b 10529:bf7dcbf92471
    15 
    15 
    16 BrowserList subclass:#ClassList
    16 BrowserList subclass:#ClassList
    17 	instanceVariableNames:'classList classNameList meta lastSelectedClasses
    17 	instanceVariableNames:'classList classNameList meta lastSelectedClasses
    18 		selectedClassNameIndices currentNamespace hidePrivateClasses
    18 		selectedClassNameIndices currentNamespace hidePrivateClasses
    19 		unloadedClassesColor markApplicationsHolder classFilterBlock
    19 		unloadedClassesColor markApplicationsHolder classFilterBlock
    20 		sortByNameAndInheritance'
    20 		sortByNameAndInheritance outGeneratorHolderForMethods'
    21 	classVariableNames:''
    21 	classVariableNames:''
    22 	poolDictionaries:''
    22 	poolDictionaries:''
    23 	category:'Interface-Browsers-New'
    23 	category:'Interface-Browsers-New'
    24 !
    24 !
    25 
    25 
   191         #showClassPackages
   191         #showClassPackages
   192         #slaveMode
   192         #slaveMode
   193         #updateTrigger
   193         #updateTrigger
   194         #markApplicationsHolder
   194         #markApplicationsHolder
   195         #showCoverageInformation
   195         #showCoverageInformation
       
   196         #outGeneratorHolderForMethods
   196       ).
   197       ).
   197 
   198 
   198     "Modified: / 04-07-2011 / 18:34:44 / cg"
   199     "Modified: / 04-07-2011 / 18:34:44 / cg"
       
   200     "Modified: / 07-08-2011 / 19:02:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   199 ! !
   201 ! !
   200 
   202 
   201 !ClassList methodsFor:'accessing'!
   203 !ClassList methodsFor:'accessing'!
   202 
   204 
   203 markApplications
   205 markApplications
  1062                     ].
  1064                     ].
  1063                 ].
  1065                 ].
  1064           ]
  1066           ]
  1065 
  1067 
  1066     "Modified: / 24.2.2000 / 23:18:26 / cg"
  1068     "Modified: / 24.2.2000 / 23:18:26 / cg"
       
  1069 !
       
  1070 
       
  1071 makeGeneratorForMethods
       
  1072 
       
  1073     ^ Iterator 
       
  1074         on:[:whatToDo |
       
  1075                 |allEntry classes cls already packages classIsInPackage showChanged cat |
       
  1076 
       
  1077                 allEntry := self class nameListEntryForALL.
       
  1078 
       
  1079                 classes := self selectedClasses value ? #().
       
  1080                 packages := packageFilter value value.
       
  1081                 (packages notNil and:[packages includes:allEntry]) ifTrue:[packages := nil].
       
  1082                 showChanged := packages notNil and:[packages includes:NavigatorModel nameListEntryForChanged].
       
  1083 
       
  1084                 classes do:[:cls |
       
  1085                     (cls notNil and:[cls ~~ allEntry]) ifTrue:[
       
  1086                         classIsInPackage := packages isNil 
       
  1087                                             or:[(packages includes:cls package)
       
  1088                                             or:[ showChanged and:[ChangeSet current changedClasses includes:cls]] ].
       
  1089                         cls isMeta ifTrue:[
       
  1090                             cat := self class nameListEntryForStatic.
       
  1091                         ] ifFalse:[
       
  1092                             cat := self class nameListEntryForNonStatic.
       
  1093                         ].
       
  1094                         cls methodDictionary keysAndValuesDo:[:sel :mthd |
       
  1095                             whatToDo value:cls value:cat value:sel value:mthd.
       
  1096                         ].                            
       
  1097 
       
  1098                     ].
       
  1099                 ].
       
  1100           ]
       
  1101 
       
  1102     "Modified: / 24-02-2000 / 23:18:26 / cg"
       
  1103     "Created: / 07-08-2011 / 19:01:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
  1104 !
       
  1105 
       
  1106 outGeneratorHolderForMethods
       
  1107     ^ outGeneratorHolderForMethods
       
  1108 !
       
  1109 
       
  1110 outGeneratorHolderForMethods:something
       
  1111     outGeneratorHolderForMethods := something.
       
  1112 !
       
  1113 
       
  1114 updateOutputGenerator
       
  1115     "create a generator which enumerates my elements, 
       
  1116      and place it into the outputGenerator holder"
       
  1117 
       
  1118     self outGeneratorHolder value: self makeGenerator.
       
  1119     outGeneratorHolderForMethods notNil ifTrue:[
       
  1120         outGeneratorHolderForMethods value: self makeGeneratorForMethods.
       
  1121     ].
       
  1122 
       
  1123     "Modified: / 04-02-2000 / 17:16:34 / cg"
       
  1124     "Created: / 05-02-2000 / 13:42:08 / cg"
       
  1125     "Created: / 07-08-2011 / 18:51:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
  1067 ! !
  1126 ! !
  1068 
  1127 
  1069 !ClassList methodsFor:'private'!
  1128 !ClassList methodsFor:'private'!
  1070 
  1129 
  1071 listOfClasses
  1130 listOfClasses
  1110     nameFilter notNil ifTrue:[ lcNameFilter := nameFilter asLowercase].
  1169     nameFilter notNil ifTrue:[ lcNameFilter := nameFilter asLowercase].
  1111 
  1170 
  1112     generator do:[:cls | 
  1171     generator do:[:cls | 
  1113         |owner bucket|
  1172         |owner bucket|
  1114 
  1173 
       
  1174         "JV@2011-08-07: FIXME: Ugly code, hard to extend!! And duplicated in listOfClassesByInheritance !!!!!!!!"            
  1115         (hidePrivate not or:[cls isPrivate not])
  1175         (hidePrivate not or:[cls isPrivate not])
  1116         ifTrue:[
  1176         ifTrue:[
  1117             (nameSpaceFilter isNil
  1177             (nameSpaceFilter isNil
  1118             or:[self isClass:cls shownWithNameSpaceFilter:nameSpaceFilter]) ifTrue:[
  1178             or:[self isClass:cls shownWithNameSpaceFilter:nameSpaceFilter]) ifTrue:[
  1119                 (packageFilter isNil
  1179                 (packageFilter isNil
  1130                                                     at:owner 
  1190                                                     at:owner 
  1131                                                     ifAbsentPut:[SortedCollection new 
  1191                                                     ifAbsentPut:[SortedCollection new 
  1132                                                                     sortBlock:[:a :b | (a name ? '?') < (b name ? '?')] ].
  1192                                                                     sortBlock:[:a :b | (a name ? '?') < (b name ? '?')] ].
  1133                                     bucket add:cls.
  1193                                     bucket add:cls.
  1134                                 ] ifFalse:[
  1194                                 ] ifFalse:[
  1135                                     classesOrdered add:cls.
  1195                                     "Do not show Java anonymous classes"
       
  1196                                     cls isJavaClass ifTrue:[
       
  1197                                         cls isAnonymous ifFalse:[
       
  1198                                             classesOrdered add:cls.
       
  1199                                         ]                                            
       
  1200                                     ] ifFalse:[                                        
       
  1201                                         classesOrdered add:cls.
       
  1202                                     ]                                            
  1136                                 ]
  1203                                 ]
  1137                             ]
  1204                             ]
  1138                         ]
  1205                         ]
  1139                     ]
  1206                     ]
  1140                 ]
  1207                 ]
  1189 "/ does not work (yet)
  1256 "/ does not work (yet)
  1190 "/    classes addFirst:AllEntry.
  1257 "/    classes addFirst:AllEntry.
  1191     ^ classesOrdered
  1258     ^ classesOrdered
  1192 
  1259 
  1193     "Modified: / 04-07-2011 / 18:33:56 / cg"
  1260     "Modified: / 04-07-2011 / 18:33:56 / cg"
       
  1261     "Modified (format): / 07-08-2011 / 16:02:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
  1194 !
  1262 !
  1195 
  1263 
  1196 listOfClassesByInheritance
  1264 listOfClassesByInheritance
  1197     "TODO: needs refatoring and common code extract with listOfClasses,
  1265     "TODO: needs refatoring and common code extract with listOfClasses,
  1198      but I have no time at the moment..."
  1266      but I have no time at the moment..."
  1243                         classesAlready add:cls.
  1311                         classesAlready add:cls.
  1244                         (owner := cls owningClass) notNil ifTrue:[
  1312                         (owner := cls owningClass) notNil ifTrue:[
  1245                             bucket := privateClassesPerClass at:owner ifAbsentPut:[SortedCollection new sortBlock:[:a :b | a name < b name] ].
  1313                             bucket := privateClassesPerClass at:owner ifAbsentPut:[SortedCollection new sortBlock:[:a :b | a name < b name] ].
  1246                                 bucket add:cls.
  1314                                 bucket add:cls.
  1247                             ] ifFalse:[
  1315                             ] ifFalse:[
  1248                             classes add:cls.
  1316                                 cls isJavaClass ifTrue:[
       
  1317                                     cls isAnonymous ifFalse:[
       
  1318                                         classes add:cls.
       
  1319                                     ]
       
  1320                                 ] ifFalse:[
       
  1321                                    classes add:cls.
       
  1322                                 ]                                    
  1249                         ]
  1323                         ]
  1250                     ]
  1324                     ]
  1251                 ]
  1325                 ]
  1252             ]
  1326             ]
  1253         ]
  1327         ]
  1297 
  1371 
  1298     "Modified: / 18-08-2000 / 20:34:10 / cg"
  1372     "Modified: / 18-08-2000 / 20:34:10 / cg"
  1299     "Modified: / 21-01-2008 / 19:43:04 / janfrog"
  1373     "Modified: / 21-01-2008 / 19:43:04 / janfrog"
  1300     "Modified: / 24-08-2010 / 20:17:07 / Jan Vrany <enter your email here>"
  1374     "Modified: / 24-08-2010 / 20:17:07 / Jan Vrany <enter your email here>"
  1301     "Created: / 04-07-2011 / 18:27:34 / cg"
  1375     "Created: / 04-07-2011 / 18:27:34 / cg"
       
  1376     "Modified: / 07-08-2011 / 16:14:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
  1302 !
  1377 !
  1303 
  1378 
  1304 makeDependent
  1379 makeDependent
  1305     Smalltalk addDependent:self.
  1380     Smalltalk addDependent:self.
  1306     ChangeSet addDependent:self.
  1381     ChangeSet addDependent:self.
  1922 ! !
  1997 ! !
  1923 
  1998 
  1924 !ClassList class methodsFor:'documentation'!
  1999 !ClassList class methodsFor:'documentation'!
  1925 
  2000 
  1926 version_CVS
  2001 version_CVS
  1927     ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassList.st,v 1.55 2011-07-29 10:56:30 vrany Exp $'
  2002     ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassList.st,v 1.56 2011-08-07 18:40:45 vrany Exp $'
  1928 ! !
  2003 ! !