Hi all,

I'm encountering a problem with zones, I have a specific case where a zone
is embedded in another zone.
I have two actionlinks, the first updates the first zone and the second one
updates the second zone.
I think the best is to read the code :)

tml
<t:actionlink t:id="zoneOne" t:zone="zone1">link1</t:actionlink>
<t:zone t:id="zone1">
   <t:actionlink t:id="zoneTwo" t:zone="zone2">link2</t:actionlink>
   <t:zone t:id="zone2">
  ${count}
   </t:zone>
</t:zone>

java
@Persist
@Property
private int count;

@Component
private Zone zone1;
@OnEvent(value=EventConstants.ACTION, component="zoneOne")
public Object test(){
        count++;
return zone1.getBody();
}

@Component
private Zone zone2;
@OnEvent(value=EventConstants.ACTION, component="zoneTwo")
public Object test2(){
        count++;
return zone2.getBody();
}



Everything works the first time.
It stops working when I update the zone1.

Because tapestry creates a new zone2 that has a new client id, let's say
"zone2_1234556".
And when the actionlink for zone2 is created on the client side, the
parameter passed to the Tapestry.Initializer.linkZone method to initialize
the actionlink is "zone2", instead of "zone2_1234556".

So I guess the solution may be to map the t:zone parameter of the actionlink
to a java property, named zoneId.
<t:actionlink t:zone="zoneId"/>
and using this same property to set the t:id parameter in the zone :
<t:zone t:id="zoneId">

But I don't know how I should set the zoneId value to get everything
working.

Thanks in advance.
Clément

Reply via email to