Download the tapestry source and take a look at how the label component works. The label component usually appears before the component it is labelling and therefore needs to use @HeartbeatDeferred to get it's associated component's clientId at the end of the heartbeat.
On Sunday, 4 March 2012, Paul Stanton <p...@mapshed.com.au> wrote: > > On 29/02/2012 12:13 AM, Thiago H. de Paula Figueiredo wrote: >> >> No, you're using the t:id (server-side Tapestry component id) to retrieve the component, so it may not have its clientId set yet. >> > Thiago, > > If I'm using the server-side tapestry component id, than what I'm doing is still wrong and might cause issues, since AjaxResponseRenderer expects *clientId*, block and not *componentId*, block...: > > ClientBodyElement zone = (ClientBodyElement) getEmbeddedComponent(container, componentId); > ajaxResponseRenderer.addRender(componentId, zone.getBody()); // <-- componentId might not match clientId .. ? > > So if this is still wrong, is there any way to predict the eventual clientId of the component/element at this point in the render? Because otherwise there is no way to create a zone update without injecting the zone into the component. > > Thanks, Paul. > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > >