package net.rrm.ehour.ui.admin.backup.backup; import net.rrm.ehour.ui.common.decorator.LoadingSpinnerDecorator; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.attributes.AjaxRequestAttributes; import org.apache.wicket.ajax.markup.html.AjaxLink; import org.apache.wicket.model.IModel; public class SingleDownloadLink extends AjaxLink<Boolean> { private final AbstractDownloadBehavior downloadBehavior; public SingleDownloadLink(String id, IModel<Boolean> model, AbstractDownloadBehavior downloadBehavior) { super(id, model); this.downloadBehavior = downloadBehavior; add(downloadBehavior); } @Override public void onClick(AjaxRequestTarget target) { Boolean busy = getModelObject(); if (!busy) { getModel().setObject(Boolean.TRUE); downloadBehavior.initiate(target); } } @Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { super.updateAjaxAttributes(attributes); attributes.getAjaxCallListeners().add(new LoadingSpinnerDecorator()); } }