class vs. className confusion
authorClaus Gittinger <cg@exept.de>
Mon, 04 Sep 2006 11:06:49 +0200
changeset 2072 0b0a24d7b198
parent 2071 54af4d66b0fa
child 2073 df9bd2816495
class vs. className confusion
UIPainter.st
--- a/UIPainter.st	Wed Aug 30 15:23:07 2006 +0200
+++ b/UIPainter.st	Mon Sep 04 11:06:49 2006 +0200
@@ -2459,7 +2459,7 @@
         applBuilder := helpTool builder.
         applWindow  := ApplicationSubView origin:0.0@0.0 corner:1.0@1.0 in:noteBook.
         applWindow level:0.
-        helpTool loadFromClass:specClassName.
+        helpTool loadFromClass:specClass.
         helpTool masterApplication:self.
         applBuilder window:applWindow.
         applWindow client:helpTool spec:#innerSpec builder:applBuilder.
@@ -2480,6 +2480,8 @@
         specTool modifiedHolder:modifiedChannel.
     ].
     ^ noteBook
+
+    "Modified: / 31-08-2006 / 10:11:15 / cg"
 !
 
 painterShown
@@ -2923,11 +2925,11 @@
 defaultInfoLabel
     "returns the default info label"
 
-    specClassName isNil ifTrue: [^'No class and selector defined.'].
+    specClassName isNil ifTrue: [^'No class defined.'].
     specSelector isNil ifTrue: [^'No selector defined.'].
     ^ specClassName printString, ' >> ', specSelector
 
-    "Modified: / 20.6.1998 / 16:49:16 / cg"
+    "Modified: / 31-08-2006 / 10:12:03 / cg"
 ! !
 
 !UIPainter methodsFor:'help spec'!
@@ -3214,11 +3216,12 @@
     specSuperclassName := superClassName.
 
     (specClassName notNil and:[ selector notNil ]) ifTrue:[
-        self addHistoryEntryForClass:specClassName selector:specSelector.
+        self addHistoryEntryForClass:specClass selector:specSelector.
         self updateInfoLabel
     ].
 
-    "Modified: / 5.2.1998 / 09:44:58 / stefan"
+    "Modified: / 05-02-1998 / 09:44:58 / stefan"
+    "Modified: / 31-08-2006 / 10:14:49 / cg"
 !
 
 setViewInLayoutTool:aView spec:aSpec
@@ -3233,15 +3236,31 @@
 
 !
 
+specClass
+    specClass isNil ifTrue:[
+        specClassName notNil ifTrue:[
+            specClass := Smalltalk classNamed:specClassName.
+        ]
+    ].
+    ^ specClass
+
+    "Created: / 31-08-2006 / 10:08:43 / cg"
+    "Modified: / 04-09-2006 / 10:39:21 / cg"
+!
+
 specClass:aClassOrClassName
     "sets the specClass and updates the Help Tool"
 
     aClassOrClassName isBehavior 
-        ifTrue: [ specClassName := aClassOrClassName ]
-        ifFalse:[ specClassName := Smalltalk classNamed:aClassOrClassName ].
-
-    self helpTool loadFromClass:specClassName.    
-    self clearModifiedFlag. 
+        ifTrue: [ specClass := aClassOrClassName.
+                  specClassName := aClassOrClassName name ]
+        ifFalse:[ specClass := Smalltalk classNamed:aClassOrClassName.
+                  specClassName := aClassOrClassName ].
+
+    self helpTool loadFromClass:specClass.    
+    self clearModifiedFlag.
+
+    "Modified: / 31-08-2006 / 10:10:22 / cg"
 ! !
 
 !UIPainter methodsFor:'private-tools'!
@@ -3564,10 +3583,7 @@
 
     |cls sel|
 
-    cls := specClassName.
-    cls isString ifTrue:[
-        cls := Smalltalk at:(cls string asSymbol)
-    ].
+    cls := self specClass.
     sel := specSelector.
     cls notNil ifTrue:[
         self setClass:cls selector:sel.
@@ -3590,7 +3606,7 @@
 
     self updateInfoLabel.
 
-    "Modified: / 22.8.1998 / 17:41:34 / cg"
+    "Modified: / 31-08-2006 / 10:12:53 / cg"
 !
 
 loadFromClass:aClass andSelector:selector
@@ -3624,7 +3640,7 @@
     
     |cls topView galleryWindow icon name|
 
-    specClassName notNil ifTrue:[
+    self specClass notNil ifTrue:[
         specClassName isBehavior ifTrue:[
             name := specClassName nameWithoutPrefix.
         ] ifFalse:[
@@ -3700,6 +3716,8 @@
     painterView window waitUntilVisible.
     self window waitUntilVisible.
     [ Delay waitForSeconds:0.5. self window topView raise ] fork.
+
+    "Modified: / 31-08-2006 / 10:13:16 / cg"
 !
 
 openOnClass:aClass
@@ -3717,14 +3735,15 @@
     ].
 
     specSelector := aSelector.
-    specClassName := aClass.
+    specClass := aClass.
+    specClassName := aClass name.
 
     self openInterface.
 
 "/    specSelector := aSelector.
 "/    specClass := aClass.
 
-    "Modified: / 21.8.1998 / 20:59:15 / cg"
+    "Modified: / 31-08-2006 / 10:13:31 / cg"
 !
 
 postBuildWith: aBuilder
@@ -4221,12 +4240,14 @@
     self askForModification ifFalse: [^nil].
 
     self loadFromMessage: 
-	(ResourceSelectionBrowser
-	    request: 'Load Window Spec From Class'
-	    onSuperclass: nil
-	    andClass: specClassName
-	    andSelector: specSelector ? #windowSpec
-	    withResourceTypes: #(canvas))
+        (ResourceSelectionBrowser
+            request: 'Load Window Spec From Class'
+            onSuperclass: nil
+            andClass: self specClass
+            andSelector: specSelector ? #windowSpec
+            withResourceTypes: #(canvas))
+
+    "Modified: / 31-08-2006 / 10:14:01 / cg"
 !
 
 doLoadSubspec
@@ -4239,7 +4260,7 @@
     classAndSelector := ResourceSelectionBrowser
             request: 'Load Subspec From Class'
             onSuperclass: nil
-            andClass: specClassName
+            andClass: self specClass
             andSelector: specSelector
             withResourceTypes: #(canvas).
 
@@ -4253,13 +4274,15 @@
     (class respondsTo:selector) ifTrue:[
         self addWidgetOfSpec:(Array with: (UISubSpecification new majorKey: class name; minorKey: selector))
     ]
+
+    "Modified: / 31-08-2006 / 10:13:56 / cg"
 !
 
 doNew
     "removes all widgets, specClass, and specSelector"
 
     self askForModification ifFalse: [^nil].
-    specClassName := specSelector := nil.
+    specClass := specClassName := specSelector := nil.
     self painter removeAll.
     treeView canvas topView name:  UIPainter defaultNameOfCanvas.
     treeView canvas topView label: UIPainter defaultNameOfCanvas.
@@ -4268,6 +4291,8 @@
     treeView selectedNode changed.
     self tabModel value: self tabList value first.
     self updateInfoLabel.
+
+    "Modified: / 31-08-2006 / 10:14:10 / cg"
 !
 
 doOpenWidgetDocumentation