ResourceSpecEditor.st
changeset 1554 d01ffa42ca7a
parent 1524 6a0a84872e73
child 1645 5d3552cd029b
equal deleted inserted replaced
1553:acdc694c9232 1554:d01ffa42ca7a
   290 
   290 
   291     |cls|
   291     |cls|
   292     (specClass isSymbol and: [(cls := Smalltalk at: specClass) isClass])
   292     (specClass isSymbol and: [(cls := Smalltalk at: specClass) isClass])
   293     ifTrue:
   293     ifTrue:
   294     [
   294     [
   295         (cls class implements: specSelector)
   295         (cls class includesSelector: specSelector)
   296         ifFalse: 
   296         ifFalse: 
   297         [
   297         [
   298             ^specSelector isNil 
   298             ^specSelector isNil 
   299                 ifTrue:  [specClass, ' >> ? (no selector defined)']
   299                 ifTrue:  [specClass, ' >> ? (no selector defined)']
   300                 ifFalse: [specClass, ' >> ', specSelector, ' (not implemented)']
   300                 ifFalse: [specClass, ' >> ', specSelector, ' (not implemented)']
   301         ].
   301         ].
   302         ^specClass, ' >> ', specSelector
   302         ^specClass, ' >> ', specSelector
   303     ].
   303     ].
   304     ^'No class and selector defined.'
   304     ^'No class and selector defined.'
   305 
       
   306 ! !
   305 ! !
   307 
   306 
   308 !ResourceSpecEditor methodsFor:'initialization'!
   307 !ResourceSpecEditor methodsFor:'initialization'!
   309 
   308 
   310 initialize
   309 initialize
   414 
   413 
   415 updateHistory
   414 updateHistory
   416     "updates the history, if there was loaded a resource spec"
   415     "updates the history, if there was loaded a resource spec"
   417 
   416 
   418     |cls|             
   417     |cls|             
   419     ((cls := self resolveClassNamed) notNil and: [cls class implements: specSelector])
   418     ((cls := self resolveClassNamed) notNil and: [cls class includesSelector: specSelector])
   420     ifTrue:
   419     ifTrue:
   421     [
   420     [
   422         |className message|
   421         |className message|
   423         specClass isClass  ifTrue: [className := specClass name].
   422         specClass isClass  ifTrue: [className := specClass name].
   424         specClass isString ifTrue: [className := specClass].
   423         specClass isString ifTrue: [className := specClass].
   469         |msg cls sel|
   468         |msg cls sel|
   470 
   469 
   471         msg := aString asCollectionOfWords.
   470         msg := aString asCollectionOfWords.
   472         (msg size == 2 and:
   471         (msg size == 2 and:
   473         [(cls := self resolveName:(msg at:1)) notNil and:
   472         [(cls := self resolveName:(msg at:1)) notNil and:
   474         [cls class implements: (sel := (msg at: 2) asSymbol)]])
   473         [cls class includesSelector: (sel := (msg at: 2) asSymbol)]])
   475         ifTrue:
   474         ifTrue:
   476         [               
   475         [               
   477             self isStandAlone 
   476             self isStandAlone 
   478                 ifFalse: [self buildFromResourceSpec: (cls perform: sel)]
   477                 ifFalse: [self buildFromResourceSpec: (cls perform: sel)]
   479                 ifTrue:  [self buildFromClass: (specClass := cls name) andSelector: (specSelector := sel)].
   478                 ifTrue:  [self buildFromClass: (specClass := cls name) andSelector: (specSelector := sel)].
   582     ifTrue:[
   581     ifTrue:[
   583         resourceClass := retriever
   582         resourceClass := retriever
   584     ] ifFalse:[
   583     ] ifFalse:[
   585         (cls := self resolveName: specClass) notNil 
   584         (cls := self resolveName: specClass) notNil 
   586         ifTrue:[
   585         ifTrue:[
   587             resourceClass := cls withAllSuperclasses detect: [:cls| cls class implements: resourceSelector] ifNone: [cls]
   586             resourceClass := cls withAllSuperclasses detect: [:cls| cls class includesSelector: resourceSelector] ifNone: [cls]
   588         ]
   587         ]
   589     ].
   588     ].
   590 
   589 
   591     (imageResourceMessage := ImageEditor openModalOnClass: resourceClass andSelector: resourceSelector) notNil
   590     (imageResourceMessage := ImageEditor openModalOnClass: resourceClass andSelector: resourceSelector) notNil
   592     ifTrue: [
   591     ifTrue: [
   687 ! !
   686 ! !
   688 
   687 
   689 !ResourceSpecEditor class methodsFor:'documentation'!
   688 !ResourceSpecEditor class methodsFor:'documentation'!
   690 
   689 
   691 version
   690 version
   692     ^ '$Header: /cvs/stx/stx/libview2/ResourceSpecEditor.st,v 1.21 2001-10-30 18:32:00 cg Exp $'
   691     ^ '$Header: /cvs/stx/stx/libview2/ResourceSpecEditor.st,v 1.22 2002-02-25 20:00:09 cg Exp $'
   693 ! !
   692 ! !