package be.selckin.swu; import org.apache.wicket.ajax.markup.html.form.AjaxButton; import org.apache.wicket.markup.ComponentTag; import org.apache.wicket.markup.MarkupStream; import org.apache.wicket.markup.html.form.Button; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; public abstract class LabeledAjaxButton<T> extends AjaxButton { private IModel<String> label; protected LabeledAjaxButton(String id, String label) { this(id, Model.of(label)); } protected LabeledAjaxButton(String id, IModel<String> label) { super(id); this.label = label; } @Override public void onComponentTagBody(MarkupStream markupStream, ComponentTag openTag) { super.onComponentTagBody(markupStream, openTag); replaceComponentTagBody(markupStream, openTag, label.getObject()); } @Override protected void onDetach() { super.onDetach(); label.detach(); } }