UIPainter.st
changeset 1983 5528c812da8f
parent 1976 969584dd8beb
child 1991 feaad07cb3cf
--- a/UIPainter.st	Wed Feb 15 17:49:23 2006 +0100
+++ b/UIPainter.st	Wed Feb 15 17:49:33 2006 +0100
@@ -14,7 +14,7 @@
 "{ Package: 'stx:libtool2' }"
 
 ToolApplicationModel subclass:#UIPainter
-	instanceVariableNames:'specClass specSelector specSuperclassName aspects treeView
+	instanceVariableNames:'specClassName specSelector specSuperclassName aspects treeView
 		selectionPanel tabSelection modified specTool layoutTool helpTool'
 	classVariableNames:''
 	poolDictionaries:''
@@ -2430,10 +2430,10 @@
         applBuilder := helpTool builder.
         applWindow  := ApplicationSubView origin:0.0@0.0 corner:1.0@1.0 in:noteBook.
         applWindow level:0.
-        helpTool loadFromClass:specClass.
+        helpTool loadFromClass:specClassName.
         helpTool masterApplication:self.
         applBuilder window:applWindow.
-        applWindow client:helpTool spec:#windowSpec builder:applBuilder.
+        applWindow client:helpTool spec:#innerSpec builder:applBuilder.
         applBuilder window:applWindow.
         helpTool modifiedHolder:modifiedChannel.
 
@@ -2515,8 +2515,8 @@
 
     |cls editor specTool columnHolder tableSelector columns|
 
