autoload class owner if required
authorClaus Gittinger <cg@exept.de>
Mon, 22 Sep 2008 13:14:36 +0200
changeset 8272 cd6b675fc5fd
parent 8271 73a159c22bdf
child 8273 ab37b03883e0
autoload class owner if required
ChangesBrowser.st
--- a/ChangesBrowser.st	Mon Sep 22 12:42:06 2008 +0200
+++ b/ChangesBrowser.st	Mon Sep 22 13:14:36 2008 +0200
@@ -3910,7 +3910,7 @@
     "answer the class that is subject to the chamge at changeNr.
      The classes owning class may be autoloaded, if autoloadAsRequired is true."
 
-    |className cls isMeta nameSpaceForApply|
+    |className cls isMeta nameSpaceForApply path ownerName owner|
 
     className := self realClassNameOfChange:changeNr.
     className isNil ifTrue:[
@@ -3923,6 +3923,17 @@
         isMeta := true.
     ].
 
+    autoloadAsRequired value ifTrue:[        
+        path := className asCollectionOfSubstringsSeparatedByAll:'::'.
+        path size > 2 ifTrue:[
+            "/ ensure that the owningClass is loaded - this will load the private classes as well
+            "/ Transcript showCR:'loading owner'.
+            ownerName := path first,'::',path second.
+            owner := Smalltalk classNamed:ownerName.
+            owner autoload.
+        ].
+    ].
+
     nameSpaceForApply := self nameSpaceForApply.
     autoloadAsRequired value ifTrue:[        
         cls := nameSpaceForApply classNamed:className.
@@ -5990,5 +6001,5 @@
 !ChangesBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.378 2008-06-03 18:48:11 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.379 2008-09-22 11:14:36 cg Exp $'
 ! !