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| |