FYI, here is the way I solved my problem. Looks not very beautiful,
but it works.

Not sure if I may have to open a JIRA about this.

On Thu, Oct 25, 2012 at 11:16 AM, Nicolas Bouillon <nico...@bouil.org> wrote:
> Sorry for the noise, but I figured out that in Form.java, the code
>             clientBehaviorSupport.linkZone(getClientId(), zone, link);
> is @HeartbeatDeferred, and it's not the case in AbstractComponentEventLink.
>
> This deferred execution makes the Form to use the last clientId
> generated inside the tree loop, instead of the clientId generated for
> this specific loop.
>
> Trying with a Loop component, the problem doesn't occurs because the
> Loop component seems to correctly work together the Heartbeat service.
>
> On Thu, Oct 25, 2012 at 10:58 AM, Nicolas Bouillon <nico...@bouil.org> wrote:
>> I tried to dig inside the Tree component source, and I'm not really at
>> ease with the RenderCommand way to render stuffs.
>>
>> What I see is the block I overridden to display a form with zone
>> update submit inside, is pushed to the RenderQueue. But I don't
>> understand how this affect the way the form generates the javascript
>> needed to behave correctly.
>>
>> I tried with and this way it behave correctly, so it seams to be
>> specific to the form component.
>>
>> Any help ?
>>
>>
>> On Mon, Oct 22, 2012 at 2:11 PM, Nicolas Bouillon <nico...@bouil.org> wrote:
>>> Hi,
>>>
>>> We have got a problem with the Tree component.
>>>
>>> In our tree element, we want to have a form included to allow to add a
>>> new child to the current element. We have used the p:label attribute
>>> to customize the rendering of the element, and we have included a form
>>> inside, which must submit in XHR to a zone.
>>>
>>> The problem all but the last item on the tree triggers a plain old
>>> form submission with a full reload.
>>> The last item trigger a XHR submit but for all the displayed items in
>>> the tree at the time the page loads (so not taking into account the
>>> dynamically expanded elements).
>>>
>>> If you look at the source code generated at the bottom of the page,
>>> you can see the linkId is always the same for each form element :
>>>
>>>   "linkZone" : [
>>>     {
>>>       "linkId" : "form_2",
>>>       "url" : "/index.form/Pets",
>>>       "zoneId" : "zone"
>>>     },
>>>     {
>>>       "linkId" : "form_2",
>>>       "url" : "/index.form/Games",
>>>       "zoneId" : "zone"
>>>     },
>>>     {
>>>       "linkId" : "form_2",
>>>       "url" : "/index.form/Numbers",
>>>       "zoneId" : "zone"
>>>     },
>>>     {
>>>       "linkId" : "form_2",
>>>       "url" : "/index.form/Last$0020element",
>>>       "zoneId" : "zone"
>>>     }
>>>   ],
>>>
>>> I've setup a sample project on github at
>>> https://github.com/bouil/tapestry-tree-test
>>>
>>> The problem can be live tested at 
>>> http://tapestry-tree-test.cloudfoundry.com/
>>>
>>> Thank you for any help and workaround you could provide to solve this 
>>> problem.
>>>
>>> Nicolas.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to