Stef, Em 01/05/2011 16:20, Stéphane Ducasse < [email protected] > escreveu: > Hi guys > I have a problem with a PluggableButtonMorph and I end up in this > MorpExtension>>update: aParameter
It seems to me it has more than what you suspect. . . There are variables called "getLabelSelector, getStateSelector and getColorSelector" or are "self" missing there? All these tests with if<something> are also very _not_ OO :-| Also, I think my low understanding of Morph in general may be skewing my reasoning, but it seems to me that this method would get better if some knowledgeable person could comment the code! my 0.01999999 > > |state| > aParameter ifNil: [^self]. > getLabelSelector ifNotNil: [ > aParameter == getLabelSelector ifTrue: [ > (self labelMorph respondsTo: #font) > ifTrue: [self label: (model perform: getLabelSelector) font: self labelMorph > font] > ifFalse: [self label: (model perform: getLabelSelector)]]]. > state := self getModelState. > (state ~= (self valueOfProperty: #lastState) or: [ > getStateSelector isNil and: [aParameter == #onOffColor]]) > ifTrue: [self color: self colorToUse. > self setProperty: #lastState toValue: state]. > aParameter == getEnabledSelector ifTrue: [^self enabled: (model perform: > getEnabledSelector)]. > getColorSelector ifNotNil: [ | cc | > color = (cc := model perform: getColorSelector) > ifFalse: [ > color := cc. > self onColor: color offColor: color. > self changed ]]. > > To me it looks suspicious that MorphExtension does that for all the > morph.... > -- Cesar Rabak
