Yes, this sample component is really simple, it was just a test case.

My real component takes is used to display the product price in an order
from the client cart (many lines, so in a loop). And as local variable I
had the discount.... so once a discount was found for a line, it was kept
for all the following lines... not very good for business !

On Wed, 5 May 2010 18:09:03 +0200, Katia Aresti Gonzalez
<katiaare...@gmail.com> wrote:
> If nobody desagrees, I think SetupRender is the place to initialize the
> render variables.
> Anyway, your component seems very simple ;  I don't know exactly which
will
> be useful for.... You could use component parameters...
> I depends on the component...
> 
> 2010/5/5 Nicolas Bouillon <nico...@bouil.org>
> 
>> Thank you for you fast response.
>>
>> Very disturbing in fact, because I was using this kind of method in lot
>> of
>> place... and I don't know if the component will be used alone or in a
>> loop.
>>
>> So I have to reset such local variable in a @SetupRender each time, or
>> there is a better solution ?
>>
>> Thanks.
>>
>> On Wed, 5 May 2010 17:58:41 +0200, Katia Aresti Gonzalez
>> <katiaare...@gmail.com> wrote:
>> > Hi,
>> >
>> > No, there is no bug.
>> >
>> > In the first example you have 2 components, so two contexts.
>> >
>> > In the second one you have just one component, so when you loop into
>> > it,
>> it
>> > increases twice, as you are increasing the same component
>> >
>> > Katia
>> >
>> > 2010/5/5 Nicolas Bouillon <nico...@bouil.org>
>> >
>> >> Hello,
>> >>
>> >> I'm facing a strange behaviour on a component. Here if a sample
>> component
>> >> :
>> >>
>> >> package tapestry.components;
>> >>
>> >> import org.apache.tapestry5.MarkupWriter;
>> >>
>> >> public class CountComponent {
>> >>
>> >>    private Integer count = 0;
>> >>
>> >>    public Integer getCount() {
>> >>        if (count == null) {
>> >>            count = 1;
>> >>        } else {
>> >>            count++;
>> >>        }
>> >>        return count;
>> >>    }
>> >>
>> >>    public void beginRender(MarkupWriter writer) {
>> >>        writer.element("span");
>> >>        writer.write("->" + getCount().toString());
>> >>        writer.end();
>> >>    }
>> >>
>> >> }
>> >>
>> >> if if call mutliple type my component like :
>> >>
>> >> <t:countComponent />
>> >> <t:countComponent />
>> >>
>> >> I got the wanted behavior :
>> >>
>> >> -> 1
>> >> -> 1
>> >>
>> >> But if i nest my component into a loop like :
>> >>
>> >> <t:loop source="items" value="var:item">
>> >>    <t:countComponent />
>> >> </t:loop>
>> >>
>> >> I got this behaviour :
>> >>
>> >> -> 1
>> >> -> 2
>> >> etc..
>> >>
>> >> Is this intended or a bug ?
>> >>
>> >> Best regards
>> >>
>> >> Nicolas.
>> >>
>> >>
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>> >> For additional commands, e-mail: users-h...@tapestry.apache.org
>> >>
>> >>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>
>>

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

Reply via email to