diff -r 87ce36f48fbc -r 7e63a11f3333 MenuEditor.st --- 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'!