1
22
23 package com.liferay.portlet.wikidisplay.action;
24
25 import com.liferay.portal.kernel.servlet.SessionErrors;
26 import com.liferay.portal.kernel.util.GetterUtil;
27 import com.liferay.portal.kernel.util.ParamUtil;
28 import com.liferay.portal.kernel.util.StringPool;
29 import com.liferay.portal.security.auth.PrincipalException;
30 import com.liferay.portal.struts.PortletAction;
31 import com.liferay.portal.util.WebKeys;
32 import com.liferay.portlet.wiki.NoSuchNodeException;
33 import com.liferay.portlet.wiki.NoSuchPageException;
34 import com.liferay.portlet.wiki.model.WikiNode;
35 import com.liferay.portlet.wiki.model.WikiPage;
36 import com.liferay.portlet.wiki.model.impl.WikiPageImpl;
37 import com.liferay.portlet.wiki.service.WikiNodeServiceUtil;
38 import com.liferay.portlet.wiki.service.WikiPageServiceUtil;
39
40 import javax.portlet.PortletConfig;
41 import javax.portlet.PortletPreferences;
42 import javax.portlet.RenderRequest;
43 import javax.portlet.RenderResponse;
44
45 import org.apache.struts.action.ActionForm;
46 import org.apache.struts.action.ActionForward;
47 import org.apache.struts.action.ActionMapping;
48
49
55 public class ViewAction extends PortletAction {
56
57 public ActionForward render(
58 ActionMapping mapping, ActionForm form, PortletConfig portletConfig,
59 RenderRequest renderRequest, RenderResponse renderResponse)
60 throws Exception {
61
62 try {
63 PortletPreferences preferences = renderRequest.getPreferences();
64
65 long nodeId = GetterUtil.getLong(
66 preferences.getValue("node-id", StringPool.BLANK));
67 String title = ParamUtil.getString(
68 renderRequest, "title",
69 preferences.getValue("title", WikiPageImpl.FRONT_PAGE));
70
71 WikiNode node = WikiNodeServiceUtil.getNode(nodeId);
72
73 WikiPage wikiPage = null;
74
75 try {
76 wikiPage = WikiPageServiceUtil.getPage(nodeId, title);
77 }
78 catch (NoSuchPageException nspe) {
79 wikiPage = WikiPageServiceUtil.getPage(
80 nodeId, WikiPageImpl.FRONT_PAGE);
81 }
82
83 renderRequest.setAttribute(WebKeys.WIKI_NODE, node);
84 renderRequest.setAttribute(WebKeys.WIKI_PAGE, wikiPage);
85
86 return mapping.findForward("portlet.wiki_display.view");
87 }
88 catch (NoSuchNodeException nsne) {
89 return mapping.findForward("/portal/portlet_not_setup");
90 }
91 catch (NoSuchPageException nsne) {
92 return mapping.findForward("/portal/portlet_not_setup");
93 }
94 catch (PrincipalException pe) {
95 SessionErrors.add(renderRequest, pe.getClass().getName());
96
97 return mapping.findForward("portlet.wiki_display.error");
98 }
99 }
100
101 }