--- a/MenuEditor.st Tue Oct 29 22:28:13 2002 +0100
+++ b/MenuEditor.st Wed Oct 30 14:45:45 2002 +0100
@@ -4443,7 +4443,7 @@
rcv selector:sel.
iconAndLabelHolder value ifTrue:[ rcv labelText:'' ].
- ^ rcv
+ ^ rcv
!
resourceRetriever:aResourceRetriever
@@ -4504,10 +4504,27 @@
!
doEditImage
- |item|
+ |sel cls item|
item := imageHolder value.
- item ifNotNil:[ item doEdit ].
+ item notNil ifTrue:[
+ item doEdit
+ ] ifFalse:[
+ (sel := selectorHolder value) isNil ifTrue:[
+ Dialog warn:'No selector is defined.'.
+ ] ifFalse:[
+ (cls := retrieverHolder value) isNil ifTrue:[
+ Dialog warn:'No resource retriever is defined.'.
+ ] ifFalse:[
+ cls := Smalltalk classNamed:cls.
+ cls isNil ifTrue:[
+ Dialog warn:'No such resource retriever class.'.
+ ] ifFalse:[
+ ImageEditor openOnClass:cls andSelector:sel
+ ]
+ ]
+ ]
+ ].
! !
!MenuEditor::ResourceEditor methodsFor:'aspects'!
@@ -4563,7 +4580,7 @@
imageHolder setValue:nil.
imageList root fromClass:retriever.
- self selectorChanged.
+ self updateImageHolder.
(retriever notNil and:[imageList size ~~ 0]) ifTrue:[
list := self retrieverList.
@@ -4576,31 +4593,7 @@
!
selectorChanged
- |item selector line|
-
- imageList isEmpty ifTrue:[^ self].
-
- selector := selectorHolder value.
- selector size == 0 ifTrue:[ ^ imageHolder value:nil ].
-
- item := nil.
- selector := selector asSymbol.
-
- imageList do:[:anItem| |sel|
- sel := anItem selector.
- selector == sel ifTrue:[
- ^ imageHolder value:anItem
- ].
- item ifNil:[
- (sel startsWith:selector) ifTrue:[ item := anItem ]
- ]
- ].
- imageHolder value:nil.
-
- item ifNotNil:[
- line := imageList identityIndexOf:item.
- imageViewer scrollToLine:line
- ].
+ self updateImageHolder.
!
update:what with:aPara from:aModel
@@ -4614,11 +4607,40 @@
aModel == selectorHolder ifTrue:[ ^ self selectorChanged ].
aModel == imageHolder ifTrue:[
- item := imageHolder value.
- item ifNotNil:[ selectorHolder value:(item label) ].
- ^ self
+ item := imageHolder value.
+ item ifNotNil:[ selectorHolder value:(item label) ].
+ ^ self
].
super update:what with:aPara from:aModel
+!
+
+updateImageHolder
+ |item selector line|
+
+ imageList isEmpty ifTrue:[^ self].
+
+ selector := selectorHolder value.
+ selector size == 0 ifTrue:[ imageHolder value:nil. ^ self ].
+
+ item := nil.
+ selector := selector asSymbol.
+
+ imageList do:[:anItem| |sel|
+ sel := anItem selector.
+ selector == sel ifTrue:[
+ imageHolder value:anItem.
+ ^ self
+ ].
+ item ifNil:[
+ (sel startsWith:selector) ifTrue:[ item := anItem ]
+ ]
+ ].
+ imageHolder value:nil.
+
+ item ifNotNil:[
+ line := imageList identityIndexOf:item.
+ imageViewer scrollToLine:line
+ ].
! !
!MenuEditor::ResourceEditor methodsFor:'initialization'!