[Seaside] #render: or #call: components.

David Zmick dz0004455 at gmail.com
Tue Apr 29 00:43:46 UTC 2008


I know that this is probably a very bad practice, but I have initialized
component, eg. a instance variable 'bodyComp'

ok, I will show some code:

RootComponent>>initilaize
   super initialize.
   self bodyComp: BodyComponent new.

RootComponent>>renderContentOn: html
   "all the head stuff"
    bodyComponent renderContentOn: html
    "etc."

I was wonderering how this was "correctley" done the other day, so I'm glad
this thread popped up..  What is bad about my method, if anything, I just
think it seems a little hackish...
ty



On Mon, Apr 28, 2008 at 9:27 AM, John Thornborrow <john at pinesoft.co.uk>
wrote:

> Yes, that was what I intended, my example was merely a demonstration of
> #onAnswer:
>
> John.
>
>
> Lukas Renggli wrote:
>
> >  MyParentComponent>>renderContentOn: html
> > >  html render: (
> > >    ChildComponentA new
> > >      onAnswer: [ :val | self answer: val ];
> > >      yourself).
> > >  html render: (
> > >    ChildComponentB new
> > >      onAnswer: [ :val | self answer: val];
> > >      yourself)
> > >
> >
> > No component instantiation in the render method! Like this you get new
> > components every time you hit refresh or perform an action on the
> > page. This certainly does not work as expected.
> >
> > You probably want something like this:
> >
> > MyPageComponent>>initialize
> >    super initialize.
> >    childA := ChildComponentA new
> >       onAnswer: [ :val | self answer: val ];
> >       yourself.
> >    childB := ChildComponentB new
> >       onAnswer: [ :val | self answer: val ];
> >       yourself.
> >
> > MyPageComponent>>children
> >    ^ Array with: childA with: childB
> >
> > MyPageComponent>>renderContentOn: html
> >    html render: childA.
> >    html render: childB
> >
> > Lukas
> >
> >
> --
> John Thornborrow
> http://www.pinesoft.co.uk
>
>
>
> ******************************************************************************************************************************************
> This email is from Pinesoft Limited. Its contents are confidential to the
> intended recipient(s) at the email address(es) to which it has been
> addressed. It may not be disclosed to or used by anyone other than the
> addressee(s), nor may it be copied in anyway. If received in error, please
> contact the sender, then delete it from your system. Although this email and
> attachments are believed to be free of virus, or any other defect which
> might affect any computer or IT system into which they are received and
> opened, it is the responsibility of the recipient to ensure that they are
> virus free and no responsibility is accepted by Pinesoft for any loss or
> damage arising in any way from receipt or use thereof.
> *******************************************************************************************************************************************
>
>
> Pinesoft Limited are registered in England, Registered number: 2914825.
> Registered office: 266-268 High Street, Waltham Cross, Herts, EN8 7EA
> _______________________________________________
>  seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>



-- 
David Zmick
/dz0004455\
http://dz0004455.googlepages.com
http://dz0004455.blogspot.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/seaside/attachments/20080428/f66f9832/attachment-0001.htm


More information about the seaside mailing list