T5.4 : Problem with two components with Ajax on the same page.

classic Classic list List threaded Threaded
22 messages Options
12
Reply | Threaded
Open this post in threaded view
|

T5.4 : Problem with two components with Ajax on the same page.

roasteddragon
Hello Users,

I am facing a problem with Tapestry components and would like to know if
this is a bug.

I have two components which are the same . They have a count field and a
link to update the count via ajax.

The problem is when you click on the link from the second component then
the count zone of the first component gets updated (from UI perspective).
But if you refresh the page, then the values are properly shown.

Please see the screenshots for further explanations

http://s7.postimg.org/qrz7zuqjf/Before_Clicking_Anything.png

http://s4.postimg.org/nenbw7brh/After_Clicking_Second_Link.png

http://s10.postimg.org/8kaij68rt/After_Refresh.png


Kind Regards,
Sumanth
Reply | Threaded
Open this post in threaded view
|

Re: T5.4 : Problem with two components with Ajax on the same page.

Thiago H de Paula Figueiredo
On Thu, 19 Feb 2015 11:01:13 -0200, Sumanth <[hidden email]>  
wrote:

> Hello Users,

Hi!

Please post the code when asking for help. We're not psychics (well, at  
least I know I'm not). :)

>
> I am facing a problem with Tapestry components and would like to know if
> this is a bug.
>
> I have two components which are the same . They have a count field and a
> link to update the count via ajax.
>
> The problem is when you click on the link from the second component then
> the count zone of the first component gets updated (from UI perspective).
> But if you refresh the page, then the values are properly shown.
>
> Please see the screenshots for further explanations
>
> http://s7.postimg.org/qrz7zuqjf/Before_Clicking_Anything.png
>
> http://s4.postimg.org/nenbw7brh/After_Clicking_Second_Link.png
>
> http://s10.postimg.org/8kaij68rt/After_Refresh.png
>
>
> Kind Regards,
> Sumanth


--
Thiago H. de Paula Figueiredo
Tapestry, Java and Hibernate consultant and developer
http://machina.com.br

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: T5.4 : Problem with two components with Ajax on the same page.

roasteddragon
Forgot. :)

TestPage.tml

<t:test.TestComponent t:id="abcd" t:count="countForComponentA" />

 <t:test.TestComponent t:id="hijk" t:count="countForComponentB" />

TestPage.java

public class TestPage {

  @Property
  @Persist
  private int countForComponentA;

  @Property
  @Persist
  private int countForComponentB;

}

TestComponent.tml

<t:container
xmlns:t="http://tapestry.apache.org/schema/tapestry_5_4.xsd"
xmlns:p="tapestry:parameter">

  <t:zone t:id="countZone" >
    Count : ${count}
  </t:zone>
  <t:eventLink t:async="true" t:event="updateCount" >Update Count for
Component ${compId}</t:eventLink>

</t:container>

TestComponent.java



public class TestComponent{


  @Parameter(required=true)
  @Property
  private int count;

  @Inject
  private ComponentResources componentResources;

  @Inject
  private AjaxResponseRenderer ajaxResponseRenderer;

  @InjectComponent
  private Zone countZone;

  public void onUpdateCount() {
    count++;
    ajaxResponseRenderer.addRender(countZone);
  }

  public String getCompId() {
    return componentResources.getId();
  }
}


On Thu, Feb 19, 2015 at 2:10 PM, Thiago H de Paula Figueiredo <
[hidden email]> wrote:

> On Thu, 19 Feb 2015 11:01:13 -0200, Sumanth <[hidden email]>
> wrote:
>
>  Hello Users,
>>
>
> Hi!
>
> Please post the code when asking for help. We're not psychics (well, at
> least I know I'm not). :)
>
>
>
>> I am facing a problem with Tapestry components and would like to know if
>> this is a bug.
>>
>> I have two components which are the same . They have a count field and a
>> link to update the count via ajax.
>>
>> The problem is when you click on the link from the second component then
>> the count zone of the first component gets updated (from UI perspective).
>> But if you refresh the page, then the values are properly shown.
>>
>> Please see the screenshots for further explanations
>>
>> http://s7.postimg.org/qrz7zuqjf/Before_Clicking_Anything.png
>>
>> http://s4.postimg.org/nenbw7brh/After_Clicking_Second_Link.png
>>
>> http://s10.postimg.org/8kaij68rt/After_Refresh.png
>>
>>
>> Kind Regards,
>> Sumanth
>>
>
>
> --
> Thiago H. de Paula Figueiredo
> Tapestry, Java and Hibernate consultant and developer
> http://machina.com.br
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>
Reply | Threaded
Open this post in threaded view
|

Re: T5.4 : Problem with two components with Ajax on the same page.

Thiago H de Paula Figueiredo
On Thu, 19 Feb 2015 11:17:57 -0200, Sumanth <[hidden email]>  
wrote:

> Forgot. :)

It happens, and I do that a lot. :P

What beta are you using?

--
Thiago H. de Paula Figueiredo
Tapestry, Java and Hibernate consultant and developer
http://machina.com.br

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: T5.4 : Problem with two components with Ajax on the same page.

roasteddragon
5.4 Beta 22

On Thu, Feb 19, 2015 at 3:46 PM, Thiago H de Paula Figueiredo <
[hidden email]> wrote:

> On Thu, 19 Feb 2015 11:17:57 -0200, Sumanth <[hidden email]>
> wrote:
>
>  Forgot. :)
>>
>
> It happens, and I do that a lot. :P
>
> What beta are you using?
>
>
> --
> Thiago H. de Paula Figueiredo
> Tapestry, Java and Hibernate consultant and developer
> http://machina.com.br
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>
Reply | Threaded
Open this post in threaded view
|

Re: T5.4 : Problem with two components with Ajax on the same page.

Chris Poulsen
Coul be clash of zone ids in the html? - try generating unique zone id
(client side id, not t:id) e.g using the supplied t:id + something more or
wrap the link in the zone and use zone ^ (may be too simplistic for a real
use).

--
Chris

On Thu, Feb 19, 2015 at 3:49 PM, Sumanth <[hidden email]> wrote:

