isMeta/soleInstance -> theNonMetaclass
authorClaus Gittinger <cg@exept.de>
Mon, 05 Nov 2001 18:29:47 +0100
changeset 3358 62f807b57557
parent 3357 e6963bd9ba19
child 3359 2cc7eff866e4
isMeta/soleInstance -> theNonMetaclass
BrowserView.st
--- a/BrowserView.st	Mon Nov 05 14:53:20 2001 +0100
+++ b/BrowserView.st	Mon Nov 05 18:29:47 2001 +0100
@@ -3832,9 +3832,7 @@
         aStream := TextStream on:(String new:200).
 
         cls := acceptClass ? currentClass.
-        cls isMeta ifTrue:[
-            cls := cls soleInstance
-        ].
+        cls := cls theNonMetaclass.
 
         (cls isNameSpace and:[cls ~~ Smalltalk]) ifTrue:[
             cls fileOutDefinitionOn:aStream
@@ -3966,7 +3964,7 @@
         self normalLabel
     ]
 
-    "Modified: / 18.7.1998 / 22:52:50 / cg"
+    "Modified: / 5.11.2001 / 16:29:44 / cg"
 !
 
 classDerivedInstancesInspect
@@ -8020,10 +8018,7 @@
     self createMethodListViewIn:hpanel atX:0.66.
     self createCodeViewIn:vpanel atY:0.4.
 
-    cls := aClass.
-    cls isMeta ifTrue:[
-        cls := cls soleInstance
-    ].
+    cls := aClass theNonMetaclass.
     currentClassHierarchy := currentClass := actualClass := cls.
     self updateClassList.
     classListView setSelectElement:aClass name; makeSelectionVisible.
@@ -8035,7 +8030,7 @@
         self instanceProtocol:false
     ].
 
-    "Modified: / 15.9.1998 / 22:21:03 / cg"
+    "Modified: / 5.11.2001 / 16:33:43 / cg"
 !
 
 setupForClassList:aList
@@ -8146,10 +8141,7 @@
     self createMethodListViewIn:hpanel atX:0.66.
     self createCodeViewIn:vpanel atY:0.4.
 
-    cls := aClass.
-    cls isMeta ifTrue:[
-        cls := cls soleInstance
-    ].
+    cls := aClass theNonMetaclass.
     currentClassHierarchy := actualClass := acceptClass := currentClass := cls.
     fullProtocol := true.
 
@@ -8162,7 +8154,7 @@
         self instanceProtocol:false
     ].
 
-    "Modified: / 15.9.1998 / 22:20:06 / cg"
+    "Modified: / 5.11.2001 / 16:33:55 / cg"
 !
 
 setupForList:aList
@@ -9950,35 +9942,37 @@
 methodInvoke
     "invoke the current method"
 
-    |w cls sel|
+    |w cls sel rec|
 
     self checkMethodSelected ifFalse:[^ self].
 
     w := currentMethod who.
     w notNil ifTrue:[
-	cls := w methodClass.
-	cls notNil ifTrue:[
-	    cls ~~ actualClass ifTrue:[
-		^ self warn:'oops - obsolete class; please reselect class ...'
-	    ].
-	    cls isMeta ifTrue:[
-		cls := cls soleInstance
-	    ] ifFalse:[
-		cls := nil
-	    ].
-	    cls notNil ifTrue:[
-		sel := w methodSelector.
-		sel notNil ifTrue:[
-		    currentClass perform:sel.
-		    ^ self
-		]
-	    ]
-	].
+        cls := w methodClass.
+        cls notNil ifTrue:[
+            cls ~~ actualClass ifTrue:[
+                ^ self warn:'oops - obsolete class; please reselect the class.'
+            ].
+            cls isMeta ifFalse:[
+                (self confirm:'Instance method - Invoke on a new instance ?')
+                ifFalse:[
+                    ^ self
+                ].
+                rec := cls basicNew.
+            ] ifTrue:[
+                rec := cls
+            ].
+            sel := w methodSelector.
+            sel notNil ifTrue:[
+                rec perform:sel.
+                ^ self
+            ]
+        ].
     ]. 
-    self warn:'cannot invoke method (no class)'
+    self warn:'Cannot invoke method (no class)'
 
     "Modified: / 29.4.1997 / 11:24:30 / dq"
-    "Modified: / 29.10.1997 / 15:50:28 / cg"
+    "Modified: / 5.11.2001 / 16:33:11 / cg"
 !
 
 methodLocalSuperSends
@@ -12306,10 +12300,7 @@
             box makeTabable:b.
         
             fullProtocol ifTrue:[
-                cls := actualClass.
-                cls isMeta ifTrue:[
-                    cls := cls soleInstance
-                ]
+                cls := actualClass theNonMetaclass.
             ] ifFalse:[
                 cls := currentClass
             ].
@@ -12434,7 +12425,7 @@
     ]
 
     "Created: / 18.6.1998 / 16:39:44 / cg"
-    "Modified: / 12.10.2001 / 19:42:17 / cg"
+    "Modified: / 5.11.2001 / 16:29:14 / cg"
 !
 
 busyLabel:what with:someArgument
@@ -14922,6 +14913,6 @@
 !BrowserView class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/BrowserView.st,v 1.688 2001-10-22 08:22:55 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/BrowserView.st,v 1.689 2001-11-05 17:29:47 cg Exp $'
 ! !
 BrowserView initialize!