[Seaside] Do not call #renderContentOn: directly (was: gotos with 2.3b?)

Ragnar Hojland Espinosa ragnar at linalco.com
Fri Jun 6 11:50:49 CEST 2003


On Thu, Jun 05, 2003 at 06:09:37PM -0700, Derek Brans wrote:

> > The problem is you are calling a component's #renderContentOn: directly.
> > You should never do this (this should be a private method) and I'll
> explain
> > why in a moment.  Instead, you need to say something like "html render:
> > yourComponent" or "yourComponent renderOn: html"
> >
> > Doing it the latter way allows the seaside component system to choose to
> > call the #renderContentOn: of a component, or that of the component's
> > delegate. See WAController>>renderActiveControllerWithContext:
> >
> > Calling #renderContentOn: directly, as you do in Exodus>>renderContentOn:,
> > forces Seaside to render that component, even if the component has a
> > delegate.

Ahhh, I see.  Yes, that indeed fixed it, thanks.

> > In Seaside, a delegate is a component that temporarily masks another
> > component (ie the delegate is rendered in the place of the delegating
> > component).  For example, when you say:
> >
> > "component1 call: component2"
> >
> > component2 is rendered in place of component1 for the duration of the call
> > (component2 is the delegate).  #goto: is a more permanent delegation than
> > #call:

I suppose goto is now #delegate: right?

-- 
Ragnar Hojland - Project Manager
Linalco "Especialistas Linux y en Software Libre"
http://www.linalco.com Tel: +34-91-5970074 Fax: +34-91-5970083


More information about the Seaside mailing list