with modal support
authortz
Sat, 17 Jan 1998 00:25:04 +0100
changeset 415 f792d83774b3
parent 414 116cf2acebe3
child 416 d28e8c5f25f3
with modal support
ImageEditor.st
--- a/ImageEditor.st	Fri Jan 16 22:54:52 1998 +0100
+++ b/ImageEditor.st	Sat Jan 17 00:25:04 1998 +0100
@@ -55,17 +55,20 @@
 
     "self openModalOnClass: self andSelector: #newImageIcon"
 
-    |imageEditor className resourceClassName resourceSelector|                          
+    |imageEditor className resourceClassName resourceSelector|                      
     imageEditor := self new.
     aClass isClass ifTrue: [className := aClass name].
     aClass isString ifTrue: [className := aClass].      
 
-    imageEditor postOpenAction: [imageEditor loadFromMessage: className printString, ' ', aSelector].
+    imageEditor postOpenAction: [imageEditor loadFromOrPrepareForMessage: className, ' ', aSelector].
     imageEditor openModal.
 
     resourceClassName := imageEditor valueOfResourceClass value.
     resourceSelector := imageEditor valueOfResourceSelector value.
-    ^resourceClassName, ' ', resourceSelector
+
+    (className asString ~= resourceClassName) | (aSelector asString ~= resourceSelector)
+        ifTrue: [^resourceClassName, ' ', resourceSelector]
+        ifFalse:[^nil]
 !
 
 openOnClass: aClass andSelector: aSelector
@@ -524,11 +527,11 @@
           #'window:' 
            #(#WindowSpec
               #'name:' 'Image Editor'
-              #'layout:' #(#LayoutFrame 368 0 254 0 867 0 599 0)
+              #'layout:' #(#LayoutFrame 109 0 301 0 608 0 646 0)
               #'label:' 'Image Editor'
               #'min:' #(#Point 400 320)
               #'max:' #(#Point 1152 900)
-              #'bounds:' #(#Rectangle 368 254 868 600)
+              #'bounds:' #(#Rectangle 109 301 609 647)
               #'menu:' #menu
               #'usePreferredExtent:' false
           )
@@ -538,14 +541,14 @@
                #(
                  #(#MenuPanelSpec
                     #'name:' 'menuToolbarView'
-                    #'layout:' #(#LayoutFrame 0 0.0 0 0 0 1.0 34 0)
+                    #'layout:' #(#LayoutFrame 0 0.0 0 0 0 1.0 32 0)
                     #'menu:' #menuToolbar
                     #'style:' #(#FontDescription #helvetica #medium #roman 10)
                     #'showSeparatingLines:' true
                 )
                  #(#VariableHorizontalPanelSpec
                     #'name:' 'variableHorizontalPanel1'
-                    #'layout:' #(#LayoutFrame 0 0.0 36 0.0 0 1.0 -22 1.0)
+                    #'layout:' #(#LayoutFrame 0 0.0 34 0.0 0 1.0 -22 1.0)
                     #'component:' 
                      #(#SpecCollection
                         #'collection:' 
@@ -621,17 +624,17 @@
                                                         #'backgroundSelector:' #yourself
                                                     )
                                                      #(#DataSetColumnSpec
-                                                        #'label:' ' Red'
+                                                        #'label:' 'Red'
                                                         #'model:' #rowRedByte
                                                         #'canSelect:' false
                                                     )
                                                      #(#DataSetColumnSpec
-                                                        #'label:' ' Green'
+                                                        #'label:' 'Green'
                                                         #'model:' #rowGreenByte
                                                         #'canSelect:' false
                                                     )
                                                      #(#DataSetColumnSpec
-                                                        #'label:' ' Blue'
+                                                        #'label:' 'Blue'
                                                         #'model:' #rowBlueByte
                                                         #'canSelect:' false
                                                     )
@@ -692,6 +695,7 @@
                                                #(#InputFieldSpec
                                                   #'name:' 'resourceClassInputField'
                                                   #'activeHelpKey:' #classNameInputField
+                                                  #'enableChannel:' #valueOfOpenedStandAlone
                                                   #'model:' #valueOfResourceClass
                                                   #'immediateAccept:' false
                                                   #'extent:' #(#Point 129 21)
@@ -1246,6 +1250,20 @@
 
 !
 
+updateInputFields
+
+    self valueOfResourceSelector removeDependent: self.
+    self valueOfResourceSelector value: self imageEditView resourceSelector.
+    self valueOfResourceSelector addDependent: self.
+
+    self valueOfResourceClass removeDependent: self.
+    self imageEditView resourceClass notNil
+        ifTrue: [self valueOfResourceClass value: self imageEditView resourceClass]
+        ifFalse: [self valueOfResourceClass value: ''].
+    self valueOfResourceClass addDependent: self.
+
+!
+
 updateInputFieldsAndLabelsAndHistory
 
     self imageIsLoaded value: self image notNil.
@@ -1259,15 +1277,7 @@
     self valueOfFileName value: self image fileName.
     self valueOfFileName addDependent: self.
 
-    self valueOfResourceSelector removeDependent: self.
-    self valueOfResourceSelector value: self imageEditView resourceSelector.
-    self valueOfResourceSelector addDependent: self.
-
-    self valueOfResourceClass removeDependent: self.
-    self imageEditView resourceClass notNil
-        ifTrue: [self valueOfResourceClass value: self imageEditView resourceClass]
-        ifFalse: [self valueOfResourceClass value: ''].
-    self valueOfResourceClass addDependent: self.
+    self updateInputFields.
 
     self imageEditView resourceMessage asCollectionOfWords size = 2
         ifTrue: [self addToHistory: self imageEditView resourceMessage -> #loadFromMessage:].
@@ -1319,8 +1329,6 @@
 
     super open.
 
-    self imageEditView masterApplication: self.
-
     self resourceClassInputField entryCompletionBlock:
     [:value|
         |what|
@@ -1358,6 +1366,7 @@
 
 postOpenWith:aBuilder
 
+    self imageEditView masterApplication: self.
     postOpenAction notNil ifTrue: [postOpenAction value].
     super postOpenWith:aBuilder.
 !
@@ -1528,6 +1537,22 @@
     ]
 !
 
+loadFromOrPrepareForMessage: aMessage
+
+    (self imageEditView loadFromMessage: aMessage) notNil
+    ifTrue:
+    [
+        self listOfColors contents: self image usedColors asSet asOrderedCollection.
+        self findColorMapMode.
+        self updateInputFieldsAndLabelsAndHistory.
+    ]
+    ifFalse:
+    [
+        self imageEditView resourceMessage: aMessage.
+        self updateInputFields.
+    ]
+!
+
 newImage
 
     |aspects|