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
>
>

Reply via email to