package be.selckin.swu; 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 class LabeledButton<T> extends Button { private IModel<String> label; public LabeledButton(String id, String label) { this(id, Model.of(label)); } public LabeledButton(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(); } }