In your AjaxButton
you could override updateAjaxAttributes()
and add an IAjaxCallListener
which hides the button via jQuery right after you click the button. When the responsePage is rendered the button appears again. The code for the override looks like this:
@Override
protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
super.updateAjaxAttributes(attributes);
attributes.getAjaxCallListeners().add(new IAjaxCallListener() {
@Override
public CharSequence getBeforeHandler(Component cmpnt) {
return "$(\"#" + cmpnt.getMarkupId() + "\").hide()";
}
@Override
public CharSequence getPrecondition(Component cmpnt) {
return "";
}
@Override
public CharSequence getBeforeSendHandler(Component cmpnt) {
return "";
}
@Override
public CharSequence getAfterHandler(Component cmpnt) {
return "";
}
@Override
public CharSequence getSuccessHandler(Component cmpnt) {
return "";
}
@Override
public CharSequence getFailureHandler(Component cmpnt) {
return "";
}
@Override
public CharSequence getCompleteHandler(Component cmpnt) {
return "";
}
});
}