MenuEditor.st
changeset 2391 8a02cfb5da94
parent 2373 03e95da6776d
child 2448 eec01c02868e
equal deleted inserted replaced
2390:07303d4b4e78 2391:8a02cfb5da94
  5114 ! !
  5114 ! !
  5115 
  5115 
  5116 !MenuEditor::ResourceEditor methodsFor:'accessing'!
  5116 !MenuEditor::ResourceEditor methodsFor:'accessing'!
  5117 
  5117 
  5118 resourceRetriever
  5118 resourceRetriever
  5119     |rcv sel cls|
  5119     |rcv sel cls clsName|
  5120 
  5120 
  5121     sel := selectorHolder value.
  5121     sel := selectorHolder value.
  5122     sel size == 0 ifTrue:[ ^ nil ].
  5122     sel size == 0 ifTrue:[ ^ nil ].
  5123     cls := self retrieverClass.
  5123     cls := self retrieverClass.
  5124     cls ifNotNil:[ cls := cls name asSymbol ].
  5124     cls notNil ifTrue:[ 
       
  5125         clsName := retrieverHolder value.
       
  5126         clsName isEmptyOrNil ifTrue:[
       
  5127             clsName := cls name.
       
  5128         ].
       
  5129         clsName := clsName asSymbol.
       
  5130     ].
  5125 
  5131 
  5126     rcv := ResourceRetriever new.
  5132     rcv := ResourceRetriever new.
  5127     rcv className:cls.
  5133     rcv className:clsName.
  5128     rcv  selector:sel.
  5134     rcv selector:sel.
  5129 
  5135 
  5130     iconAndLabelHolder value ifTrue:[ rcv labelText:'' ].
  5136     iconAndLabelHolder value ifTrue:[ rcv labelText:'' ].
  5131     ^ rcv
  5137     ^ rcv
  5132 !
  5138 !
  5133 
  5139 
  5134 resourceRetriever:aResourceRetriever
  5140 resourceRetriever:aResourceRetriever
  5135     |cls sel isOn|
  5141     |className sel isOn|
  5136 
  5142 
  5137     aResourceRetriever notNil ifTrue:[
  5143     aResourceRetriever notNil ifTrue:[
  5138 	cls := aResourceRetriever className.
  5144         className := aResourceRetriever className.
  5139 	cls ifNotNil:[
  5145         className isBehavior ifTrue:[
  5140 	    cls isBehavior ifTrue:[cls := cls name asSymbol].
  5146             className := className name asSymbol
  5141 	].
  5147         ].
  5142 	sel  := aResourceRetriever selector.
  5148         sel  := aResourceRetriever selector.
  5143 	isOn := aResourceRetriever labelText notNil.
  5149         isOn := aResourceRetriever labelText notNil.
  5144     ] ifFalse:[
  5150     ] ifFalse:[
  5145 	cls := sel := nil.
  5151         className := sel := nil.
  5146 	isOn := false.
  5152         isOn := false.
  5147     ].
  5153     ].
  5148 
  5154 
  5149     retrieverHolder value:cls.
  5155     retrieverHolder value:className.
  5150     selectorHolder  value:sel.
  5156     selectorHolder  value:sel.
  5151     iconAndLabelHolder value:isOn.
  5157     iconAndLabelHolder value:isOn.
  5152 !
  5158 !
  5153 
  5159 
  5154 retrieverClass
  5160 retrieverClass
  5155     |cls|
  5161     |clsName cls|
  5156 
  5162 
  5157     cls  := retrieverHolder value.
  5163     clsName  := retrieverHolder value.
  5158 
  5164     clsName notEmptyOrNil ifTrue:[
  5159     cls size ~~ 0 ifTrue:[
  5165         cls := Smalltalk at:clsName ifAbsent:nil.
  5160 	cls := Smalltalk at:cls ifAbsent:nil.
  5166         (cls isBehavior) ifTrue:[
  5161 
  5167             ^ cls
  5162 	(cls notNil and:[cls isBehavior]) ifTrue:[
  5168         ].
  5163 	    ^ cls
       
  5164 	].
       
  5165     ].
  5169     ].
  5166     ^ nil
  5170     ^ nil
  5167 ! !
  5171 ! !
  5168 
  5172 
  5169 !MenuEditor::ResourceEditor methodsFor:'actions'!
  5173 !MenuEditor::ResourceEditor methodsFor:'actions'!
  5259 ! !
  5263 ! !
  5260 
  5264 
  5261 !MenuEditor::ResourceEditor methodsFor:'change & update'!
  5265 !MenuEditor::ResourceEditor methodsFor:'change & update'!
  5262 
  5266 
  5263 retrieverChanged
  5267 retrieverChanged
  5264     "called if the retriever changed
       
  5265     "
       
  5266     |retriever list name|
  5268     |retriever list name|
  5267 
  5269 
  5268     retriever := self retrieverClass.
  5270     retriever := self retrieverClass.
  5269     imageHolder setValue:nil.
  5271     imageHolder setValue:nil.
  5270 
  5272 
  5271     imageList root fromClass:retriever.
  5273     imageList root fromClass:retriever.
  5272     self updateImageHolder.
  5274     self updateImageHolder.
  5273 
  5275 
  5274     (retriever notNil and:[imageList size ~~ 0]) ifTrue:[
  5276     (retriever notNil and:[imageList size ~~ 0]) ifTrue:[
  5275 	list := self retrieverList.
  5277         list := self retrieverList.
  5276 	name := retriever name.
  5278         name := retriever name.
  5277 
  5279 
  5278 	(list includes:name) ifFalse:[
  5280         (list includes:name) ifFalse:[
  5279 	    list add:(name asSymbol).
  5281             list add:(name asSymbol).
  5280 	]
  5282         ]
  5281     ].
  5283     ].
  5282 !
  5284 !
  5283 
  5285 
  5284 selectorChanged
  5286 selectorChanged
  5285     self updateImageHolder.
  5287     self updateImageHolder.
  5292 
  5294 
  5293     aModel == retrieverHolder ifTrue:[ ^ self retrieverChanged ].
  5295     aModel == retrieverHolder ifTrue:[ ^ self retrieverChanged ].
  5294     aModel == selectorHolder  ifTrue:[ ^ self selectorChanged  ].
  5296     aModel == selectorHolder  ifTrue:[ ^ self selectorChanged  ].
  5295 
  5297 
  5296     aModel == imageHolder ifTrue:[
  5298     aModel == imageHolder ifTrue:[
  5297 	item := imageHolder value.
  5299         item := imageHolder value.
  5298 	item ifNotNil:[ selectorHolder value:(item label) ].
  5300         item ifNotNil:[ 
  5299 	^ self
  5301             selectorHolder value:(item label) 
       
  5302         ].
       
  5303         ^ self
  5300     ].
  5304     ].
  5301     super update:what with:aPara from:aModel
  5305     super update:what with:aPara from:aModel
  5302 !
  5306 !
  5303 
  5307 
  5304 updateImageHolder
  5308 updateImageHolder
  5305     |item selector line|
  5309     |item selector line|
  5306 
  5310 
  5307     imageList isEmpty ifTrue:[^ self].
  5311     imageList isEmpty ifTrue:[^ self].
  5308 
  5312 
  5309     selector := selectorHolder value.
  5313     selector := selectorHolder value.
  5310     selector size == 0 ifTrue:[ imageHolder value:nil. ^ self ].
  5314     selector isEmptyOrNil ifTrue:[ 
       
  5315         imageHolder value:nil. 
       
  5316         ^ self 
       
  5317     ].
  5311 
  5318 
  5312     item     := nil.
  5319     item     := nil.
  5313     selector := selector asSymbol.
  5320     selector := selector asSymbol.
  5314 
  5321 
  5315     imageList do:[:anItem| 
  5322     imageList do:[:anItem|