package net.ftlines.blog.cdidemo.web.app; import java.util.Iterator; import javax.inject.Inject; import net.ftlines.blog.cdidemo.model.Team; import net.ftlines.blog.cdidemo.model.TeamsRepository; import net.ftlines.blog.cdidemo.web.EntityProvider; 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.navigation.paging.PagingNavigator; import org.apache.wicket.markup.repeater.Item; import org.apache.wicket.markup.repeater.data.DataView; import org.apache.wicket.model.IModel; import org.apache.wicket.model.PropertyModel; public class TeamsListPage extends BasePage { public TeamsListPage() { DataView<?> employees = new DataView<Team>("teams", new TeamsProvider()) { @Override protected void populateItem(Item<Team> item) { IModel<Team> team = item.getModel(); item.add(new Label("name", new PropertyModel(team, "name"))); item.add(new BookmarkablePageLink("edit", TeamEditPage.class, TeamEditPage.forTeam(team.getObject()))); } }; employees.setItemsPerPage(10); add(employees); add(new PagingNavigator("navigator", employees)); } private class TeamsProvider extends EntityProvider<Team> { @Inject TeamsRepository teams; public Iterator<Team> iterator(int first, int count) { return teams.list(first, count).iterator(); } public int size() { return teams.count(); } } }