--- a/ProjectBrowser.st Tue Mar 30 11:58:48 1999 +0200
+++ b/ProjectBrowser.st Tue Mar 30 19:44:55 1999 +0200
@@ -2225,6 +2225,35 @@
self selectedProjectInPrerequisites value:nil.
!
+browseClasses
+ |ns p classes nBad|
+
+ p := self currentProject.
+ classes := p classes
+ collect:[:clsOrName |
+ |cls|
+
+ clsOrName isSymbol ifTrue:[
+ cls := Smalltalk at:clsOrName
+ ] ifFalse:[
+ cls := clsOrName
+ ].
+ cls
+ ].
+ nBad := classes inject:0 into:[:sum :el | el isNil ifTrue:[sum+1] ifFalse:[sum]].
+ nBad ~~ 0 ifTrue:[
+ classes := classes select:[:cls | cls notNil].
+ self warn:('Oops - %1 classes could not be found.' bindWith:nBad).
+ ].
+
+
+ SystemBrowser
+ browseClasses:classes title:('Classes in ' , p name) sort:true.
+
+
+
+!
+
cancel
"reload aspects from the project"
@@ -2252,24 +2281,46 @@
p := self currentProject.
ns := p defaultNameSpace.
- p classInfo do:[:clsInfo |
- |clsName clsFileName|
-
- clsName := clsInfo className.
- clsFileName := clsInfo classFileName.
- clsFileName isNil ifTrue:[clsFileName := clsName , '.st'].
-
- clsName isSymbol ifTrue:[
- cls := ns at:clsName.
- cls isNil ifTrue:[
- "/ ok - really not yet loaded.
+
+ self withReadCursorDo:[
+ "/ read once ...
+ p classInfo do:[:clsInfo |
+ |clsName clsFileName|
+
+ clsName := clsInfo className.
+ clsFileName := clsInfo classFileName.
+ clsFileName isNil ifTrue:[clsFileName := clsName , '.st'].
+
+ clsName isSymbol ifTrue:[
+ cls := ns at:clsName.
+ cls isNil ifTrue:[
+ "/ ok - really not yet loaded.
+ Transcript showCR:'loading ' , (p directory asFilename construct:clsFileName) pathName , ' ...'.
+ Smalltalk fileIn:(p directory asFilename construct:clsFileName)
+ ] ifFalse:[
+ self halt
+ ].
+ ] ifFalse:[
+ self halt
+ ].
+ ].
+
+ "/ read again; if the load order was not correct,
+ "/ this will fix things (i.e. nil superclasses ...)
+
+ p classInfo do:[:clsInfo |
+ |clsName clsFileName|
+
+ clsName := clsInfo className.
+ clsFileName := clsInfo classFileName.
+ clsFileName isNil ifTrue:[clsFileName := clsName , '.st'].
+
+ clsName isSymbol ifTrue:[
Transcript showCR:'loading ' , (p directory asFilename construct:clsFileName) pathName , ' ...'.
Smalltalk fileIn:(p directory asFilename construct:clsFileName)
] ifFalse:[
self halt
].
- ] ifFalse:[
- self halt
].
].
@@ -2280,9 +2331,11 @@
loadFromProjectFile:aFilenameString
|newProject|
- newProject := Project new loadFromProjectFile:aFilenameString.
- newProject notNil ifTrue:[
- self newProject:newProject
+ self withReadCursorDo:[
+ newProject := Project new loadFromProjectFile:aFilenameString.
+ newProject notNil ifTrue:[
+ self newProject:newProject
+ ]
]
!