package de.flower.common.ui.ajax.markup.html.form; import de.flower.common.ui.ajax.PreventDoubleClickAjaxCallDecorator; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.IAjaxCallDecorator; import org.apache.wicket.ajax.calldecorator.AjaxPreprocessingCallDecorator; import org.apache.wicket.markup.html.form.Form; /** * @author flowerrrr */ public abstract class AjaxSubmitLink extends org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink { private String preprocessingCallDecoratorScript; public AjaxSubmitLink(String id) { super(id); } public AjaxSubmitLink(String id, Form<?> form) { super(id, form); } @Override protected IAjaxCallDecorator getAjaxCallDecorator() { IAjaxCallDecorator xdefault = new PreventDoubleClickAjaxCallDecorator(); if (preprocessingCallDecoratorScript != null) { return new AjaxPreprocessingCallDecorator(xdefault) { @Override public CharSequence preDecorateScript(final CharSequence script) { return preprocessingCallDecoratorScript + script; } }; } else { return xdefault; } } @Override protected final void onError(AjaxRequestTarget target, Form<?> form) { target.add(form); } public void setPreprocessingCallDecoratorScript(final String script) { this.preprocessingCallDecoratorScript = script; } }