> 5.4 Beta 22
>
> On Thu, Feb 19, 2015 at 3:46 PM, Thiago H de Paula Figueiredo <
> [hidden email]> wrote:
>
> > On Thu, 19 Feb 2015 11:17:57 -0200, Sumanth <[hidden email]>
> > wrote:
> >
> >  Forgot. :)
> >>
> >
> > It happens, and I do that a lot. :P
> >
> > What beta are you using?
> >
> >
> > --
> > Thiago H. de Paula Figueiredo
> > Tapestry, Java and Hibernate consultant and developer
> > http://machina.com.br
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [hidden email]
> > For additional commands, e-mail: [hidden email]
> >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: T5.4 : Problem with two components with Ajax on the same page.

George Christman
In reply to this post by roasteddragon
I would have thought tapestry would have done this automatically, but the
problem is your ajaxresponserender is telling the first zone to update
rather than _0. This will get your second zone updating.

ajaxResponseRenderer.addRender("countZone_0", countZone);

I'm not sure what the best automated way to do this would be.

On Thu, Feb 19, 2015 at 8:17 AM, Sumanth <[hidden email]> wrote:

> Forgot. :)
>
> TestPage.tml
>
> <t:test.TestComponent t:id="abcd" t:count="countForComponentA" />
>
>  <t:test.TestComponent t:id="hijk" t:count="countForComponentB" />
>
> TestPage.java
>
> public class TestPage {
>
>   @Property
>   @Persist
>   private int countForComponentA;
>
>   @Property
>   @Persist
>   private int countForComponentB;
>
> }
>
> TestComponent.tml
>
> <t:container
> xmlns:t="http://tapestry.apache.org/schema/tapestry_5_4.xsd"
> xmlns:p="tapestry:parameter">
>
>   <t:zone t:id="countZone" >
>     Count : ${count}
>   </t:zone>
>   <t:eventLink t:async="true" t:event="updateCount" >Update Count for
> Component ${compId}</t:eventLink>
>
> </t:container>
>
> TestComponent.java
>
>
>
> public class TestComponent{
>
>
>   @Parameter(required=true)
>   @Property
>   private int count;
>
>   @Inject
>   private ComponentResources componentResources;
>
>   @Inject
>   private AjaxResponseRenderer ajaxResponseRenderer;
>
>   @InjectComponent
>   private Zone countZone;
>
>   public void onUpdateCount() {
>     count++;
>     ajaxResponseRenderer.addRender(countZone);
>   }
>
>   public String getCompId() {
>     return componentResources.getId();
>   }
> }
>
>
> On Thu, Feb 19, 2015 at 2:10 PM, Thiago H de Paula Figueiredo <
> [hidden email]> wrote:
>
> > On Thu, 19 Feb 2015 11:01:13 -0200, Sumanth <[hidden email]>
> > wrote:
> >
> >  Hello Users,
> >>
> >
> > Hi!
> >
> > Please post the code when asking for help. We're not psychics (well, at
> > least I know I'm not). :)
> >
> >
> >
> >> I am facing a problem with Tapestry components and would like to know if
> >> this is a bug.
> >>
> >> I have two components which are the same . They have a count field and a
> >> link to update the count via ajax.
> >>
> >> The problem is when you click on the link from the second component then
> >> the count zone of the first component gets updated (from UI
> perspective).
> >> But if you refresh the page, then the values are properly shown.
> >>
> >> Please see the screenshots for further explanations
> >>
> >> http://s7.postimg.org/qrz7zuqjf/Before_Clicking_Anything.png
> >>
> >> http://s4.postimg.org/nenbw7brh/After_Clicking_Second_Link.png
> >>
> >> http://s10.postimg.org/8kaij68rt/After_Refresh.png
> >>
> >>
> >> Kind Regards,
> >> Sumanth
> >>
> >
> >
> > --
> > Thiago H. de Paula Figueiredo
> > Tapestry, Java and Hibernate consultant and developer
> > http://machina.com.br
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [hidden email]
> > For additional commands, e-mail: [hidden email]
> >
> >
>



--
George Christman
CEO
www.CarDaddy.com
P.O. Box 735
Johnstown, New York
Reply | Threaded
Open this post in threaded view
|

Re: T5.4 : Problem with two components with Ajax on the same page.

Thiago H de Paula Figueiredo
In reply to this post by Chris Poulsen
On Thu, 19 Feb 2015 14:14:55 -0200, Chris Poulsen <[hidden email]>  
wrote:

> Coul be clash of zone ids in the html? - try generating unique zone id
> (client side id, not t:id) e.g using the supplied t:id + something

You've nailed it, Chris. :) When using Zones, in one way of the other you  
need to pass Tapestry what zone client id (i.e. HTML id) to update. In  
this case, we have two Zones with the same t:id because they're in  
different component instances. No explicit client id was passed using the  
"id" attribute so, when the page is rendered, each get a different id, the  
first one being the t:id, the other ones the t:id concatenated with some  
unique value. When you're handling an event, there's no rendering  
involved, so zone.getClientId() returns the t:id, and the first zone is  
updated. This isn't exactly a Tapestry bug: I'd call it a limitation. The  
fix, as Chris said, is to provide explicit ids by using Zone's id  
parameter. For example:

<t:zone ... id="prop:zoneId">

@Inject
private ComponentResources resources;

public String getZonedId() {
        return resources.getId() + "-zone";
}


> or wrap the link in the zone and use zone ^ (may be too simplistic for a  
> real use).

I don't think that's too simplistic, provided you're always updating the  
same zone and the link is inside the zone. In this case, you cannot use  
AjaxResponseRenderer.

--
Thiago H. de Paula Figueiredo
Tapestry, Java and Hibernate consultant and developer
http://machina.com.br

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: T5.4 : Problem with two components with Ajax on the same page.

George Christman
In reply to this post by George Christman
Try this

    <t:zone t:id="countZone" id="${compId}">
        Count : ${count}
    </t:zone>
    <t:eventLink t:async="true" t:event="updateCount" >Update Count for
        Component ${compId}</t:eventLink>


