I'm bad with ui but I was laways wondering why we would like to have non
pluggable widgets.
Stef
>>> Hello,
>>>
>>> I completely lost in the logic of this thing.
>>>
>>> why a SystemWindow cares about something called panes?
>>> What if my window don't having/needs any of them?
>>> Why Object cares about #updateListsAndCodeIn: aWindow ???
>>>
>>> If model is updated, then it should just send #changed, or self
>>> changed: #myPaneFoo
>>> and if SystemWindow's pane is dependent, it will be updated.
>>
>> May be this is related to the fact that the style gets propagated to its
>> subcomponent.
>> I know I was bitten by that some years ago.
>>
>>>
>>> What the point in using #verifyContents...
>>>
>>> This thing needs to be cleaned up.
>>
>> yes ;)
>>
>
> I perusing the code in PluggableXXX classes, and i feel sick of it.
> All PluggableXXX classes has many repeatable patterns, like
> declaring getXXXSelector,
> which then serves for fetching the properties from model , like list,
> selected item, lable etc..
> And this is also related to #update: method, which these morphs
> handling usually like:
>
> update: property
> property == getXXXSelector ifTrue: [ propertyXValue := model
> perform: getXXXSelector ]
> property == getYYYSelector ifTrue: [ propertyYValue := model
> perform: getYYYSelector ]
>
> So, each morph, which depends from model, has to pull the value from
> model manually.
> But, we could do the same, by pushing the property to dependents.
>
> MyModel>>setMyProperty: value
> ^ self notifyChange: #myProperty from: myProperty to: (myProperty := value )
>
> MyModel>>notifyChange: propertyName from: oldValue to: newValue
> self dependents do: [:each |
> ( each perform: ('update', propertyName) asSymbol ) value: oldValue
> value: newValue
>
>
> MyMorph>>updateMyProperty
> ^ [:oldValue :newValue | self doSomethingWith: oldValue and: newValue ]
>
> in the above, a model just pushing new values, and morph handling
> updates directly,
> without need to keep getXXXSelector ivars to know, how to retrieve
> some property from model,
> or determine the correspondence between property name and way how to handle
> it.
>
>>>
>>> --
>>> Best regards,
>>> Igor Stasenko AKA sig.
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [email protected]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [email protected]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>
> _______________________________________________
> Pharo-project mailing list
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project