package org.brixcms.plugin.content.blog.tile;
import org.apache.wicket.model.IModel;
import org.apache.wicket.util.string.Strings;
import org.brixcms.BrixNodeModel;
import org.brixcms.jcr.wrapper.BrixNode;
import org.brixcms.plugin.content.blog.post.PostNode;
import org.brixcms.plugin.content.blog.tile.post.PostContainer;
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 abstract class BaseBlogPanel extends BrixGenericPanel<BrixNode> implements PageParametersAware {
protected IModel<PostNode> activePost = new BrixNodeModel<PostNode>();
public BaseBlogPanel(String id, IModel<BrixNode> tileNodeModel) {
super(id, tileNodeModel);
}
@Override
public void contributeToPageParameters(BrixPageParameters params) {
}
@Override
public void initializeFromPageParameters(BrixPageParameters params) {
BaseBlogContainer postContainer = newBlogContainer();
postContainer.load(getModelObject());
String selectedPostName = params.get(0).toString();
BrixNode folder = postContainer.getContentFolder();
if (!Strings.isEmpty(selectedPostName) && folder != null && folder.hasNode(selectedPostName)) {
activePost.setObject((PostNode) postContainer.getContentFolder().getNode(selectedPostName));
}
}
@Override
protected void onDetach() {
super.onDetach();
activePost.detach();
}
protected abstract BaseBlogContainer newBlogContainer();
}