package de.flower.rmt.ui.page.event.manager.lineup; import de.flower.common.ui.ajax.event.AjaxEventListener; import de.flower.common.ui.ajax.event.AjaxEventSender; import de.flower.common.ui.ajax.markup.html.AjaxLink; import de.flower.common.ui.panel.BasePanel; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.model.IModel; /** * @author flowerrrr */ public abstract class PublishPanel<T> extends BasePanel<T> { public PublishPanel(IModel<T> model) { super(model); add(new AjaxEventListener(PublishPanel.this)); add(new AjaxLink("publishButton") { @Override public void onClick(final AjaxRequestTarget target) { publish(target); AjaxEventSender.send(this, PublishPanel.this); } @Override public boolean isVisible() { return !isPublished(); } }); add(new WebMarkupContainer("publishedMessage") { @Override public boolean isVisible() { return isPublished(); } }); } protected abstract void publish(AjaxRequestTarget target); protected abstract boolean isPublished(); }