package de.flower.rmt.ui.page.event.player; import de.flower.common.ui.alert.AlertMessage; import de.flower.common.ui.alert.AlertMessagePanel; import de.flower.rmt.model.db.entity.Invitation; import de.flower.rmt.model.db.type.RSVPStatus; import org.apache.wicket.model.IModel; import org.apache.wicket.model.ResourceModel; /** * Displayed on event page if player has not yet changed his status to declined after event has been canceled. * * @author flowerrrr */ public abstract class ConfirmEventCanceledMessage extends AlertMessage { private IModel<Invitation> model; public ConfirmEventCanceledMessage(final IModel<Invitation> model) { super(new ResourceModel("alert.message.event.canceled.confirm"), new ResourceModel("alert.message.event.canceled.button.confirm")); this.model = model; } @Override public boolean onClick(final AlertMessagePanel alertMessagePanel) { confirm(); return false; } @Override public boolean isVisible(final AlertMessagePanel alertMessagePanel) { Invitation invitation = model.getObject(); if (invitation == null) { return false; } boolean isCanceled = invitation.getEvent().isCanceled(); return isCanceled && invitation.getStatus() != RSVPStatus.DECLINED; } @Override public String getSessionKey() { return super.getSessionKey() + model.getObject().getId(); } protected abstract void confirm(); }