-    (cls := self resolveName:specClass) isNil ifTrue:[
-        self askForSaving ifTrue:[cls := self resolveName:specClass].
+    (cls := self resolveName:specClassName) isNil ifTrue:[
+        self askForSaving ifTrue:[cls := self resolveName:specClassName].
     ].
     cls isNil ifTrue:[^ self].
 
@@ -2574,8 +2574,8 @@
 
     |cls selectorOrMenu editor selectedSpec spec holder|
 
-    (cls := self resolveName:specClass) isNil ifTrue:[
-        self askForSaving ifTrue:[cls := self resolveName:specClass].
+    (cls := self resolveName:specClassName) isNil ifTrue:[
+        self askForSaving ifTrue:[cls := self resolveName:specClassName].
     ].
     cls isNil ifTrue:[^ self].
 
@@ -2623,7 +2623,7 @@
 
     |selector editor spec|
 
-    (self resolveName:specClass) isNil ifTrue:[
+    (self resolveName:specClassName) isNil ifTrue:[
 	self askForSaving ifFalse: [^self]
     ].
 
@@ -2634,7 +2634,7 @@
 
     editor := HierarchicalListEditor new.
     editor masterApplication:self.
-    editor openModalOnClass:specClass andSelector:selector.
+    editor openModalOnClass:specClassName andSelector:selector.
 
     editor specSelector ~= selector ifTrue:[
 	editor hasSaved ifTrue:[
@@ -2652,16 +2652,16 @@
 
     |spec cls meta sel|
 
-    (self resolveName:specClass) isNil ifTrue:[
+    (self resolveName:specClassName) isNil ifTrue:[
         self askForSaving ifFalse: [^self]
     ]. 
 
     spec := self specTool specification.
     cls := spec majorKey.
     cls isNil ifTrue:[
-        cls := specClass.
+        cls := specClassName.
     ].
-    (cls := self resolveName:cls inClass:(Smalltalk at: specClass asSymbol)) isNil ifTrue:[
+    (cls := self resolveName:cls inClass:(Smalltalk at: specClassName asSymbol)) isNil ifTrue:[
         spec majorKey isNil ifTrue:[
             ^ self warn:'Cannot find class (no majorKey specified).'.
         ].
@@ -2685,8 +2685,8 @@
 
     |selector editor spec cls holder|
 
-    (cls := self resolveName:specClass) isNil ifTrue:[
-        self askForSaving ifTrue:[cls := self resolveName:specClass].
+    (cls := self resolveName:specClassName) isNil ifTrue:[
+        self askForSaving ifTrue:[cls := self resolveName:specClassName].
     ].
     cls isNil ifTrue:[^ self].
 
@@ -2901,9 +2901,9 @@
 defaultInfoLabel
     "returns the default info label"
 
-    specClass isNil ifTrue: [^'No class and selector defined.'].
+    specClassName isNil ifTrue: [^'No class and selector defined.'].
     specSelector isNil ifTrue: [^'No selector defined.'].
-    ^specClass printString, ' >> ', specSelector
+    ^specClassName printString, ' >> ', specSelector
 
     "Modified: / 20.6.1998 / 16:49:16 / cg"
 ! !
@@ -3035,9 +3035,9 @@
 
     |superclass cls|
 
-    specClass isNil ifTrue:[^ false].
-
-    cls := self resolveName:specClass.
+    specClassName isNil ifTrue:[^ false].
+
+    cls := self resolveName:specClassName.
 
     cls isNil ifTrue:[
         superclass := self resolveName:specSuperclassName.
@@ -3047,24 +3047,24 @@
             ^ false.
         ].
 
-        (self confirm:'Create class ' , specClass asBoldText, '?') ifTrue:[
+        (self confirm:'Create class ' , specClassName asBoldText, '?') ifTrue:[
             cls := superclass 
-                        subclass:(specClass asSymbol)
+                        subclass:(specClassName asSymbol)
                         instanceVariableNames:''
                         classVariableNames:''
                         poolDictionaries:''
                         category:'Applications'.
 
-            cls name ~= specClass ifTrue:[
+            cls name ~= specClassName ifTrue:[
                 self information:'Created new class is ' , cls name.
-                specClass := cls name
+                specClassName := cls name
             ].
             ^ true.
         ].
         ^ false.
     ].
     cls isBehavior ifFalse:[
-        self warn:'A global named ' , specClass , ' exists, but it is no class.'.
+        self warn:'A global named ' , specClassName , ' exists, but it is no class.'.
         ^ false.
     ].
 
@@ -3085,7 +3085,7 @@
         ].
 
         (cls isSubclassOf:superclass) ifFalse:[
-            self information:('A global named ' , specClass , ' exists,\' ,
+            self information:('A global named ' , specClassName , ' exists,\' ,
                               'but is not a subclass of ' , superclass name , '.\\' ,
                               'Check and try again if that is not what you want.') withCRs.
         ]
@@ -3159,8 +3159,8 @@
     specSelector := (selector ? '').
     specSuperclassName := superClassName.
 
-    (specClass notNil and:[ selector notNil ]) ifTrue:[
-        self addHistoryEntryForClass:specClass selector:specSelector.
+    (specClassName notNil and:[ selector notNil ]) ifTrue:[
+        self addHistoryEntryForClass:specClassName selector:specSelector.
         self updateInfoLabel
     ].
 
@@ -3183,10 +3183,10 @@
     "sets the specClass and updates the Help Tool"
 
     aClassOrClassName isBehavior 
-        ifTrue: [ specClass := aClassOrClassName ]
-        ifFalse:[ specClass := Smalltalk classNamed:aClassOrClassName ].
-
-    self helpTool loadFromClass:specClass.    
+        ifTrue: [ specClassName := aClassOrClassName ]
+        ifFalse:[ specClassName := Smalltalk classNamed:aClassOrClassName ].
+
+    self helpTool loadFromClass:specClassName.    
     self clearModifiedFlag. 
 ! !
 
@@ -3224,7 +3224,7 @@
 hasSpecClass
     "answers whether an application class is defined"
 
-    ^ (self resolveName:specClass) notNil
+    ^ (self resolveName:specClassName) notNil
 !
 
 hasSpecClassAndSelector
@@ -3498,6 +3498,14 @@
     ].
 !
 
+initialize
+    super initialize.
+
+    modified := false.
+    aspects := IdentityDictionary new.
+    aspects at:#classNameChannel put:'NewApplication' asValue.
+!
+
 loadFromClass:aClass andSelector:selector
     "loads a window spec by evaluating aMessageString
      (which is something like 'fooClass windowSpec')"
@@ -3529,22 +3537,18 @@
     
     |cls painterView painter topView galleryWindow icon name|
 
-    modified := false.
-    aspects := IdentityDictionary new.
-    specClass notNil ifTrue:[
-        specClass isBehavior ifTrue:[
-            name := specClass nameWithoutPrefix.
+    specClassName notNil ifTrue:[
+        specClassName isBehavior ifTrue:[
+            name := specClassName nameWithoutPrefix.
         ] ifFalse:[
-            name := specClass printString string
+            name := specClassName printString string
         ]
     ].
-    aspects at:#classNameChannel
-        put:((specClass notNil ifTrue:[ specClass ] ifFalse:[ 'NewApplication' ]) 
-                asValue).
+    (aspects at:#classNameChannel) value:(specClassName ? 'NewApplication').
 
     specSuperclassName isNil ifTrue:[
-        specClass notNil ifTrue:[
-            (cls := self resolveName:specClass) notNil ifTrue:[
+        specClassName notNil ifTrue:[
+            (cls := self resolveName:specClassName) notNil ifTrue:[
                 specSuperclassName := cls superclass name.
             ]
         ]
@@ -3620,7 +3624,7 @@
     ].
 
     specSelector := aSelector.
-    specClass := aClass.
+    specClassName := aClass.
 
     self openInterface.
 
@@ -3638,13 +3642,13 @@
 
     super postBuildWith:aBuilder.
 
-    cls := specClass.
+    cls := specClassName.
     cls isString ifTrue:[
         cls := Smalltalk at:(cls string asSymbol)
     ].
     sel := specSelector.
     specSelector := nil.
-    specClass    := nil.
+    specClassName    := nil.
 
     painter  := self painter.
     settings := self class settings.
@@ -3874,7 +3878,7 @@
         self warn:'The current window spec has not yet been saved!!\\The System Browser will show the code of the old window spec.' withCRs.
     ].
 
-    UserPreferences systemBrowserClass openInClass:(self resolveName:specClass)
+    UserPreferences systemBrowserClass openInClass:(self resolveName:specClassName)
 !
 
 doBrowseViewClass
@@ -3910,26 +3914,26 @@
     [
         again := false.
 
-        aspects at:#classNameChannel      put:(specClass      ? 'NewApplication')   asValue.
+        aspects at:#classNameChannel      put:(specClassName      ? 'NewApplication')   asValue.
         aspects at:#methodNameChannel     put:(specSelector   ? 'windowSpec')       asValue.
         aspects at:#superclassNameChannel put:(specSuperclassName ? 'ApplicationModel') asValue.
 
         (self openDialogInterface:#dialogSpecForDefiningClassAndSelector) ifTrue:[
-            specClass      := readFromModelKeyed value:#classNameChannel.
+            specClassName      := readFromModelKeyed value:#classNameChannel.
             specSelector   := readFromModelKeyed value:#methodNameChannel.
             specSuperclassName := readFromModelKeyed value:#superclassNameChannel.
 
             (again := self checkClassAndSelector not) ifFalse:[
-                self painter className:specClass
+                self painter className:specClassName
                         superclassName:specSuperclassName
                               selector:specSelector.
             ].
 
             again ifFalse:[
-                ((Smalltalk at:specClass asSymbol) notNil
-                and:[ (Smalltalk at:specClass asSymbol) class includesSelector:specSelector ])
+                ((Smalltalk at:specClassName asSymbol) notNil
+                and:[ (Smalltalk at:specClassName asSymbol) class includesSelector:specSelector ])
                 ifTrue:[
-                    (self confirm:('%1 already implements %2. Overwrite ?' bindWith:specClass with:specSelector))
+                    (self confirm:('%1 already implements %2. Overwrite ?' bindWith:specClassName with:specSelector))
                     ifFalse:[
                         again := true.
                     ].
@@ -3941,11 +3945,11 @@
 
     ] doWhile:[again].
 
-    specClass := specClass isBehavior ifTrue:[specClass name]
-                                      ifFalse:[specClass].
+    specClassName := specClassName isBehavior ifTrue:[specClassName name]
+                                      ifFalse:[specClassName].
 
     self clearModifiedFlag.
-    self helpTool buildAndMergeFromClass:specClass.
+    self helpTool buildAndMergeFromClass:specClassName.
     self updateInfoLabel
 
     "Modified: / 16.7.1998 / 18:26:33 / cg"
@@ -4138,7 +4142,7 @@
 	(ResourceSelectionBrowser
 	    request: 'Load Window Spec From Class'
 	    onSuperclass: nil
-	    andClass: specClass
+	    andClass: specClassName
 	    andSelector: specSelector ? #windowSpec
 	    withResourceTypes: #(canvas))
 !
@@ -4153,14 +4157,14 @@
     classAndSelector := ResourceSelectionBrowser
             request: 'Load Subspec From Class'
             onSuperclass: nil
-            andClass: specClass
+            andClass: specClassName
             andSelector: specSelector
             withResourceTypes: #(canvas).
 
     classAndSelector isNil ifTrue:[^ self].
     class := classAndSelector methodClass.
     selector := classAndSelector methodSelector.
-    (class == specClass and: [selector == specSelector]) ifTrue: [
+    (class == specClassName and: [selector == specSelector]) ifTrue: [
         self warn: 'Current interface as subspec not allowed!!'.
         ^ self.
     ].
@@ -4173,7 +4177,7 @@
     "removes all widgets, specClass, and specSelector"
 
     self askForModification ifFalse: [^nil].
-    specClass := specSelector := nil.
+    specClassName := specSelector := nil.
     self painter removeAll.
     treeView canvas topView name:  UIPainter defaultNameOfCanvas.
     treeView canvas topView label: UIPainter defaultNameOfCanvas.
@@ -4231,13 +4235,13 @@
         ]
     ].
     
-    (specClass notNil and:[ specClass isClass ]) ifFalse:[
-        self warn:('Oops - cannot save - class not found: ' , specClass).
+    (specClassName notNil and:[ specClassName isClass ]) ifFalse:[
+        self warn:('Oops - cannot save - class not found: ' , specClassName).
         ^ nil
     ].
     painter := self painter.
     painter 
-        class:specClass
+        class:specClassName
         superclassName:specSuperclassName
         selector:specSelector.
 
@@ -4257,8 +4261,8 @@
     self updateInfoLabel.
     modified := false.
     painter resetModification.
-    (specClass respondsTo:specSelector) ifTrue:[
-        self addHistoryEntryForClass:specClass selector:specSelector.
+    (specClassName respondsTo:specSelector) ifTrue:[
+        self addHistoryEntryForClass:specClassName selector:specSelector.
     ].
 !
 
@@ -4273,7 +4277,7 @@
     classAndSelector := ResourceSelectionBrowser
             request: 'Save Window Spec In Class'
             onSuperclass: #Object
-            andClass: (specClass ? #ApplicationModel) asSymbol
+            andClass: (specClassName ? #ApplicationModel) asSymbol
             andSelector: specSelector ? #windowSpec
             withResourceTypes: #(canvas).
 
@@ -4282,9 +4286,9 @@
     modified := false.
     self painter resetModification.
 
-    specClass := classAndSelector methodClass.
+    specClassName := classAndSelector methodClass.
     specSelector := classAndSelector methodSelector.
-    specSuperclassName := specClass superclass name.
+    specSuperclassName := specClassName superclass name.
     self doSave.
     ^ true
 !
@@ -4310,9 +4314,9 @@
         ]
     ].
 
-    cls := self resolveName:specClass.
+    cls := self resolveName:specClassName.
     cls isNil ifTrue:[
-        self warn:'Oops cannot start application - no class:' , specClass.
+        self warn:'Oops cannot start application - no class:' , specClassName.
         ^ nil
     ].
     ((application := cls new) respondsTo:#openInterface:) ifFalse:[