package de.flower.rmt.ui.page.events.manager; import de.flower.common.ui.panel.BasePanel; import de.flower.rmt.model.db.entity.event.Event; import de.flower.rmt.model.db.type.RSVPStatus; import de.flower.rmt.service.IInvitationManager; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.model.IModel; import org.apache.wicket.model.LoadableDetachableModel; import org.apache.wicket.spring.injection.annot.SpringBean; /** * @author flowerrrr */ public class InvitationSummaryPanel extends BasePanel { @SpringBean private IInvitationManager invitationManager; public InvitationSummaryPanel(IModel<Event> model) { add(new Label("accepted", createModel(model, RSVPStatus.ACCEPTED))); add(new Label("unsure", createModel(model, RSVPStatus.UNSURE))); add(new Label("declined", createModel(model, RSVPStatus.DECLINED))); add(new Label("noresponse", createModel(model, RSVPStatus.NORESPONSE))); } private IModel<Long> createModel(final IModel<Event> model, final RSVPStatus rsvpStatus) { return new LoadableDetachableModel<Long>() { @Override protected Long load() { return invitationManager.numByEventAndStatus(model.getObject(), rsvpStatus); } }; } }