Quick Question about Magritte

Ramon Leon rleon at insario.com
Fri Oct 14 20:54:41 MEST 2005



Ok, this seems to work, slight modification from yours to prevent the cascade accessor from being added more than once, otherwise every render built up long chains of cascading accessors, does this seem right?  Also, any way to add a label or something to each group of fields?
 
orderView := (anOrder description 
    , (anOrder billingAddress description collect: 
       [:ea | 
       (ea accessor isKindOf: MACascadeAccessor) 
        ifFalse: 
         [ea accessor: (MACascadeAccessor 
            accessor: (MASelectorAccessor selector: #billingAddress)
            next: ea accessor)].
       ea]) 
     , (anOrder shippingAddress description collect: 
        [:ea | 
        (ea accessor isKindOf: MACascadeAccessor) 
         ifFalse: 
          [ea accessor: (MACascadeAccessor 
             accessor: (MASelectorAccessor selector: #shippingAddress)
             next: ea accessor)].
        ea]) 
     asComponentOn: anOrder) addValidatedForm: #(#update #cancel )

________________________________

From: Lukas Renggli [mailto:renggli at iam.unibe.ch]
Sent: Thu 10/13/2005 11:51 PM
To: Ramon Leon
Cc: SmallWiki Mailing List
Subject: Re: Quick Question about Magritte



> Since reference descriptors aren't working yet, I'm wondering how I 
> can fake it manually.  Is there a way to take several objects and 
> combine their descriptions and then generate a component from 
> that?  Currently if I ask for (anOrder description, anOrder address 
> description) asComponent, I get an editor for the descriptions 
> rather than the instances.
>

Yes, that is possible:

     combined := obj1 description , obj2 description.

Probably you need to modify the description of the referenced object, 
somehow like this (untested, just quickly put together):

     combined := obj1 description , (obj2 description
         collect: [ :ea |
             " change accessors of obj2 go trough the selector
               #reference that is called on obj1 "
             ea accessor: (MACascadeAccessor
                 accessor: (MASelectorAccessor
                     selector: #reference)
                 next: ea accessor) ].

Hope this helps,
Lukas

--
Lukas Renggli
http://www.lukas-renggli.ch








More information about the SmallWiki mailing list