Re: Feedback AjaxButton

2008-01-23 Thread Jean-Baptiste Bellet

It works !
Thanks a lot Vincent :)
jb

Vincent Demay wrote:

Hi Jean-Baptiste

Jean-Baptiste Bellet a écrit :

Hello all,
This is my first wicket message, so first of all, I would like to 
gongrats the whole team for the great job !

Now, my problem :
I have created a NewFeedbackPanel which extends FeedbackPanel and 
override OnBeforeRender(). This NewFeedbackPanel is created into a 
class and added to a target :


final NewFeedbackPanel indicator = new NewFeedbackPanel(indicator, 
3, true);
final NewAjaxButton link = new NewAjaxButton(DOWNLOAD_NEW, new 
ResourceModel(preferences.downloadNew))

{
@Override
public void onClick(AjaxRequestTarget target)
{
..
// log successful message and refresh target feedback

this.info(getLocalizer().getString(preferences.downloadSuccess, this));

target.addComponent(indicator);
target.addComponent(PhoneDetails.this);
}
};
add(link);
add(indicator);


When I test, i can't see any feedback, and the method OnBeforeRender() 
of the class NewFeedbackPanel is never called.

Any idea ?
Thanks,
jb


Code for NewFeedbackPanel.java :
public class NewFeedbackPanel extends FeedbackPanel
{

private static final int DEFAULT_TIME = 1000;

private boolean _blocker;

private int _displayTime;

public NewFeedbackPanel(String id)
{
this(id, DEFAULT_TIME, false);
}

public NewFeedbackPanel(String id, int displayTime)
{
this(id, displayTime, false);
}

public NewFeedbackPanel(String id, int displayTime, boolean blocker)
{
super(id);
_blocker = blocker;
setOutputMarkupPlaceholderTag(true);
add(HeaderContributor.forCss(NewFeedbackPanel.class, 
feedback.css));

setVisible(false);
Here, you feedback is set as not visible. If you take a look into 
Component#internalBeforeRender, you can see that a not visible component 
never call onBeforeRender method.


So you need to override Component#callOnBeforeRenderIfNotVisible to 
return true in order to evaluate you code in onBeforeRender

_displayTime = displayTime  0 ? displayTime : DEFAULT_TIME;
if (_blocker)
{
add(new AttributeAppender(class, new Model(hidder),  
));

}
}

@Override
protected void onBeforeRender()
{
super.onBeforeRender();
IRequestTarget target = RequestCycle.get().getRequestTarget();
if (anyMessage())
{
if (target instanceof AjaxRequestTarget)
{
String javascript = 
window.setTimeout(function(){window.document.getElementById(' + 
getMarkupId()
+ ').style.display = 'none'},  + 
_displayTime + );;
((AjaxRequestTarget) 
target).appendJavascript(javascript);


}
}
else
{
setVisible(false);
}
}


}

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



Cheers

--
Vincent Demay


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



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



Re: Feedback AjaxButton

2008-01-22 Thread Gerolf Seitz
you need to add the feedbackpanel to the ajaxrequesttarget like:

target.addComponent(indicator);

  gerolf

On Jan 22, 2008 12:20 PM, Jean-Baptiste Bellet [EMAIL PROTECTED] wrote:

 Hello all,
 This is my first wicket message, so first of all, I would like to
 gongrats the whole team for the great job !
 Now, my problem :
 I have created a NewFeedbackPanel which extends FeedbackPanel and
 override OnBeforeRender(). This NewFeedbackPanel is created into a class
 and added to a target :

 final NewFeedbackPanel indicator = new NewFeedbackPanel(indicator,
 3, true);
 final NewAjaxButton link = new NewAjaxButton(DOWNLOAD_NEW, new
 ResourceModel(preferences.downloadNew))
{
@Override
public void onClick(AjaxRequestTarget target)
{
..
// log successful message and refresh target
 feedback
this.info(getLocalizer().getString(
 preferences.downloadSuccess, this));
target.addComponent(indicator);
target.addComponent(PhoneDetails.this);
}
};
 add(link);
 add(indicator);


 When I test, i can't see any feedback, and the method OnBeforeRender()
 of the class NewFeedbackPanel is never called.
 Any idea ?
 Thanks,
 jb


 Code for NewFeedbackPanel.java :
 public class NewFeedbackPanel extends FeedbackPanel
 {

 private static final int DEFAULT_TIME = 1000;

 private boolean _blocker;

 private int _displayTime;

 public NewFeedbackPanel(String id)
 {
 this(id, DEFAULT_TIME, false);
 }

 public NewFeedbackPanel(String id, int displayTime)
 {
 this(id, displayTime, false);
 }

 public NewFeedbackPanel(String id, int displayTime, boolean blocker)
 {
 super(id);
 _blocker = blocker;
 setOutputMarkupPlaceholderTag(true);
 add(HeaderContributor.forCss(NewFeedbackPanel.class,
 feedback.css));
 setVisible(false);
 _displayTime = displayTime  0 ? displayTime : DEFAULT_TIME;
 if (_blocker)
 {
 add(new AttributeAppender(class, new Model(hidder),  ));
 }
 }

 @Override
 protected void onBeforeRender()
 {
 super.onBeforeRender();
 IRequestTarget target = RequestCycle.get().getRequestTarget();
 if (anyMessage())
 {
 if (target instanceof AjaxRequestTarget)
 {
 String javascript =
 window.setTimeout(function(){window.document.getElementById(' +
 getMarkupId()
 + ').style.display = 'none'},  + _displayTime
 + );;
 ((AjaxRequestTarget) target).appendJavascript(javascript);

 }
 }
 else
 {
 setVisible(false);
 }
 }


 }

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




Re: Feedback AjaxButton

2008-01-22 Thread Jean-Baptiste Bellet

I've done this, isn't it ?
just below the line 
this.info(getLocalizer().getString(preferences.downloadSuccess, this));

jb

Gerolf Seitz wrote:

you need to add the feedbackpanel to the ajaxrequesttarget like:

target.addComponent(indicator);

  gerolf

On Jan 22, 2008 12:20 PM, Jean-Baptiste Bellet [EMAIL PROTECTED] wrote:


Hello all,
This is my first wicket message, so first of all, I would like to
gongrats the whole team for the great job !
Now, my problem :
I have created a NewFeedbackPanel which extends FeedbackPanel and
override OnBeforeRender(). This NewFeedbackPanel is created into a class
and added to a target :

final NewFeedbackPanel indicator = new NewFeedbackPanel(indicator,
3, true);
final NewAjaxButton link = new NewAjaxButton(DOWNLOAD_NEW, new
ResourceModel(preferences.downloadNew))
   {
   @Override
   public void onClick(AjaxRequestTarget target)
   {
   ..
   // log successful message and refresh target
feedback
   this.info(getLocalizer().getString(
preferences.downloadSuccess, this));
   target.addComponent(indicator);
   target.addComponent(PhoneDetails.this);
   }
   };
add(link);
add(indicator);


When I test, i can't see any feedback, and the method OnBeforeRender()
of the class NewFeedbackPanel is never called.
Any idea ?
Thanks,
jb


Code for NewFeedbackPanel.java :
public class NewFeedbackPanel extends FeedbackPanel
{

private static final int DEFAULT_TIME = 1000;

private boolean _blocker;

private int _displayTime;

public NewFeedbackPanel(String id)
{
this(id, DEFAULT_TIME, false);
}

public NewFeedbackPanel(String id, int displayTime)
{
this(id, displayTime, false);
}

public NewFeedbackPanel(String id, int displayTime, boolean blocker)
{
super(id);
_blocker = blocker;
setOutputMarkupPlaceholderTag(true);
add(HeaderContributor.forCss(NewFeedbackPanel.class,
feedback.css));
setVisible(false);
_displayTime = displayTime  0 ? displayTime : DEFAULT_TIME;
if (_blocker)
{
add(new AttributeAppender(class, new Model(hidder),  ));
}
}

@Override
protected void onBeforeRender()
{
super.onBeforeRender();
IRequestTarget target = RequestCycle.get().getRequestTarget();
if (anyMessage())
{
if (target instanceof AjaxRequestTarget)
{
String javascript =
window.setTimeout(function(){window.document.getElementById(' +
getMarkupId()
+ ').style.display = 'none'},  + _displayTime
+ );;
((AjaxRequestTarget) target).appendJavascript(javascript);

}
}
else
{
setVisible(false);
}
}


}

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






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



Re: Feedback AjaxButton

2008-01-22 Thread Gerolf Seitz
oops, my bad.
is was looking for a feedback variable ;)

gerolf

On Jan 22, 2008 1:18 PM, Jean-Baptiste Bellet [EMAIL PROTECTED] wrote:

 I've done this, isn't it ?
 just below the line
 this.info(getLocalizer().getString(preferences.downloadSuccess, this));
 jb

 Gerolf Seitz wrote:
  you need to add the feedbackpanel to the ajaxrequesttarget like:
 
  target.addComponent(indicator);
 
gerolf
 
  On Jan 22, 2008 12:20 PM, Jean-Baptiste Bellet [EMAIL PROTECTED]
 wrote:
 
  Hello all,
  This is my first wicket message, so first of all, I would like to
  gongrats the whole team for the great job !
  Now, my problem :
  I have created a NewFeedbackPanel which extends FeedbackPanel and
  override OnBeforeRender(). This NewFeedbackPanel is created into a
 class
  and added to a target :
 
  final NewFeedbackPanel indicator = new NewFeedbackPanel(indicator,
  3, true);
  final NewAjaxButton link = new NewAjaxButton(DOWNLOAD_NEW, new
  ResourceModel(preferences.downloadNew))
 {
 @Override
 public void onClick(AjaxRequestTarget target)
 {
 ..
 // log successful message and refresh target
  feedback
 this.info(getLocalizer().getString(
  preferences.downloadSuccess, this));
 target.addComponent(indicator);
 target.addComponent(PhoneDetails.this);
 }
 };
  add(link);
  add(indicator);
 
 
  When I test, i can't see any feedback, and the method OnBeforeRender()
  of the class NewFeedbackPanel is never called.
  Any idea ?
  Thanks,
  jb
 
 
  Code for NewFeedbackPanel.java :
  public class NewFeedbackPanel extends FeedbackPanel
  {
 
  private static final int DEFAULT_TIME = 1000;
 
  private boolean _blocker;
 
  private int _displayTime;
 
  public NewFeedbackPanel(String id)
  {
  this(id, DEFAULT_TIME, false);
  }
 
  public NewFeedbackPanel(String id, int displayTime)
  {
  this(id, displayTime, false);
  }
 
  public NewFeedbackPanel(String id, int displayTime, boolean
 blocker)
  {
  super(id);
  _blocker = blocker;
  setOutputMarkupPlaceholderTag(true);
  add(HeaderContributor.forCss(NewFeedbackPanel.class,
  feedback.css));
  setVisible(false);
  _displayTime = displayTime  0 ? displayTime : DEFAULT_TIME;
  if (_blocker)
  {
  add(new AttributeAppender(class, new Model(hidder), 
 ));
  }
  }
 
  @Override
  protected void onBeforeRender()
  {
  super.onBeforeRender();
  IRequestTarget target = RequestCycle.get().getRequestTarget();
  if (anyMessage())
  {
  if (target instanceof AjaxRequestTarget)
  {
  String javascript =
  window.setTimeout(function(){window.document.getElementById(' +
  getMarkupId()
  + ').style.display = 'none'},  + _displayTime
  + );;
  ((AjaxRequestTarget)
 target).appendJavascript(javascript);
 
  }
  }
  else
  {
  setVisible(false);
  }
  }
 
 
  }
 
  -
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 

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




Re: Feedback AjaxButton

2008-01-22 Thread Vincent Demay

Hi Jean-Baptiste

Jean-Baptiste Bellet a écrit :

Hello all,
This is my first wicket message, so first of all, I would like to 
gongrats the whole team for the great job !

Now, my problem :
I have created a NewFeedbackPanel which extends FeedbackPanel and 
override OnBeforeRender(). This NewFeedbackPanel is created into a 
class and added to a target :


final NewFeedbackPanel indicator = new NewFeedbackPanel(indicator, 
3, true);
final NewAjaxButton link = new NewAjaxButton(DOWNLOAD_NEW, new 
ResourceModel(preferences.downloadNew))

{
@Override
public void onClick(AjaxRequestTarget target)
{
..
// log successful message and refresh target feedback

this.info(getLocalizer().getString(preferences.downloadSuccess, this));

target.addComponent(indicator);
target.addComponent(PhoneDetails.this);
}
};
add(link);
add(indicator);


When I test, i can't see any feedback, and the method OnBeforeRender() 
of the class NewFeedbackPanel is never called.

Any idea ?
Thanks,
jb


Code for NewFeedbackPanel.java :
public class NewFeedbackPanel extends FeedbackPanel
{

private static final int DEFAULT_TIME = 1000;

private boolean _blocker;

private int _displayTime;

public NewFeedbackPanel(String id)
{
this(id, DEFAULT_TIME, false);
}

public NewFeedbackPanel(String id, int displayTime)
{
this(id, displayTime, false);
}

public NewFeedbackPanel(String id, int displayTime, boolean blocker)
{
super(id);
_blocker = blocker;
setOutputMarkupPlaceholderTag(true);
add(HeaderContributor.forCss(NewFeedbackPanel.class, 
feedback.css));

setVisible(false);
Here, you feedback is set as not visible. If you take a look into 
Component#internalBeforeRender, you can see that a not visible component 
never call onBeforeRender method.


So you need to override Component#callOnBeforeRenderIfNotVisible to 
return true in order to evaluate you code in onBeforeRender

_displayTime = displayTime  0 ? displayTime : DEFAULT_TIME;
if (_blocker)
{
add(new AttributeAppender(class, new Model(hidder),  
));

}
}

@Override
protected void onBeforeRender()
{
super.onBeforeRender();
IRequestTarget target = RequestCycle.get().getRequestTarget();
if (anyMessage())
{
if (target instanceof AjaxRequestTarget)
{
String javascript = 
window.setTimeout(function(){window.document.getElementById(' + 
getMarkupId()
+ ').style.display = 'none'},  + 
_displayTime + );;
((AjaxRequestTarget) 
target).appendJavascript(javascript);


}
}
else
{
setVisible(false);
}
}


}

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



Cheers

--
Vincent Demay


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



Re: Feedback AjaxButton

2008-01-22 Thread Sergiy Yevtushenko
Jean-Baptiste Bellet wrote:

I guess that you need call indicator.setOutputMarkupId(true) before adding it to
page.

Regards,
Sergiy.
*-
[EMAIL PROTECTED] http://es.os2.ru/

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



Re: Feedback AjaxButton

2008-01-22 Thread Gerolf Seitz
not only setOutputMarkupId(true), but rather
.setOutputMarkupPlaceHolderTag(true)
otherwise an invisible component can't be made visible via ajax updates.

  gerolf

On Jan 22, 2008 9:30 PM, Sergiy Yevtushenko [EMAIL PROTECTED]
wrote:

 Jean-Baptiste Bellet wrote:

 I guess that you need call indicator.setOutputMarkupId(true) before adding
 it to
 page.

 Regards,
Sergiy.
 *-
 [EMAIL PROTECTED] http://es.os2.ru/

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