ProjectBrowser.st
changeset 1096 7efff9ca044f
parent 1095 660185e02224
child 1097 c89241e215a4
equal deleted inserted replaced
1095:660185e02224 1096:7efff9ca044f
  2223     self listOfRequiredProjectsInPrerequisites add:sel.
  2223     self listOfRequiredProjectsInPrerequisites add:sel.
  2224     self listOfAllProjectsInPrerequisites remove:sel.
  2224     self listOfAllProjectsInPrerequisites remove:sel.
  2225     self selectedProjectInPrerequisites value:nil.
  2225     self selectedProjectInPrerequisites value:nil.
  2226 !
  2226 !
  2227 
  2227 
       
  2228 browseClasses
       
  2229     |ns p classes nBad|
       
  2230 
       
  2231     p := self currentProject.
       
  2232     classes := p classes
       
  2233                 collect:[:clsOrName |
       
  2234                             |cls|
       
  2235 
       
  2236                             clsOrName isSymbol ifTrue:[
       
  2237                                 cls := Smalltalk at:clsOrName
       
  2238                             ] ifFalse:[
       
  2239                                 cls := clsOrName
       
  2240                             ].
       
  2241                             cls
       
  2242                         ].
       
  2243     nBad := classes inject:0 into:[:sum :el | el isNil ifTrue:[sum+1] ifFalse:[sum]].
       
  2244     nBad ~~ 0 ifTrue:[
       
  2245         classes := classes select:[:cls | cls notNil].
       
  2246         self warn:('Oops - %1 classes could not be found.' bindWith:nBad).
       
  2247     ].
       
  2248 
       
  2249 
       
  2250     SystemBrowser
       
  2251         browseClasses:classes title:('Classes in ' , p name) sort:true.
       
  2252 
       
  2253 
       
  2254 
       
  2255 !
       
  2256 
  2228 cancel
  2257 cancel
  2229     "reload aspects from the project"
  2258     "reload aspects from the project"
  2230 
  2259 
  2231     self readAspectsFromProject
  2260     self readAspectsFromProject
  2232 !
  2261 !
  2250 
  2279 
  2251     |p ns cls|
  2280     |p ns cls|
  2252 
  2281 
  2253     p := self currentProject.
  2282     p := self currentProject.
  2254     ns := p defaultNameSpace.
  2283     ns := p defaultNameSpace.
  2255     p classInfo do:[:clsInfo |
  2284 
  2256         |clsName clsFileName|
  2285     self withReadCursorDo:[
  2257 
  2286         "/ read once ...
  2258         clsName := clsInfo className.
  2287         p classInfo do:[:clsInfo |
  2259         clsFileName := clsInfo classFileName.
  2288             |clsName clsFileName|
  2260         clsFileName isNil ifTrue:[clsFileName := clsName , '.st'].
  2289 
  2261 
  2290             clsName := clsInfo className.
  2262         clsName isSymbol ifTrue:[
  2291             clsFileName := clsInfo classFileName.
  2263             cls := ns at:clsName.
  2292             clsFileName isNil ifTrue:[clsFileName := clsName , '.st'].
  2264             cls isNil ifTrue:[
  2293 
  2265                 "/ ok - really not yet loaded.
  2294             clsName isSymbol ifTrue:[
       
  2295                 cls := ns at:clsName.
       
  2296                 cls isNil ifTrue:[
       
  2297                     "/ ok - really not yet loaded.
       
  2298                     Transcript showCR:'loading ' , (p directory asFilename construct:clsFileName) pathName , ' ...'.
       
  2299                     Smalltalk fileIn:(p directory asFilename construct:clsFileName)
       
  2300                 ] ifFalse:[
       
  2301                     self halt
       
  2302                 ].
       
  2303             ] ifFalse:[
       
  2304                 self halt
       
  2305             ].
       
  2306         ].
       
  2307 
       
  2308         "/ read again; if the load order was not correct,
       
  2309         "/ this will fix things (i.e. nil superclasses ...)
       
  2310         
       
  2311         p classInfo do:[:clsInfo |
       
  2312             |clsName clsFileName|
       
  2313 
       
  2314             clsName := clsInfo className.
       
  2315             clsFileName := clsInfo classFileName.
       
  2316             clsFileName isNil ifTrue:[clsFileName := clsName , '.st'].
       
  2317 
       
  2318             clsName isSymbol ifTrue:[
  2266                 Transcript showCR:'loading ' , (p directory asFilename construct:clsFileName) pathName , ' ...'.
  2319                 Transcript showCR:'loading ' , (p directory asFilename construct:clsFileName) pathName , ' ...'.
  2267                 Smalltalk fileIn:(p directory asFilename construct:clsFileName)
  2320                 Smalltalk fileIn:(p directory asFilename construct:clsFileName)
  2268             ] ifFalse:[
  2321             ] ifFalse:[
  2269                 self halt
  2322                 self halt
  2270             ].
  2323             ].
  2271         ] ifFalse:[
       
  2272             self halt
       
  2273         ].
  2324         ].
  2274     ].
  2325     ].
  2275 
  2326 
  2276     self halt.
  2327     self halt.
  2277 
  2328 
  2278 !
  2329 !
  2279 
  2330 
  2280 loadFromProjectFile:aFilenameString
  2331 loadFromProjectFile:aFilenameString
  2281     |newProject|
  2332     |newProject|
  2282 
  2333 
  2283     newProject := Project new loadFromProjectFile:aFilenameString.
  2334     self withReadCursorDo:[
  2284     newProject notNil ifTrue:[
  2335         newProject := Project new loadFromProjectFile:aFilenameString.
  2285         self newProject:newProject
  2336         newProject notNil ifTrue:[
       
  2337             self newProject:newProject
       
  2338         ]
  2286     ]
  2339     ]
  2287 !
  2340 !
  2288 
  2341 
  2289 makeCurrentProject
  2342 makeCurrentProject
  2290     "make the selected Project the current project"
  2343     "make the selected Project the current project"