53 |
53 |
54 openModalOnClass: aClass andSelector: aSelector |
54 openModalOnClass: aClass andSelector: aSelector |
55 |
55 |
56 "self openModalOnClass: self andSelector: #newImageIcon" |
56 "self openModalOnClass: self andSelector: #newImageIcon" |
57 |
57 |
58 |imageEditor className resourceClassName resourceSelector| |
58 |imageEditor className resourceClassName resourceSelector| |
59 imageEditor := self new. |
59 imageEditor := self new. |
60 aClass isClass ifTrue: [className := aClass name]. |
60 aClass isClass ifTrue: [className := aClass name]. |
61 aClass isString ifTrue: [className := aClass]. |
61 aClass isString ifTrue: [className := aClass]. |
62 |
62 |
63 imageEditor postOpenAction: [imageEditor loadFromMessage: className printString, ' ', aSelector]. |
63 imageEditor postOpenAction: [imageEditor loadFromOrPrepareForMessage: className, ' ', aSelector]. |
64 imageEditor openModal. |
64 imageEditor openModal. |
65 |
65 |
66 resourceClassName := imageEditor valueOfResourceClass value. |
66 resourceClassName := imageEditor valueOfResourceClass value. |
67 resourceSelector := imageEditor valueOfResourceSelector value. |
67 resourceSelector := imageEditor valueOfResourceSelector value. |
68 ^resourceClassName, ' ', resourceSelector |
68 |
|
69 (className asString ~= resourceClassName) | (aSelector asString ~= resourceSelector) |
|
70 ifTrue: [^resourceClassName, ' ', resourceSelector] |
|
71 ifFalse:[^nil] |
69 ! |
72 ! |
70 |
73 |
71 openOnClass: aClass andSelector: aSelector |
74 openOnClass: aClass andSelector: aSelector |
72 |
75 |
73 "self openOnClass: self andSelector: #newImageIcon" |
76 "self openOnClass: self andSelector: #newImageIcon" |
522 |
525 |
523 #(#FullSpec |
526 #(#FullSpec |
524 #'window:' |
527 #'window:' |
525 #(#WindowSpec |
528 #(#WindowSpec |
526 #'name:' 'Image Editor' |
529 #'name:' 'Image Editor' |
527 #'layout:' #(#LayoutFrame 368 0 254 0 867 0 599 0) |
530 #'layout:' #(#LayoutFrame 109 0 301 0 608 0 646 0) |
528 #'label:' 'Image Editor' |
531 #'label:' 'Image Editor' |
529 #'min:' #(#Point 400 320) |
532 #'min:' #(#Point 400 320) |
530 #'max:' #(#Point 1152 900) |
533 #'max:' #(#Point 1152 900) |
531 #'bounds:' #(#Rectangle 368 254 868 600) |
534 #'bounds:' #(#Rectangle 109 301 609 647) |
532 #'menu:' #menu |
535 #'menu:' #menu |
533 #'usePreferredExtent:' false |
536 #'usePreferredExtent:' false |
534 ) |
537 ) |
535 #'component:' |
538 #'component:' |
536 #(#SpecCollection |
539 #(#SpecCollection |
537 #'collection:' |
540 #'collection:' |
538 #( |
541 #( |
539 #(#MenuPanelSpec |
542 #(#MenuPanelSpec |
540 #'name:' 'menuToolbarView' |
543 #'name:' 'menuToolbarView' |
541 #'layout:' #(#LayoutFrame 0 0.0 0 0 0 1.0 34 0) |
544 #'layout:' #(#LayoutFrame 0 0.0 0 0 0 1.0 32 0) |
542 #'menu:' #menuToolbar |
545 #'menu:' #menuToolbar |
543 #'style:' #(#FontDescription #helvetica #medium #roman 10) |
546 #'style:' #(#FontDescription #helvetica #medium #roman 10) |
544 #'showSeparatingLines:' true |
547 #'showSeparatingLines:' true |
545 ) |
548 ) |
546 #(#VariableHorizontalPanelSpec |
549 #(#VariableHorizontalPanelSpec |
547 #'name:' 'variableHorizontalPanel1' |
550 #'name:' 'variableHorizontalPanel1' |
548 #'layout:' #(#LayoutFrame 0 0.0 36 0.0 0 1.0 -22 1.0) |
551 #'layout:' #(#LayoutFrame 0 0.0 34 0.0 0 1.0 -22 1.0) |
549 #'component:' |
552 #'component:' |
550 #(#SpecCollection |
553 #(#SpecCollection |
551 #'collection:' |
554 #'collection:' |
552 #( |
555 #( |
553 #(#ViewSpec |
556 #(#ViewSpec |
690 #'collection:' |
693 #'collection:' |
691 #( |
694 #( |
692 #(#InputFieldSpec |
695 #(#InputFieldSpec |
693 #'name:' 'resourceClassInputField' |
696 #'name:' 'resourceClassInputField' |
694 #'activeHelpKey:' #classNameInputField |
697 #'activeHelpKey:' #classNameInputField |
|
698 #'enableChannel:' #valueOfOpenedStandAlone |
695 #'model:' #valueOfResourceClass |
699 #'model:' #valueOfResourceClass |
696 #'immediateAccept:' false |
700 #'immediateAccept:' false |
697 #'extent:' #(#Point 129 21) |
701 #'extent:' #(#Point 129 21) |
698 ) |
702 ) |
699 #(#InputFieldSpec |
703 #(#InputFieldSpec |
1244 ' used colors)' |
1248 ' used colors)' |
1245 |
1249 |
1246 |
1250 |
1247 ! |
1251 ! |
1248 |
1252 |
1249 updateInputFieldsAndLabelsAndHistory |
1253 updateInputFields |
1250 |
|
1251 self imageIsLoaded value: self image notNil. |
|
1252 |
|
1253 self image isNil ifTrue: [^nil]. |
|
1254 |
|
1255 self updateInfoLabel. |
|
1256 self imageEditView coordInfoBlock: [:value| self valueOfCoordLabel value: value]. |
|
1257 |
|
1258 self valueOfFileName removeDependent: self. |
|
1259 self valueOfFileName value: self image fileName. |
|
1260 self valueOfFileName addDependent: self. |
|
1261 |
1254 |
1262 self valueOfResourceSelector removeDependent: self. |
1255 self valueOfResourceSelector removeDependent: self. |
1263 self valueOfResourceSelector value: self imageEditView resourceSelector. |
1256 self valueOfResourceSelector value: self imageEditView resourceSelector. |
1264 self valueOfResourceSelector addDependent: self. |
1257 self valueOfResourceSelector addDependent: self. |
1265 |
1258 |
1267 self imageEditView resourceClass notNil |
1260 self imageEditView resourceClass notNil |
1268 ifTrue: [self valueOfResourceClass value: self imageEditView resourceClass] |
1261 ifTrue: [self valueOfResourceClass value: self imageEditView resourceClass] |
1269 ifFalse: [self valueOfResourceClass value: '']. |
1262 ifFalse: [self valueOfResourceClass value: '']. |
1270 self valueOfResourceClass addDependent: self. |
1263 self valueOfResourceClass addDependent: self. |
1271 |
1264 |
|
1265 ! |
|
1266 |
|
1267 updateInputFieldsAndLabelsAndHistory |
|
1268 |
|
1269 self imageIsLoaded value: self image notNil. |
|
1270 |
|
1271 self image isNil ifTrue: [^nil]. |
|
1272 |
|
1273 self updateInfoLabel. |
|
1274 self imageEditView coordInfoBlock: [:value| self valueOfCoordLabel value: value]. |
|
1275 |
|
1276 self valueOfFileName removeDependent: self. |
|
1277 self valueOfFileName value: self image fileName. |
|
1278 self valueOfFileName addDependent: self. |
|
1279 |
|
1280 self updateInputFields. |
|
1281 |
1272 self imageEditView resourceMessage asCollectionOfWords size = 2 |
1282 self imageEditView resourceMessage asCollectionOfWords size = 2 |
1273 ifTrue: [self addToHistory: self imageEditView resourceMessage -> #loadFromMessage:]. |
1283 ifTrue: [self addToHistory: self imageEditView resourceMessage -> #loadFromMessage:]. |
1274 |
1284 |
1275 self image fileName notNil |
1285 self image fileName notNil |
1276 ifTrue: [self addToHistory: self image fileName -> #loadFromFile:]. |
1286 ifTrue: [self addToHistory: self image fileName -> #loadFromFile:]. |
1526 self findColorMapMode. |
1535 self findColorMapMode. |
1527 self updateInputFieldsAndLabelsAndHistory. |
1536 self updateInputFieldsAndLabelsAndHistory. |
1528 ] |
1537 ] |
1529 ! |
1538 ! |
1530 |
1539 |
|
1540 loadFromOrPrepareForMessage: aMessage |
|
1541 |
|
1542 (self imageEditView loadFromMessage: aMessage) notNil |
|
1543 ifTrue: |
|
1544 [ |
|
1545 self listOfColors contents: self image usedColors asSet asOrderedCollection. |
|
1546 self findColorMapMode. |
|
1547 self updateInputFieldsAndLabelsAndHistory. |
|
1548 ] |
|
1549 ifFalse: |
|
1550 [ |
|
1551 self imageEditView resourceMessage: aMessage. |
|
1552 self updateInputFields. |
|
1553 ] |
|
1554 ! |
|
1555 |
1531 newImage |
1556 newImage |
1532 |
1557 |
1533 |aspects| |
1558 |aspects| |
1534 aspects := IdentityDictionary new |
1559 aspects := IdentityDictionary new |
1535 at:#listOfSizes put: self class listOfDefaultSizes asValue; |
1560 at:#listOfSizes put: self class listOfDefaultSizes asValue; |