# HG changeset patch # User Claus Gittinger # Date 1140022173 -3600 # Node ID 5528c812da8feabaa91d7eeb4e6a952b34267f6d # Parent a60283327f16c1767523613cb1b4d9ed42942dc6 *** empty log message *** diff -r a60283327f16 -r 5528c812da8f UIPainter.st --- 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:[