001
014
015 package com.liferay.portlet.wiki.action;
016
017 import com.liferay.portal.kernel.servlet.SessionErrors;
018 import com.liferay.portal.kernel.util.ParamUtil;
019 import com.liferay.portal.security.auth.PrincipalException;
020 import com.liferay.portal.struts.PortletAction;
021 import com.liferay.portlet.wiki.NoSuchNodeException;
022 import com.liferay.portlet.wiki.model.WikiNode;
023
024 import javax.portlet.PortletConfig;
025 import javax.portlet.RenderRequest;
026 import javax.portlet.RenderResponse;
027
028 import org.apache.struts.action.ActionForm;
029 import org.apache.struts.action.ActionForward;
030 import org.apache.struts.action.ActionMapping;
031
032
036 public class ViewNodeAction extends PortletAction {
037
038 public static ActionForward viewNode(
039 ActionMapping actionMapping, RenderRequest renderRequest,
040 String defaultForward)
041 throws Exception {
042
043 try {
044 WikiNode node = ActionUtil.getNode(renderRequest);
045
046 ActionUtil.getFirstVisiblePage(node.getNodeId(), renderRequest);
047 }
048 catch (Exception e) {
049 if (e instanceof NoSuchNodeException ||
050 e instanceof PrincipalException) {
051
052 SessionErrors.add(renderRequest, e.getClass());
053
054 return actionMapping.findForward("portlet.wiki.error");
055 }
056 else {
057 throw e;
058 }
059 }
060
061 long categoryId = ParamUtil.getLong(renderRequest, "categoryId");
062
063 if (categoryId > 0) {
064 return actionMapping.findForward(
065 "portlet.wiki.view_categorized_pages");
066 }
067 else {
068 return actionMapping.findForward(defaultForward);
069 }
070 }
071
072 @Override
073 public ActionForward render(
074 ActionMapping actionMapping, ActionForm actionForm,
075 PortletConfig portletConfig, RenderRequest renderRequest,
076 RenderResponse renderResponse)
077 throws Exception {
078
079 return viewNode(
080 actionMapping, renderRequest,
081 getForward(renderRequest, "portlet.wiki.view_node"));
082 }
083
084 }