Re: conditional markup change with AjaxEditableLabel

2007-08-27 Thread Eelco Hillenius
On 8/24/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> Hi,
>
> i am using a subclass of AjaxEditableLabel.
> This one works fine so far but I have one Problem.
>
> If the value of the label is < 0 the markup should change.
> I tried it this way with no effect.
>
> public class MyAjaxEditableLabel extends AjaxEditableLabel{
>
> protected void onSubmit(AjaxRequestTarget target)
> {
> [...]
> if(position.getValue()[index] < 0)
> {
> this.getLabel().add(new AttributeModifier("class", true,
> new Model("negativ")));
> }
> else{
> this.getLabel().add(new AttributeModifier("class", true,
> new Model("positiv")));
> }
>
> this.getLabel().setVisible(true);
> this.getEditor().setVisible(false);
> target.addComponent(MyAjaxEditableLabel.this);
> }
>
> }
>
> In my css - stylesheet the class "negativ" and "positv" are defined.
> So if the value of the label changes to < 0 nothing happens.
>
> Any suggestions?

If I recall correctly, attribute changes not rendered correctly with
ajax requests was an issue that was recently solved. Matej, was that
you who fixed it?

Eelco

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: conditional markup change

2007-08-24 Thread Oleg Taranenko
Hello Konstantin,

Your code snippet is from panel constructor, is not it? So far it
executed only first time, by creating page!

Your need explicitly use in the link handler replaceWith() method. See
Component's javadoc.

Cheers,

Oleg.

Friday, August 24, 2007, 8:46:01 AM, you wrote:

> I need to change presentation dynamically depending on
> object status and I can do it with conditionally using
> different panels like this:
> if( getWSSession().getVisit().isSaved( v.getId() ) ){
> add( new VehicleUncompareControl(
> "compareControl", new Model( v ), new Component[]{
> ajaxTarget, VehicleItem.this}));
> } else{
> add( new VehicleCompareControl(
> "compareControl", new Model( v ), new Component[]{
> ajaxTarget, VehicleItem.this}));
> }

> so far so good, BUT, when I click on the AjaxLink
> inside of those panels they change status of the
> component (vehicle), so I would like the item to
> reflect the change - and THAT does not happens. It is
> sort of understandable because component already has
> been created...

> But the question is: How can I do that in Wicket:
> conditionally change markup and see effect of those 
> changes for Ajax updates too?

> Konstantin Ignatyev




> PS: If this is a typical day on planet earth, humans will add
> fifteen million tons of carbon to the atmosphere, destroy 115 square miles of
> tropical rainforest, create seventy-two miles of desert, eliminate
> between forty to one hundred species, erode seventy-one million tons of
> topsoil, add 2,700 tons of CFCs to the stratosphere, and increase their 
> population by 263,000

> Bowers, C.A.  The Culture of Denial:  Why the Environmental
> Movement Needs a Strategy for Reforming Universities and Public Schools.  New
> York:  State University of New York Press, 1997: (4) (5) (p.206)

> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]



-- 
Best regards,
 Olegmailto:[EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: conditional markup change

2007-08-23 Thread Igor Vaynberg
there are a few ways to do this

one is to add both and override isvisible() on them to conditionally hide
one or the other

another way would be for that link to replace one with the other


-igor


On 8/23/07, Konstantin Ignatyev <[EMAIL PROTECTED]> wrote:
>
> I need to change presentation dynamically depending on
> object status and I can do it with conditionally using
> different panels like this:
> if( getWSSession().getVisit().isSaved( v.getId() ) ){
> add( new VehicleUncompareControl(
> "compareControl", new Model( v ), new Component[]{
> ajaxTarget, VehicleItem.this}));
> } else{
> add( new VehicleCompareControl(
> "compareControl", new Model( v ), new Component[]{
> ajaxTarget, VehicleItem.this}));
> }
>
> so far so good, BUT, when I click on the AjaxLink
> inside of those panels they change status of the
> component (vehicle), so I would like the item to
> reflect the change - and THAT does not happens. It is
> sort of understandable because component already has
> been created...
>
> But the question is: How can I do that in Wicket:
> conditionally change markup and see effect of those
> changes for Ajax updates too?
>
> Konstantin Ignatyev
>
>
>
>
> PS: If this is a typical day on planet earth, humans will add fifteen
> million tons of carbon to the atmosphere, destroy 115 square miles of
> tropical rainforest, create seventy-two miles of desert, eliminate between
> forty to one hundred species, erode seventy-one million tons of topsoil, add
> 2,700 tons of CFCs to the stratosphere, and increase their population by
> 263,000
>
> Bowers, C.A.  The Culture of Denial:  Why the Environmental Movement Needs
> a Strategy for Reforming Universities and Public Schools.  New York:  State
> University of New York Press, 1997: (4) (5) (p.206)
>
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>