Hi 

I was reading Pluggable and friends
I identified some patterns. 


The respondsTo plague
Examples:

color := self fillStyle asColor.
        (self labelMorph respondsTo: #enabled:)
                ifTrue: [self labelMorph enabled: self enabled].
        (self labelMorph respondsTo: #interactionState:)
                ifTrue: [self labelMorph interactionState: self 
interactionState]

(self labelMorph respondsTo: #enabled:) ifTrue: [
        self labelMorph enabled: aBoolean].

(self enabled not and: [self label isMorph and: [(self label respondsTo: 
#enabled:) not]])


by construction a labelObject should be a morph and it should answer enabled: 
and the case where this is not the case should be fixed. 


Using submorphs to avoid one single inst var makes code quite ugly to read:


labelMorph
        "Answer the actual label morph."

        self hasSubmorphs ifFalse: [^nil].
        self firstSubmorph hasSubmorphs ifFalse: [^nil].
        ^self firstSubmorph firstSubmorph





_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to