public class TestComponent {
    @Parameter(required = true)
    @Property
    private int count;
    @Inject
    private ComponentResources componentResources;
    @Inject
    private AjaxResponseRenderer ajaxResponseRenderer;
    @InjectComponent
    private Zone countZone;
    public void onUpdateCount() {
        count++;
        System.out.println(getCompId());
        ajaxResponseRenderer.addRender(getCompId(), countZone);
    }
    public String getCompId() {
        return componentResources.getId();
    }
}

On Thu, Feb 19, 2015 at 1:13 PM, George Christman <[hidden email]>
wrote:

> I would have thought tapestry would have done this automatically, but the
> problem is your ajaxresponserender is telling the first zone to update
> rather than _0. This will get your second zone updating.
>
> ajaxResponseRenderer.addRender("countZone_0", countZone);
>
> I'm not sure what the best automated way to do this would be.
>
> On Thu, Feb 19, 2015 at 8:17 AM, Sumanth <[hidden email]> wrote:
>
>> Forgot. :)
>>
>> TestPage.tml
>>
>> <t:test.TestComponent t:id="abcd" t:count="countForComponentA" />
>>
>>  <t:test.TestComponent t:id="hijk" t:count="countForComponentB" />
>>
>> TestPage.java
>>
>> public class TestPage {
>>
>>   @Property
>>   @Persist
>>   private int countForComponentA;
>>
>>   @Property
>>   @Persist
>>   private int countForComponentB;
>>
>> }
>>
>> TestComponent.tml
>>
>> <t:container
>> xmlns:t="http://tapestry.apache.org/schema/tapestry_5_4.xsd"
>> xmlns:p="tapestry:parameter">
>>
>>   <t:zone t:id="countZone" >
>>     Count : ${count}
>>   </t:zone>
>>   <t:eventLink t:async="true" t:event="updateCount" >Update Count for
>> Component ${compId}</t:eventLink>
>>
>> </t:container>
>>
>> TestComponent.java
>>
>>
>>
>> public class TestComponent{
>>
>>
>>   @Parameter(required=true)
>>   @Property
>>   private int count;
>>
>>   @Inject
>>   private ComponentResources componentResources;
>>
>>   @Inject
>>   private AjaxResponseRenderer ajaxResponseRenderer;
>>
>>   @InjectComponent
>>   private Zone countZone;
>>
>>   public void onUpdateCount() {
>>     count++;
>>     ajaxResponseRenderer.addRender(countZone);
>>   }
>>
>>   public String getCompId() {
>>     return componentResources.getId();
>>   }
>> }
>>
>>
>> On Thu, Feb 19, 2015 at 2:10 PM, Thiago H de Paula Figueiredo <
>> [hidden email]> wrote:
>>
>> > On Thu, 19 Feb 2015 11:01:13 -0200, Sumanth <[hidden email]>
>> > wrote:
>> >
>> >  Hello Users,
>> >>
>> >
>> > Hi!
>> >
>> > Please post the code when asking for help. We're not psychics (well, at
>> > least I know I'm not). :)
>> >
>> >
>> >
>> >> I am facing a problem with Tapestry components and would like to know
>> if
>> >> this is a bug.
>> >>
>> >> I have two components which are the same . They have a count field and
>> a
>> >> link to update the count via ajax.
>> >>
>> >> The problem is when you click on the link from the second component
>> then
>> >> the count zone of the first component gets updated (from UI
>> perspective).
>> >> But if you refresh the page, then the values are properly shown.
>> >>
>> >> Please see the screenshots for further explanations
>> >>
>> >> http://s7.postimg.org/qrz7zuqjf/Before_Clicking_Anything.png
>> >>
>> >> http://s4.postimg.org/nenbw7brh/After_Clicking_Second_Link.png
>> >>
>> >> http://s10.postimg.org/8kaij68rt/After_Refresh.png
>> >>
>> >>
>> >> Kind Regards,
>> >> Sumanth
>> >>
>> >
>> >
>> > --
>> > Thiago H. de Paula Figueiredo
>> > Tapestry, Java and Hibernate consultant and developer
>> > http://machina.com.br
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: [hidden email]
>> > For additional commands, e-mail: [hidden email]
>> >
>> >
>>
>
>
>
> --
> George Christman
> CEO
> www.CarDaddy.com
> P.O. Box 735
> Johnstown, New York
>
>


--
George Christman
CEO
www.CarDaddy.com
P.O. Box 735
Johnstown, New York
Reply | Threaded
Open this post in threaded view
|

Re: T5.4 : Problem with two components with Ajax on the same page.

Thiago H de Paula Figueiredo
In reply to this post by George Christman
On Thu, 19 Feb 2015 16:13:34 -0200, George Christman  
<[hidden email]> wrote:

> I would have thought tapestry would have done this automatically,

It cannot by the reasons I've described in my other e-mail in this thread.  
:)

> but the problem is your ajaxresponserender is telling the first zone to  
> update
> rather than _0. This will get your second zone updating.

Correct.

> ajaxResponseRenderer.addRender("countZone_0", countZone);
>
> I'm not sure what the best automated way to do this would be.

Please check the message I've mentioned above. :)

--
Thiago H. de Paula Figueiredo
Tapestry, Java and Hibernate consultant and developer
http://machina.com.br

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: T5.4 : Problem with two components with Ajax on the same page.

Thiago H de Paula Figueiredo
In reply to this post by George Christman
On Thu, 19 Feb 2015 16:19:54 -0200, George Christman  
<[hidden email]> wrote:

>     <t:zone t:id="countZone" id="${compId}">

