[Pharo-project] [squeak-dev] Use of #asMorph

Stéphane Ducasse stephane.ducasse at inria.fr
Sun Mar 14 17:42:24 UTC 2010


On Mar 14, 2010, at 3:04 PM, Igor Stasenko wrote:

> On 14 March 2010 15:38, Stéphane Ducasse <stephane.ducasse at inria.fr> wrote:
>> 
>> I'm not convinced by your argumentation.
>> Because
>>        #('a' 'b') collect: [:each | each asMorph]
>> would mean to me that you get StringMorph or some morph representation of the object.
> 
> Yes, exactly like that.
> And i want to find a convenient approach how to achieve that. Means ,
> that from one side we having
> a container (list, inspector, panel, window etc) and from other side,
> we having a model which is a collection of items.
> And i want to find a way, how an object, which you want to represent
> in a container, could pick a most appropriate form
> of its representation, BUT depending on a nature of container.

it smells like a lot of magic or double dispatch?
> 
>> If this is what you want why not but I thought you talk about container containee relationship/
>> 
> 
> I am not convinced myself that such way is feasible either. You tell :)
> Usually, in most cases, a container dictating how its items should be
> displayed and behave.
> And usually, a model knows more than a little about items it contains
> (for instance a class methods pane contains only methods, not
> arbitrary objects).
> 
>> 
>> 
>> Stef
>> 
>> 
>> On Mar 14, 2010, at 2:05 PM, Igor Stasenko wrote:
>> 
>>> On 14 March 2010 14:40, stephane ducasse <stephane.ducasse at gmail.com> wrote:
>>>> Igor
>>>> 
>>>> I do not know (I'm dizzy after a couple of hours of bus) but
>>>> asMorph for me conveys the idea that we get a transformation of the receiver, while if this is just to
>>>> change the model of a morph why not model:
>>>> 
>>> Changing a model gives nothing:
>>> 
>>> morph := MyListMorph new.
>>> morph model: someModel.
>>> 
>>> now, since my morph is a list, it assumes that someModel object
>>> implements a protocol, which allows to extract the
>>> items ( #size, #at: etc).
>>> The question is, what you would do, if you want to represent each item
>>> in a list as a morph, so instead of:
>>> 
>>> strings := model items collect: [:each | each asString ].
>>> 
>>> you doing:
>>> 
>>> subMorphs := model items collect: [:each | each asMorph ].
>>> ...
>>> this gives you a freedom to pick any form how represent each item in a
>>> list, instead of bare strings.
>>> 
>>> 
>>>> 
>>>> Stef
>>>> 
>>> 
>>> 
>>> 
>>> --
>>> Best regards,
>>> Igor Stasenko AKA sig.
>>> 
>> 
>> 
>> _______________________________________________
>> Pharo-project mailing list
>> Pharo-project at lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>> 
> 
> 
> 
> -- 
> Best regards,
> Igor Stasenko AKA sig.
> 
> _______________________________________________
> Pharo-project mailing list
> Pharo-project at lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project




More information about the Squeak-dev mailing list