package de.flower.rmt.ui.page.venues.player; import de.flower.common.ui.ajax.event.AjaxEventListener; import de.flower.common.ui.markup.html.list.EntityListView; import de.flower.common.ui.panel.BasePanel; import de.flower.rmt.model.db.entity.Venue; import de.flower.rmt.service.IVenueManager; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.link.BookmarkablePageLink; import org.apache.wicket.markup.html.link.Link; import org.apache.wicket.markup.html.list.ListItem; import org.apache.wicket.model.IModel; import org.apache.wicket.spring.injection.annot.SpringBean; import java.util.List; /** * @author flowerrrr */ public class VenueListPanel extends BasePanel { @SpringBean private IVenueManager venueManager; public VenueListPanel(IModel<List<Venue>> listModel) { WebMarkupContainer listContainer = new WebMarkupContainer("listContainer"); add(listContainer); listContainer.add(new EntityListView<Venue>("list", listModel) { @Override protected void populateItem(final ListItem<Venue> item) { Link link = createViewLink("link", item); link.add(new Label("name", item.getModelObject().getName())); item.add(link); } }); listContainer.add(new AjaxEventListener(Venue.class)); } private Link createViewLink(String id, final ListItem<Venue> item) { return new BookmarkablePageLink(id, VenuePage.class, VenuePage.getPageParams(item.getModelObject().getId())); } }