Never, never, never ever use ${} expansions when binding Tapestry  
parameters. In 100% of the cases, it's either harmless, but  
philosophically wrong (as in this case, where the parameter type is  
String) or completelywrong (when the parameter type isn't a String).  
id="prop:compId".

In addition, I'd prefer to give the zone an id different from the  
component surrounding it, in case the component itself needs an id in the  
future. Just a suggestion.

--
Thiago H. de Paula Figueiredo
Tapestry, Java and Hibernate consultant and developer
http://machina.com.br

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: T5.4 : Problem with two components with Ajax on the same page.

George Christman
We should probably clarify that in the docs, it's always been my assumption
you needed to use a component id with zones which you can can't dynamically
set. Thanks Thiago.

On Thu, Feb 19, 2015 at 1:27 PM, Thiago H de Paula Figueiredo <
[hidden email]> wrote:

> On Thu, 19 Feb 2015 16:19:54 -0200, George Christman <
> [hidden email]> wrote:
>
>      <t:zone t:id="countZone" id="${compId}">
>>
>
> Never, never, never ever use ${} expansions when binding Tapestry
> parameters. In 100% of the cases, it's either harmless, but philosophically
> wrong (as in this case, where the parameter type is String) or
> completelywrong (when the parameter type isn't a String). id="prop:compId".
>
> In addition, I'd prefer to give the zone an id different from the
> component surrounding it, in case the component itself needs an id in the
> future. Just a suggestion.
>
>
> --
> Thiago H. de Paula Figueiredo
> Tapestry, Java and Hibernate consultant and developer
> http://machina.com.br
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>


--
George Christman
CEO
www.CarDaddy.com
P.O. Box 735
Johnstown, New York
Reply | Threaded
Open this post in threaded view
|

Re: T5.4 : Problem with two components with Ajax on the same page.

roasteddragon
In reply to this post by George Christman
@Chris
Hi Chris,

I've tried with zone's with t:async and even zone with ^ but doesnt solve
the problem.

shouldn't the component be a black box from my perspective? And  like
George Christman has said, the zone's client id's are uniquely generated by
tapestry itself, but some how it is unaware of this fact. Secondly doing
this manually on the above mentioned component is easy but that is not
dynamic too.

One more thing, if we are building such a component from scratch maybe we
can take care of it but we have some complex component (a table component
with lazy loading etc) and going inside it to change every id to make it
unique ourselves cannot be done. This issue came up today only because we
needed two such components in the same page but different tabs and when the
second table never updated it's data content instead it was updating the
first table's data.

ajaxResponseRenderer.addRender("countZone_0", countZone) this will never
work for us because, once the zone is updated then there is high
possibility that the client id would have changed, for example in lazy
loading results , then the results would not further load as the id will be
updated by tapestry.

kind regards
Sumanth
On 19-Feb-2015 7:15 pm, "George Christman" <[hidden email]> wrote:

> I would have thought tapestry would have done this automatically, but the
> problem is your ajaxresponserender is telling the first zone to update
> rather than _0. This will get your second zone updating.
>
> ajaxResponseRenderer.addRender("countZone_0", countZone);
>
> I'm not sure what the best automated way to do this would be.
>
> On Thu, Feb 19, 2015 at 8:17 AM, Sumanth <[hidden email]> wrote:
>
> > Forgot. :)
> >
> > TestPage.tml
> >
> > <t:test.TestComponent t:id="abcd" t:count="countForComponentA" />
> >
> >  <t:test.TestComponent t:id="hijk" t:count="countForComponentB" />
> >
> > TestPage.java
> >
> > public class TestPage {
> >
> >   @Property
> >   @Persist
> >   private int countForComponentA;
> >
> >   @Property
> >   @Persist
> >   private int countForComponentB;
> >
> > }
> >
> > TestComponent.tml
> >
> > <t:container
> > xmlns:t="http://tapestry.apache.org/schema/tapestry_5_4.xsd"
> > xmlns:p="tapestry:parameter">
> >
> >   <t:zone t:id="countZone" >
> >     Count : ${count}
> >   </t:zone>
> >   <t:eventLink t:async="true" t:event="updateCount" >Update Count for
> > Component ${compId}</t:eventLink>
> >
> > </t:container>
> >
> > TestComponent.java
> >
> >
> >
> > public class TestComponent{
> >
> >
> >   @Parameter(required=true)
> >   @Property
> >   private int count;
> >
> >   @Inject
> >   private ComponentResources componentResources;
> >
> >   @Inject
> >   private AjaxResponseRenderer ajaxResponseRenderer;
> >
> >   @InjectComponent
> >   private Zone countZone;
> >
> >   public void onUpdateCount() {
> >     count++;
> >     ajaxResponseRenderer.addRender(countZone);
> >   }
> >
> >   public String getCompId() {
> >     return componentResources.getId();
> >   }
> > }
> >
> >
> > On Thu, Feb 19, 2015 at 2:10 PM, Thiago H de Paula Figueiredo <
> > [hidden email]> wrote:
> >
> > > On Thu, 19 Feb 2015 11:01:13 -0200, Sumanth <[hidden email]>
> > > wrote:
> > >
> > >  Hello Users,
> > >>
> > >
> > > Hi!
> > >
> > > Please post the code when asking for help. We're not psychics (well, at
> > > least I know I'm not). :)
> > >
> > >
> > >
> > >> I am facing a problem with Tapestry components and would like to know
> if
> > >> this is a bug.
> > >>
> > >> I have two components which are the same . They have a count field
> and a
> > >> link to update the count via ajax.
> > >>
> > >> The problem is when you click on the link from the second component
> then
> > >> the count zone of the first component gets updated (from UI
> > perspective).
> > >> But if you refresh the page, then the values are properly shown.
> > >>
> > >> Please see the screenshots for further explanations
> > >>
> > >> http://s7.postimg.org/qrz7zuqjf/Before_Clicking_Anything.png
> > >>
> > >> http://s4.postimg.org/nenbw7brh/After_Clicking_Second_Link.png
> > >>
> > >> http://s10.postimg.org/8kaij68rt/After_Refresh.png
> > >>
> > >>
> > >> Kind Regards,
> > >> Sumanth
> > >>
> > >
> > >
> > > --
> > > Thiago H. de Paula Figueiredo
> > > Tapestry, Java and Hibernate consultant and developer
> > > http://machina.com.br
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [hidden email]
> > > For additional commands, e-mail: [hidden email]
> > >
> > >
> >
>
>
>
> --
> George Christman
> CEO
> www.CarDaddy.com
> P.O. Box 735
> Johnstown, New York
>
Reply | Threaded
Open this post in threaded view
|

Re: T5.4 : Problem with two components with Ajax on the same page.

George Christman
As Thiago pointed out, you need to come up with some sort of dynamic id
generator that can be used to set the id in the tml and the
responseRenderer. I happened to just use the id you used for your
component, but as thiago said, you may want to use that else where and may
want to generate a unique one for your zone.

On Thu, Feb 19, 2015 at 1:45 PM, Sumanth <[hidden email]> wrote:

> @Chris
> Hi Chris,
>
> I've tried with zone's with t:async and even zone with ^ but doesnt solve
> the problem.
>
> shouldn't the component be a black box from my perspective? And  like
> George Christman has said, the zone's client id's are uniquely generated by
> tapestry itself, but some how it is unaware of this fact. Secondly doing
> this manually on the above mentioned component is easy but that is not
> dynamic too.
>
> One more thing, if we are building such a component from scratch maybe we
> can take care of it but we have some complex component (a table component
> with lazy loading etc) and going inside it to change every id to make it
> unique ourselves cannot be done. This issue came up today only because we
> needed two such components in the same page but different tabs and when the
> second table never updated it's data content instead it was updating the
> first table's data.
>
> ajaxResponseRenderer.addRender("countZone_0", countZone) this will never
> work for us because, once the zone is updated then there is high
> possibility that the client id would have changed, for example in lazy
> loading results , then the results would not further load as the id will be
> updated by tapestry.
>
> kind regards
> Sumanth
> On 19-Feb-2015 7:15 pm, "George Christman" <[hidden email]>
> wrote:
>
> > I would have thought tapestry would have done this automatically, but the
> > problem is your ajaxresponserender is telling the first zone to update
> > rather than _0. This will get your second zone updating.
> >
> > ajaxResponseRenderer.addRender("countZone_0", countZone);
> >
> > I'm not sure what the best automated way to do this would be.
> >
> > On Thu, Feb 19, 2015 at 8:17 AM, Sumanth <[hidden email]>
> wrote:
> >
> > > Forgot. :)
> > >
> > > TestPage.tml
> > >
> > > <t:test.TestComponent t:id="abcd" t:count="countForComponentA" />
> > >
> > >  <t:test.TestComponent t:id="hijk" t:count="countForComponentB" />
> > >
> > > TestPage.java
> > >
> > > public class TestPage {
> > >
> > >   @Property
> > >   @Persist
> > >   private int countForComponentA;
> > >
> > >   @Property
> > >   @Persist
> > >   private int countForComponentB;
> > >
> > > }
> > >
> > > TestComponent.tml
> > >
> > > <t:container
> > > xmlns:t="http://tapestry.apache.org/schema/tapestry_5_4.xsd"
> > > xmlns:p="tapestry:parameter">
> > >
> > >   <t:zone t:id="countZone" >
> > >     Count : ${count}
> > >   </t:zone>
> > >   <t:eventLink t:async="true" t:event="updateCount" >Update Count for
> > > Component ${compId}</t:eventLink>
> > >
> > > </t:container>
> > >
> > > TestComponent.java
> > >
> > >
> > >
> > > public class TestComponent{
> > >
> > >
> > >   @Parameter(required=true)
> > >   @Property
> > >   private int count;
> > >
> > >   @Inject
> > >   private ComponentResources componentResources;
> > >
> > >   @Inject
> > >   private AjaxResponseRenderer ajaxResponseRenderer;
> > >
> > >   @InjectComponent
> > >   private Zone countZone;
> > >
> > >   public void onUpdateCount() {
> > >     count++;
> > >     ajaxResponseRenderer.addRender(countZone);
> > >   }
> > >
> > >   public String getCompId() {
> > >     return componentResources.getId();
> > >   }
> > > }
> > >
> > >
> > > On Thu, Feb 19, 2015 at 2:10 PM, Thiago H de Paula Figueiredo <
> > > [hidden email]> wrote:
> > >
> > > > On Thu, 19 Feb 2015 11:01:13 -0200, Sumanth <[hidden email]
> >
> > > > wrote:
> > > >
> > > >  Hello Users,
> > > >>
> > > >
> > > > Hi!
> > > >
> > > > Please post the code when asking for help. We're not psychics (well,
> at
> > > > least I know I'm not). :)
> > > >
> > > >
> > > >
> > > >> I am facing a problem with Tapestry components and would like to
> know
> > if
> > > >> this is a bug.
> > > >>
> > > >> I have two components which are the same . They have a count field
> > and a
> > > >> link to update the count via ajax.
> > > >>
> > > >> The problem is when you click on the link from the second component
> > then
> > > >> the count zone of the first component gets updated (from UI
> > > perspective).
> > > >> But if you refresh the page, then the values are properly shown.
> > > >>
> > > >> Please see the screenshots for further explanations
> > > >>
> > > >> http://s7.postimg.org/qrz7zuqjf/Before_Clicking_Anything.png
> > > >>
> > > >> http://s4.postimg.org/nenbw7brh/After_Clicking_Second_Link.png
> > > >>
> > > >> http://s10.postimg.org/8kaij68rt/After_Refresh.png
> > > >>
> > > >>
> > > >> Kind Regards,
> > > >> Sumanth
> > > >>
> > > >
> > > >
> > > > --
> > > > Thiago H. de Paula Figueiredo
> > > > Tapestry, Java and Hibernate consultant and developer
> > > > http://machina.com.br
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: [hidden email]
> > > > For additional commands, e-mail: [hidden email]
> > > >
> > > >
> > >
> >
> >
> >
> > --
> > George Christman
> > CEO
> > www.CarDaddy.com
> > P.O. Box 735
> > Johnstown, New York
> >
>



