package org.brixcms.plugin.content.blog.post; import java.util.ArrayList; import java.util.List; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.IModel; import org.apache.wicket.model.ResourceModel; import org.brixcms.auth.Action.Context; import org.brixcms.jcr.wrapper.BrixNode; import org.brixcms.plugin.content.ContentPlugin; import org.brixcms.plugin.content.blog.post.admin.PostViewTab; import org.brixcms.plugin.site.ManageNodeTabFactory; import org.brixcms.web.tab.CachingAbstractTab; import org.brixcms.web.tab.IBrixTab; /** * @author dan.simko@gmail.com */ @SuppressWarnings("serial") public class ManagePostNodeTabFactory implements ManageNodeTabFactory { @Override @SuppressWarnings({ "rawtypes", "unchecked" }) public List<IBrixTab> getManageNodeTabs(IModel<BrixNode> nodeModel) { String type = nodeModel.getObject().getNodeType(); if (PostNodePlugin.TYPE.equals(type)) { return getTabs((IModel) nodeModel); } else { return null; } } public static List<IBrixTab> getTabs(final IModel<PostNode> nodeModel) { List<IBrixTab> tabs = new ArrayList<IBrixTab>(1); IBrixTab previewTab = new CachingAbstractTab(new ResourceModel("view", "View"), 300) { @Override public Panel newPanel(String panelId) { return new PostViewTab(panelId, nodeModel); } @Override public boolean isVisible() { return ContentPlugin.get().canViewPostNode(nodeModel.getObject(), Context.ADMINISTRATION); } }; tabs.add(previewTab); return tabs; } }