But my method is implemented in the *component*, while the submit
listener is implemented in the *page*. So unless I want my page listener to
have a hard-coded relationship with my component, I can't really use this
approach can I?

        I want the component to just plug in anywhere I have a list of email
addresses and just work without changing the surrounding page's java code.

        --- Pat

> -----Original Message-----
> From: Mark Stang [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, September 06, 2005 9:21 AM
> To: Tapestry users; Tapestry users
> Subject: RE: Awkward Component/Parent Communication Problem
> 
> I use the SubmitListener paradigm.  What this does is to call your
> listener method AFTER all of the tapestry foo is complete.  At that point
> it is safe to execute your method.  It calls your method in the
> FormSubmit.  This eliminates the need to set the flag.
> 
> HTH,
> 
> Mark
> 
> 
> -----Original Message-----
> From: Shing Hing Man [mailto:[EMAIL PROTECTED]
> Sent: Sat 9/3/2005 10:11 PM
> To: Tapestry users
> Subject: Re: Awkward Component/Parent Communication Problem
> 
> I have encounter a similar problem as yours recently.
> (I am using Tapestry 3).
> 
> My solution is to wrap around the orginal address
> component
> in an 'outer component'. The java class
> associated with this outer component extends
> BaseComponent.
> In the java class of the outer component,
> override the  renderComponent method like this :
> 
> 
>   super.renderComponent(iMarkupWriter, iRequestCycle);
> 
>   if (rewind is done) {
>      // By the time you reach here, your address
> (inner) component
>      // would have rewinded.
>      // In the listener method asscoiated  with the
> add button, just
>      // set a flag to indicate if it has been pressed.
>      // Here you can test the value of that flag, and
> act accordingly.
>   }
> 
> 
> Shing
> --- Patrick Casey <[EMAIL PROTECTED]> wrote:
> 
> >
> >
> >             Hi Folks,
> >
> >
> >
> >             I seem to have painted myself into
> > something of a design corner
> > here, and I was hoping somebody could suggest a way
> > out.
> >
> >
> >
> >             I have a page.
> >
> >             Upon this page is a form.
> >
> >             Within this form is a component that
> > renders a list of email
> > addresses and includes three blank lines for
> > "newAddress1", "newAddress2",
> > newAddress3 and a button marked "add new addresses".
> >
> >             This add button is bound to a listener
> > on the component.
> >
> >
> >
> >             Since you really can't do anything
> > safely in a listener during a
> > rewind, I want to set a flag here and have the
> > page's listener (the one
> > bound to the form), actually do all the work. The
> > question is though, is
> > there a recommended, loosely coupled way for a
> > component's listener to
> > "bubble up" to its containing form's listener?
> >
> >
> >
> >             I mean I can do:
> >
> >
> >
> >             MyPage page = (MyPage) page();
> >
> >             page.setFlag(COMPONENT_FLAG);
> >
> >
> >
> >             But then, not only do I have a component
> > which will only work on
> > a MyPage, but I have to add handler code actually
> > *on* the page, so I don't
> > really have an encapsulated component :-(.
> >
> >
> >
> >             Any suggestions?
> >
> >
> >
> >             --- Pat
> >
> >
> 
> 
> Home page :
>   http://uk.geocities.com/matmsh/index.html
> 
> 
> 
> 
> 
> ___________________________________________________________
> Yahoo! Messenger - NEW crystal clear PC to PC calling worldwide with
> voicemail http://uk.messenger.yahoo.com
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to