package net.rrm.ehour.ui.common.formguard; import net.rrm.ehour.ui.common.decorator.LoadingSpinnerDecorator; import org.apache.wicket.ajax.attributes.AjaxCallListener; import org.apache.wicket.ajax.attributes.AjaxRequestAttributes; import org.apache.wicket.ajax.attributes.IAjaxCallListener; import org.apache.wicket.ajax.markup.html.AjaxLink; import org.apache.wicket.markup.html.IHeaderContributor; import java.util.List; public abstract class GuardedAjaxLink<T> extends AjaxLink<T> implements IHeaderContributor { public GuardedAjaxLink(String id) { super(id); } @Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { super.updateAjaxAttributes(attributes); List<IAjaxCallListener> listeners = attributes.getAjaxCallListeners(); AjaxCallListener listener = new GuardFormAjaxCallListener(); listeners.add(listener); listeners.add(new LoadingSpinnerDecorator()); } }