--
George Christman
CEO
www.CarDaddy.com
P.O. Box 735
Johnstown, New York
Reply | Threaded
Open this post in threaded view
|

Re: T5.4 : Problem with two components with Ajax on the same page.

George Christman
this should work perfectly for you


 public String getZonedId() {
        return resources.getId() + "-zone";
}

public void onUpdateCount() {
        count++;
        System.out.println(getCompId());
        ajaxResponseRenderer.addRender(getZonedId(), countZone);
    }

<t:zone t:id="countZone" id="prop:zoneId">
        Count : ${count}
    </t:zone>
    <t:eventLink t:async="true" t:event="updateCount" >Update Count for
        Component ${compId}</t:eventLink>

On Thu, Feb 19, 2015 at 1:53 PM, George Christman <[hidden email]>
wrote:

> As Thiago pointed out, you need to come up with some sort of dynamic id
> generator that can be used to set the id in the tml and the
> responseRenderer. I happened to just use the id you used for your
> component, but as thiago said, you may want to use that else where and may
> want to generate a unique one for your zone.
>
> On Thu, Feb 19, 2015 at 1:45 PM, Sumanth <[hidden email]> wrote:
>
>> @Chris
>> Hi Chris,
>>
>> I've tried with zone's with t:async and even zone with ^ but doesnt solve
>> the problem.
>>
>> shouldn't the component be a black box from my perspective? And  like
>> George Christman has said, the zone's client id's are uniquely generated
>> by
>> tapestry itself, but some how it is unaware of this fact. Secondly doing
>> this manually on the above mentioned component is easy but that is not
>> dynamic too.
>>
>> One more thing, if we are building such a component from scratch maybe we
>> can take care of it but we have some complex component (a table component
>> with lazy loading etc) and going inside it to change every id to make it
>> unique ourselves cannot be done. This issue came up today only because we
>> needed two such components in the same page but different tabs and when
>> the
>> second table never updated it's data content instead it was updating the
>> first table's data.
>>
>> ajaxResponseRenderer.addRender("countZone_0", countZone) this will never
>> work for us because, once the zone is updated then there is high
>> possibility that the client id would have changed, for example in lazy
>> loading results , then the results would not further load as the id will
>> be
>> updated by tapestry.
>>
>> kind regards
>> Sumanth
>> On 19-Feb-2015 7:15 pm, "George Christman" <[hidden email]>
>> wrote:
>>
>> > I would have thought tapestry would have done this automatically, but
>> the
>> > problem is your ajaxresponserender is telling the first zone to update
>> > rather than _0. This will get your second zone updating.
>> >
>> > ajaxResponseRenderer.addRender("countZone_0", countZone);
>> >
>> > I'm not sure what the best automated way to do this would be.
>> >
>> > On Thu, Feb 19, 2015 at 8:17 AM, Sumanth <[hidden email]>
>> wrote:
>> >
>> > > Forgot. :)
>> > >
>> > > TestPage.tml
>> > >
>> > > <t:test.TestComponent t:id="abcd" t:count="countForComponentA" />
>> > >
>> > >  <t:test.TestComponent t:id="hijk" t:count="countForComponentB" />
>> > >
>> > > TestPage.java
>> > >
>> > > public class TestPage {
>> > >
>> > >   @Property
>> > >   @Persist
>> > >   private int countForComponentA;
>> > >
>> > >   @Property
>> > >   @Persist
>> > >   private int countForComponentB;
>> > >
>> > > }
>> > >
>> > > TestComponent.tml
>> > >
>> > > <t:container
>> > > xmlns:t="http://tapestry.apache.org/schema/tapestry_5_4.xsd"
>> > > xmlns:p="tapestry:parameter">
>> > >
>> > >   <t:zone t:id="countZone" >
>> > >     Count : ${count}
>> > >   </t:zone>
>> > >   <t:eventLink t:async="true" t:event="updateCount" >Update Count for
>> > > Component ${compId}</t:eventLink>
>> > >
>> > > </t:container>
>> > >
>> > > TestComponent.java
>> > >
>> > >
>> > >
>> > > public class TestComponent{
>> > >
>> > >
>> > >   @Parameter(required=true)
>> > >   @Property
>> > >   private int count;
>> > >
>> > >   @Inject
>> > >   private ComponentResources componentResources;
>> > >
>> > >   @Inject
>> > >   private AjaxResponseRenderer ajaxResponseRenderer;
>> > >
>> > >   @InjectComponent
>> > >   private Zone countZone;
>> > >
>> > >   public void onUpdateCount() {
>> > >     count++;
>> > >     ajaxResponseRenderer.addRender(countZone);
>> > >   }
>> > >
>> > >   public String getCompId() {
>> > >     return componentResources.getId();
>> > >   }
>> > > }
>> > >
>> > >
>> > > On Thu, Feb 19, 2015 at 2:10 PM, Thiago H de Paula Figueiredo <
>> > > [hidden email]> wrote:
>> > >
>> > > > On Thu, 19 Feb 2015 11:01:13 -0200, Sumanth <
>> [hidden email]>
>> > > > wrote:
>> > > >
>> > > >  Hello Users,
>> > > >>
>> > > >
>> > > > Hi!
>> > > >
>> > > > Please post the code when asking for help. We're not psychics
>> (well, at
>> > > > least I know I'm not). :)
>> > > >
>> > > >
>> > > >
>> > > >> I am facing a problem with Tapestry components and would like to
>> know
>> > if
>> > > >> this is a bug.
>> > > >>
>> > > >> I have two components which are the same . They have a count field
>> > and a
>> > > >> link to update the count via ajax.
>> > > >>
>> > > >> The problem is when you click on the link from the second component
>> > then
>> > > >> the count zone of the first component gets updated (from UI
>> > > perspective).
>> > > >> But if you refresh the page, then the values are properly shown.
>> > > >>
>> > > >> Please see the screenshots for further explanations
>> > > >>
>> > > >> http://s7.postimg.org/qrz7zuqjf/Before_Clicking_Anything.png
>> > > >>
>> > > >> http://s4.postimg.org/nenbw7brh/After_Clicking_Second_Link.png
>> > > >>
>> > > >> http://s10.postimg.org/8kaij68rt/After_Refresh.png
>> > > >>
>> > > >>
>> > > >> Kind Regards,
>> > > >> Sumanth
>> > > >>
>> > > >
>> > > >
>> > > > --
>> > > > Thiago H. de Paula Figueiredo
>> > > > Tapestry, Java and Hibernate consultant and developer
>> > > > http://machina.com.br
>> > > >
>> > > >
>> ---------------------------------------------------------------------
>> > > > To unsubscribe, e-mail: [hidden email]
>> > > > For additional commands, e-mail: [hidden email]
>> > > >
>> > > >
>> > >
>> >
>> >
>> >
>> > --
>> > George Christman
>> > CEO
>> > www.CarDaddy.com
>> > P.O. Box 735
>> > Johnstown, New York
>> >
>>
>
>
>
> --
> George Christman
> CEO
> www.CarDaddy.com
> P.O. Box 735
> Johnstown, New York
>
>


--
George Christman
CEO
www.CarDaddy.com
P.O. Box 735
Johnstown, New York
Reply | Threaded
Open this post in threaded view
|

Re: T5.4 : Problem with two components with Ajax on the same page.

Thiago H de Paula Figueiredo
In reply to this post by George Christman
On Thu, 19 Feb 2015 16:32:16 -0200, George Christman  
<[hidden email]> wrote:

> We should probably clarify that in the docs, it's always been my  
> assumption you needed to use a component id with zones which you can  
> can't dynamically set.

t:id is the component id and it's static, not being able to be set  
dynamically. For Zone specifically, id (not t:id) is the parameter which  
will define the client-side (HTML) id, which can be defined dynamically,  
and that's in Zone's JavaDoc.

--
Thiago H. de Paula Figueiredo
Tapestry, Java and Hibernate consultant and developer
http://machina.com.br

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: T5.4 : Problem with two components with Ajax on the same page.

Thiago H de Paula Figueiredo
In reply to this post by George Christman
On Thu, 19 Feb 2015 16:56:21 -0200, George Christman  
<[hidden email]> wrote:

> this should work perfectly for you
>
>
>  public String getZonedId() {
>         return resources.getId() + "-zone";
> }
>
> public void onUpdateCount() {
>         count++;
>         System.out.println(getCompId());
>         ajaxResponseRenderer.addRender(getZonedId(), countZone);
>     }

With the Zone's id being dynamically defined based on the component id,  
you can use ajaxResponseRenderer.addRender(countZone) directly, without  
needing to specify the zone id, because the Zone field will already  
provide the correct id when its getClientId() method is called by  
AjaxResponseRenderer(Impl).addRender(ClientBodyElement).

--
Thiago H. de Paula Figueiredo
Tapestry, Java and Hibernate consultant and developer
http://machina.com.br

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: T5.4 : Problem with two components with Ajax on the same page.

roasteddragon
In reply to this post by George Christman
Hello George, Hello Thiago,

Well I can certainly try the way you have suggested, but wouldn't it be
better tif tapestry can handle it? Because, I know that we need to specify
client id for the zone when we use it, so generally a static client id will
be given to these component eg : <t:zone t:id="Hello" id="hello" > but if
the zone is inside another component then shouldn't tapestry generate
unique id for this zone like componentid_zoneid?

If some one is developing a component he would not have imagine a condition
where his component will be used on the same page twice?.

So suppose I use a component which is developed by someone else, then will
it not cause problem because he did not include dynamic id's for a zone
inside the component?

I might be wrong in my understand but a component should work like a black
box to me right?. <t:hisComponent t:id="his">, so whether there is zone
inside the component or not, it should just behave like a black box to me
right?

On Thu, Feb 19, 2015 at 7:53 PM, George Christman <[hidden email]>
wrote:

> As Thiago pointed out, you need to come up with some sort of dynamic id
> generator that can be used to set the id in the tml and the
> responseRenderer. I happened to just use the id you used for your
> component, but as thiago said, you may want to use that else where and may
> want to generate a unique one for your zone.
>
> On Thu, Feb 19, 2015 at 1:45 PM, Sumanth <[hidden email]> wrote:
>
> > @Chris
> > Hi Chris,
> >
> > I've tried with zone's with t:async and even zone with ^ but doesnt solve
> > the problem.
> >
> > shouldn't the component be a black box from my perspective? And  like
> > George Christman has said, the zone's client id's are uniquely generated
> by
> > tapestry itself, but some how it is unaware of this fact. Secondly doing
> > this manually on the above mentioned component is easy but that is not
> > dynamic too.
> >
> > One more thing, if we are building such a component from scratch maybe we
> > can take care of it but we have some complex component (a table component
> > with lazy loading etc) and going inside it to change every id to make it
> > unique ourselves cannot be done. This issue came up today only because we
> > needed two such components in the same page but different tabs and when
> the
> > second table never updated it's data content instead it was updating the
> > first table's data.
> >
> > ajaxResponseRenderer.addRender("countZone_0", countZone) this will never
> > work for us because, once the zone is updated then there is high
> > possibility that the client id would have changed, for example in lazy
> > loading results , then the results would not further load as the id will
> be
> > updated by tapestry.
> >
> > kind regards
> > Sumanth
> > On 19-Feb-2015 7:15 pm, "George Christman" <[hidden email]>
> > wrote:
> >
> > > I would have thought tapestry would have done this automatically, but
> the
> > > problem is your ajaxresponserender is telling the first zone to update
> > > rather than _0. This will get your second zone updating.
> > >
> > > ajaxResponseRenderer.addRender("countZone_0", countZone);
> > >
> > > I'm not sure what the best automated way to do this would be.
> > >
> > > On Thu, Feb 19, 2015 at 8:17 AM, Sumanth <[hidden email]>
> > wrote:
> > >
> > > > Forgot. :)
> > > >
> > > > TestPage.tml
> > > >
> > > > <t:test.TestComponent t:id="abcd" t:count="countForComponentA" />
> > > >
> > > >  <t:test.TestComponent t:id="hijk" t:count="countForComponentB" />
> > > >
> > > > TestPage.java
> > > >
> > > > public class TestPage {
> > > >
> > > >   @Property
> > > >   @Persist
> > > >   private int countForComponentA;
> > > >
> > > >   @Property
> > > >   @Persist
> > > >   private int countForComponentB;
> > > >
> > > > }
> > > >
> > > > TestComponent.tml
> > > >
> > > > <t:container
> > > > xmlns:t="http://tapestry.apache.org/schema/tapestry_5_4.xsd"
> > > > xmlns:p="tapestry:parameter">
> > > >
> > > >   <t:zone t:id="countZone" >
> > > >     Count : ${count}
> > > >   </t:zone>
> > > >   <t:eventLink t:async="true" t:event="updateCount" >Update Count for
> > > > Component ${compId}</t:eventLink>
> > > >
> > > > </t:container>
> > > >
> > > > TestComponent.java
> > > >
> > > >
> > > >
> > > > public class TestComponent{
> > > >
> > > >
> > > >   @Parameter(required=true)
> > > >   @Property
> > > >   private int count;
> > > >
> > > >   @Inject
> > > >   private ComponentResources componentResources;
> > > >
> > > >   @Inject
> > > >   private AjaxResponseRenderer ajaxResponseRenderer;
> > > >
> > > >   @InjectComponent
> > > >   private Zone countZone;
> > > >
> > > >   public void onUpdateCount() {
> > > >     count++;
> > > >     ajaxResponseRenderer.addRender(countZone);
> > > >   }
> > > >
> > > >   public String getCompId() {
> > > >     return componentResources.getId();
> > > >   }
> > > > }
> > > >
> > > >
> > > > On Thu, Feb 19, 2015 at 2:10 PM, Thiago H de Paula Figueiredo <
> > > > [hidden email]> wrote:
> > > >
> > > > > On Thu, 19 Feb 2015 11:01:13 -0200, Sumanth <
> [hidden email]
> > >
> > > > > wrote:
> > > > >
> > > > >  Hello Users,
> > > > >>
> > > > >
> > > > > Hi!
> > > > >
> > > > > Please post the code when asking for help. We're not psychics
> (well,
> > at
> > > > > least I know I'm not). :)
> > > > >
> > > > >
> > > > >
> > > > >> I am facing a problem with Tapestry components and would like to
> > know
> > > if
> > > > >> this is a bug.
> > > > >>
> > > > >> I have two components which are the same . They have a count field
> > > and a
> > > > >> link to update the count via ajax.
> > > > >>
> > > > >> The problem is when you click on the link from the second
> component
> > > then
> > > > >> the count zone of the first component gets updated (from UI
> > > > perspective).
> > > > >> But if you refresh the page, then the values are properly shown.
> > > > >>
> > > > >> Please see the screenshots for further explanations
> > > > >>
> > > > >> http://s7.postimg.org/qrz7zuqjf/Before_Clicking_Anything.png
> > > > >>
> > > > >> http://s4.postimg.org/nenbw7brh/After_Clicking_Second_Link.png
> > > > >>
> > > > >> http://s10.postimg.org/8kaij68rt/After_Refresh.png
> > > > >>
> > > > >>
> > > > >> Kind Regards,
> > > > >> Sumanth
> > > > >>
> > > > >
> > > > >
> > > > > --
> > > > > Thiago H. de Paula Figueiredo
> > > > > Tapestry, Java and Hibernate consultant and developer
> > > > > http://machina.com.br
> > > > >
> > > > >
> ---------------------------------------------------------------------
> > > > > To unsubscribe, e-mail: [hidden email]
> > > > > For additional commands, e-mail: [hidden email]
> > > > >
> > > > >
> > > >
> > >
> > >
> > >
> > > --
> > > George Christman
> > > CEO
> > > www.CarDaddy.com
> > > P.O. Box 735
> > > Johnstown, New York
> > >
> >
>
>
>
> --
> George Christman
> CEO
> www.CarDaddy.com
> P.O. Box 735
> Johnstown, New York
>
Reply | Threaded
Open this post in threaded view
|

Re: T5.4 : Problem with two components with Ajax on the same page.

Thiago H de Paula Figueiredo
In reply to this post by roasteddragon
On Thu, 19 Feb 2015 16:45:48 -0200, Sumanth <[hidden email]>  
wrote:

> I've tried with zone's with t:async and even zone with ^ but doesnt solve
> the problem.

zone="^" wouldn't work because the link is outside the zone. In addition,  
for it to work, you'd need to return the object you wanted to be rendered  
(in this case, countZone.getBody()) and you couldn't use  
AjaxResponseRenderer.

> shouldn't the component be a black box from my perspective?

Yes, and it is.

> And like George Christman has said, the zone's client id's are uniquely  
> generated by tapestry itself,

This just happens when you don't provide one by using Zone's id parameter.

--
Thiago H. de Paula Figueiredo
Tapestry, Java and Hibernate consultant and developer
http://machina.com.br

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: T5.4 : Problem with two components with Ajax on the same page.

Thiago H de Paula Figueiredo
In reply to this post by roasteddragon
On Thu, 19 Feb 2015 17:17:01 -0200, Sumanth <[hidden email]>  
wrote:

> Hello George, Hello Thiago,

Hi!

> Well I can certainly try the way you have suggested, but wouldn't it be
> better tif tapestry can handle it? Because, I know that we need to  
> specify id for the zone when we use it, so generally a static client id  
> will
> be given to these component eg : <t:zone t:id="Hello" id="hello" > but if
> the zone is inside another component then shouldn't tapestry generate
> unique id for this zone like componentid_zoneid?

Tapestry does generate the unique client-side ids for Zone and other  
components when rendering the template. The problem is that it doesn't  
when handling events. It shouldn't, because, to do that, Tapestry would  
need to simulate a rendering when handling the event. Tapestry 4 did that.  
It was the very much misunderstood "rewind phase". It made understanding  
the framework more difficult and had worse performance. Tapestry 5 is very  
better off without it.

> If some one is developing a component he would not have imagine a  
> condition where his component will be used on the same page twice?.

Yes, the developer should think of this situation because it's very common.

> So suppose I use a component which is developed by someone else, then  
> will it not cause problem because he did not include dynamic id's for a  
> zone
> inside the component?

Probably yes, and this should be considered a badly implemented component  
for not using Zone correctly.

> I might be wrong in my understand but a component should work like a  
> black> box to me right?.

Yes!

> <t:hisComponent t:id="his">, so whether there is zone
> inside the component or not, it should just behave like a black box to me
> right?

Yes. The component author should write his component correctly.

--
Thiago H. de Paula Figueiredo
Tapestry, Java and Hibernate consultant and developer
http://machina.com.br

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

12