diff -r 116cf2acebe3 -r f792d83774b3 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|