kludge to raise the ui-painters control window
authorClaus Gittinger <cg@exept.de>
Wed, 09 Jun 2004 12:03:04 +0200
changeset 1850 410f98d259b7
parent 1849 1209223c6d30
child 1851 d036350188f5
kludge to raise the ui-painters control window
UIPainter.st
--- a/UIPainter.st	Mon Jun 07 16:44:47 2004 +0200
+++ b/UIPainter.st	Wed Jun 09 12:03:04 2004 +0200
@@ -3158,15 +3158,13 @@
     ]
 !
 
-openInterface:aSymbol
+openInterface:aSymbol 
     "opens the interface on the selector aSymbol"
-
+    
     |cls painterView painter topView galleryWindow icon name|
 
     modified := false.
-
     aspects := IdentityDictionary new.
-
     specClass notNil ifTrue:[
         specClass isBehavior ifTrue:[
             name := specClass nameWithoutPrefix.
@@ -3174,12 +3172,9 @@
             name := specClass printString string
         ]
     ].
-
-    aspects at:#classNameChannel put:(
-        (specClass notNil ifTrue:[specClass]
-                         ifFalse:['NewApplication']) asValue
-    ).
-
+    aspects at:#classNameChannel
+        put:((specClass notNil ifTrue:[ specClass ] ifFalse:[ 'NewApplication' ]) 
+                asValue).
     specSuperclass isNil ifTrue:[
         specClass notNil ifTrue:[
             (cls := self resolveName:specClass) notNil ifTrue:[
@@ -3187,67 +3182,57 @@
             ]
         ]
     ].
-    aspects at:#superclassNameChannel put:(
-        (specSuperclass notNil ifTrue:[specSuperclass]
-                         ifFalse:['ApplicationModel']) asValue
-    ).
-    aspects at:#superclassNameDefaults put:#('ApplicationModel' 'SimpleDialog') asValue.
-    aspects at:#methodNameChannel put:(
-        (specSelector notNil ifTrue:[specSelector asValue]
-                            ifFalse:[#windowSpec]) asValue
-    ).
-
-    "/ the canvas ...
-
-    treeView    := TreeView new.
+    aspects at:#superclassNameChannel
+        put:((specSuperclass notNil 
+                ifTrue:[ specSuperclass ]
+                ifFalse:[ 'ApplicationModel' ]) asValue).
+    aspects at:#superclassNameDefaults
+        put:#( 'ApplicationModel' 'SimpleDialog' ) asValue.
+    aspects at:#methodNameChannel
+        put:((specSelector notNil 
+                ifTrue:[ specSelector asValue ]
+                ifFalse:[ #windowSpec ]) asValue).
+    treeView := TreeView new.
     treeView windowSpecClass:(self defaultWindowSpecClass).
-    treeView selectConditionBlock:[:newSelection | self selectionChangeAllowed:newSelection].
-
+    treeView 
+        selectConditionBlock:[:newSelection | self selectionChangeAllowed:newSelection ].
     painterView := StandardSystemView new.
-
     name := name ? UIPainter defaultNameOfCanvas.
-
-    painterView name: name.
-    painterView label: name.
-    painterView extent:(treeView windowSpecClass defaultExtentInUIPainter). "/ 300@300.
-
+    painterView name:name.
+    painterView label:name.
+    painterView extent:(treeView windowSpecClass defaultExtentInUIPainter).
     painter := UIPainterView in:painterView.
     painter layout:(0.0 @ 0.0 corner:1.0 @ 1.0) asLayout.
-
     treeView := treeView canvas:painter specName:name.
     painter treeView:treeView.
     treeView model addDependent:self.
-
     super openInterface:aSymbol.
-
     topView := self window.
     topView label:'GUI Painter'.
-
     painterView openInGroup:(topView windowGroup).
     painterView application:self.
-
-    "/ the selectionPanel ...
-
     selectionPanel := self selectionPanelClass new.
     selectionPanel allButOpenInterface:#windowSpec.
-    (galleryWindow := selectionPanel window) openInGroup:(topView windowGroup).
+    (galleryWindow := selectionPanel window) 
+        openInGroup:(topView windowGroup).
     selectionPanel masterApplication:self.
-
     icon := Smalltalk imageFromFileNamed:'UIPainter.xbm' forClass:self class.
     topView iconLabel:'GUI Painter'.
     topView icon:icon.
-
     painterView iconLabel:'GUI Canvas'.
     painterView icon:icon.
-
+    
+"/    painterView topView raise.
     topView bePartner.
     painterView bePartner.
     galleryWindow bePartner.
-
     galleryWindow iconLabel:'GUI Gallery'.
     galleryWindow icon:icon.
 
-    painterView topView raise.
+    selectionPanel window waitUntilVisible.
+    painterView window waitUntilVisible.
+    self window waitUntilVisible.
+    [ Delay waitForSeconds:0.5. self window topView raise ] fork.
 !
 
 openOnClass:aClass
@@ -3859,20 +3844,16 @@
 
 doSave
     "saves the window spec"
-
+    
     |code painter cls|
 
     self askForSectionModification.
-
     self hasSpecClassAndSelector ifFalse:[
-        self doDefineClassAndSelector isNil ifTrue: [^nil]
+        self doDefineClassAndSelector isNil ifTrue:[
+            ^ nil
+        ]
     ].
-
-    (specClass notNil and: [(cls := Smalltalk at: specClass asSymbol) isClass]) ifFalse:[   
-        self warn:('Oops - cannot save - class not found: ' , specClass).
-        ^nil
-    ].
-
+    
 "/    specClass notNil ifTrue:[
 "/        (specClass includes:$:) ifFalse:[
 "/            (ns := Smalltalk defaultNameSpace) notNil ifTrue:[
@@ -3898,26 +3879,28 @@
 "/    ] ifFalse:[
 "/        specClass := cls name.
 "/    ].
-
+    (specClass notNil 
+        and:[ (cls := Smalltalk at:specClass asSymbol) isClass ]) 
+            ifFalse:[
+                self warn:('Oops - cannot save - class not found: ' , specClass).
+                ^ nil
+            ].
     painter := self painter.
     painter 
         className:specClass
         superclassName:specSuperclass
         selector:specSelector.
-
+self halt.
     Transcript showCR:'generating windowSpec code...'.
-
     code := painter generateWindowSpecMethodSource withCRs.
     (ReadStream on:code) fileIn.
-
     self doGenerateAspectSelectorsMethod.
     self helpTool doSave.
     self updateInfoLabel.
-
     modified := false.
     painter resetModification.
-    (cls class includesSelector: specSelector) ifTrue:[
-        self addToHistory: (specClass, ' ', specSelector) -> #loadFromMessage:.
+    (cls class includesSelector:specSelector) ifTrue:[
+        self addToHistory:(specClass , ' ' , specSelector) -> #loadFromMessage:.
     ].
 !