package org.brixcms.plugin.content.blog.tile.post; import org.apache.wicket.markup.repeater.Item; import org.apache.wicket.markup.repeater.data.DataView; import org.apache.wicket.model.IModel; import org.brixcms.jcr.wrapper.BrixNode; import org.brixcms.plugin.content.blog.post.PostNode; import org.brixcms.plugin.content.blog.tile.navigation.StatelessPager; import org.brixcms.plugin.content.blog.tile.navigation.StatelessPagination; import org.brixcms.web.generic.BrixGenericPanel; import org.brixcms.web.nodepage.BrixPageParameters; import org.brixcms.web.nodepage.PageParametersAware; /** * @author dan.simko@gmail.com */ @SuppressWarnings("serial") public class PostsPanel extends BrixGenericPanel<BrixNode> implements PageParametersAware { private final DataView<PostNode> dataView; public PostsPanel(String id, IModel<BrixNode> tileNodeModel) { super(id, tileNodeModel); PostContainer postContainer = new PostContainer(); postContainer.load(tileNodeModel.getObject()); PostDataProvider articleDataProvider = new PostDataProvider(postContainer); dataView = new DataView<PostNode>("posts", articleDataProvider, postContainer.getItemsPerPage()) { @Override protected void populateItem(Item<PostNode> item) { item.add(new PostPanel("post", item.getModel(), false)); } }; add(dataView); add(new StatelessPager("navigator", dataView)); } @Override public void contributeToPageParameters(BrixPageParameters params) { } @Override public void initializeFromPageParameters(BrixPageParameters params) { int page = params.get(StatelessPagination.PAGE_PARAM_NAME).toInt(0); if (page > 0) { dataView.setCurrentPage(page); } } }