package de.flower.rmt.ui.page.venues.manager; import de.flower.common.ui.panel.BasePanel; import de.flower.rmt.model.db.entity.Venue; import de.flower.rmt.service.IVenueManager; import de.flower.rmt.ui.page.venues.manager.map.VenuesMapPanel; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.IModel; import org.apache.wicket.model.LoadableDetachableModel; import org.apache.wicket.spring.injection.annot.SpringBean; import java.util.List; /** * @author flowerrrr */ public class VenueMainPanel extends BasePanel { @SpringBean private IVenueManager venueManager; public VenueMainPanel() { final IModel<List<Venue>> listModel = getListModel(); add(new WebMarkupContainer("noEntry") { @Override public boolean isVisible() { return listModel.getObject().isEmpty(); } }); WebMarkupContainer container = new WebMarkupContainer("container") { @Override public boolean isVisible() { return !listModel.getObject().isEmpty(); } }; container.add(getListPanel(listModel)); container.add(getMapPanel(listModel)); add(container); } private IModel<List<Venue>> getListModel() { return new LoadableDetachableModel<List<Venue>>() { @Override protected List<Venue> load() { return venueManager.findAll(); } }; } protected Panel getListPanel(final IModel<List<Venue>> listModel) { return new VenueListPanel(listModel); } protected Panel getMapPanel(final IModel<List<Venue>> listModel) { return new VenuesMapPanel(listModel); } }