1
22
23 package com.liferay.portlet.wikidisplay.action;
24
25 import com.liferay.portal.kernel.util.GetterUtil;
26 import com.liferay.portal.kernel.util.ParamUtil;
27 import com.liferay.portal.kernel.util.StringPool;
28 import com.liferay.portal.security.auth.PrincipalException;
29 import com.liferay.portal.struts.PortletAction;
30 import com.liferay.portal.util.WebKeys;
31 import com.liferay.portlet.wiki.NoSuchNodeException;
32 import com.liferay.portlet.wiki.NoSuchPageException;
33 import com.liferay.portlet.wiki.model.WikiNode;
34 import com.liferay.portlet.wiki.model.WikiPage;
35 import com.liferay.portlet.wiki.model.impl.WikiPageImpl;
36 import com.liferay.portlet.wiki.service.WikiNodeServiceUtil;
37 import com.liferay.portlet.wiki.service.WikiPageServiceUtil;
38 import com.liferay.util.servlet.SessionErrors;
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 config,
59 RenderRequest req, RenderResponse res)
60 throws Exception {
61
62 try {
63 PortletPreferences prefs = req.getPreferences();
64
65 long nodeId = GetterUtil.getLong(
66 prefs.getValue("node-id", StringPool.BLANK));
67 String title = ParamUtil.getString(
68 req, "title", prefs.getValue("title", WikiPageImpl.FRONT_PAGE));
69
70 WikiNode node = WikiNodeServiceUtil.getNode(nodeId);
71
72 WikiPage wikiPage = null;
73
74 try {
75 wikiPage = WikiPageServiceUtil.getPage(nodeId, title);
76 }
77 catch (NoSuchPageException nspe) {
78 wikiPage = WikiPageServiceUtil.getPage(
79 nodeId, WikiPageImpl.FRONT_PAGE);
80 }
81
82 req.setAttribute(WebKeys.WIKI_NODE, node);
83 req.setAttribute(WebKeys.WIKI_PAGE, wikiPage);
84
85 return mapping.findForward("portlet.wiki_display.view");
86 }
87 catch (NoSuchNodeException nsne) {
88 return mapping.findForward("/portal/portlet_not_setup");
89 }
90 catch (NoSuchPageException nsne) {
91 return mapping.findForward("/portal/portlet_not_setup");
92 }
93 catch (PrincipalException pe) {
94 SessionErrors.add(req, pe.getClass().getName());
95
96 return mapping.findForward("portlet.wiki_display.error");
97 }
98 }
99
100 }