1
22
23 package com.liferay.portlet.myplaces.action;
24
25 import com.liferay.portal.NoSuchLayoutSetException;
26 import com.liferay.portal.kernel.util.ParamUtil;
27 import com.liferay.portal.model.Layout;
28 import com.liferay.portal.model.impl.LayoutImpl;
29 import com.liferay.portal.service.LayoutLocalServiceUtil;
30 import com.liferay.portal.struts.PortletAction;
31 import com.liferay.portal.theme.ThemeDisplay;
32 import com.liferay.portal.util.PortalUtil;
33 import com.liferay.portal.util.WebKeys;
34 import com.liferay.util.servlet.SessionErrors;
35
36 import java.util.List;
37
38 import javax.portlet.ActionRequest;
39 import javax.portlet.ActionResponse;
40 import javax.portlet.PortletConfig;
41 import javax.portlet.RenderRequest;
42 import javax.portlet.RenderResponse;
43
44 import javax.servlet.http.HttpServletRequest;
45 import javax.servlet.http.HttpServletResponse;
46
47 import org.apache.struts.action.ActionForm;
48 import org.apache.struts.action.ActionForward;
49 import org.apache.struts.action.ActionMapping;
50
51
57 public class ViewAction extends PortletAction {
58
59 public ActionForward strutsExecute(
60 ActionMapping mapping, ActionForm form, HttpServletRequest req,
61 HttpServletResponse res)
62 throws Exception {
63
64 ThemeDisplay themeDisplay =
65 (ThemeDisplay)req.getAttribute(WebKeys.THEME_DISPLAY);
66
67 long groupId = ParamUtil.getLong(req, "groupId");
68 boolean privateLayout = ParamUtil.getBoolean(req, "privateLayout");
69
70 List<Layout> layouts = LayoutLocalServiceUtil.getLayouts(
71 groupId, privateLayout, LayoutImpl.DEFAULT_PARENT_LAYOUT_ID, 0, 1);
72
73 String redirect = themeDisplay.getPathMain();
74
75 if (layouts.size() > 0) {
76 Layout layout = layouts.get(0);
77
78 redirect = PortalUtil.getLayoutURL(layout, themeDisplay);
79 }
80 else {
81 redirect = ParamUtil.getString(req, "redirect");
82
83 SessionErrors.add(
84 req, NoSuchLayoutSetException.class.getName(),
85 new NoSuchLayoutSetException(
86 "{groupId=" + groupId + ",privateLayout=" + privateLayout +
87 "}"));
88 }
89
90
92 res.sendRedirect(redirect);
93
94 return null;
95 }
96
97 public void processAction(
98 ActionMapping mapping, ActionForm form, PortletConfig config,
99 ActionRequest req, ActionResponse res)
100 throws Exception {
101
102 ThemeDisplay themeDisplay =
103 (ThemeDisplay)req.getAttribute(WebKeys.THEME_DISPLAY);
104
105 long groupId = ParamUtil.getLong(req, "groupId");
106 boolean privateLayout = ParamUtil.getBoolean(req, "privateLayout");
107
108 List<Layout> layouts = LayoutLocalServiceUtil.getLayouts(
109 groupId, privateLayout, LayoutImpl.DEFAULT_PARENT_LAYOUT_ID, 0, 1);
110
111 String redirect = themeDisplay.getPathMain();
112
113 if (layouts.size() > 0) {
114 Layout layout = layouts.get(0);
115
116 redirect = PortalUtil.getLayoutURL(layout, themeDisplay);
117 }
118 else {
119 redirect = ParamUtil.getString(req, "redirect");
120
121 SessionErrors.add(
122 req, NoSuchLayoutSetException.class.getName(),
123 new NoSuchLayoutSetException(
124 "{groupId=" + groupId + ",privateLayout=" + privateLayout +
125 "}"));
126 }
127
128
130 res.sendRedirect(redirect);
131 }
132
133 public ActionForward render(
134 ActionMapping mapping, ActionForm form, PortletConfig config,
135 RenderRequest req, RenderResponse res)
136 throws Exception {
137
138 return mapping.findForward("portlet.my_places.view");
139 }
140
141 protected boolean isCheckMethodOnProcessAction() {
142 return _CHECK_METHOD_ON_PROCESS_ACTION;
143 }
144
145 private static final boolean _CHECK_METHOD_ON_PROCESS_ACTION = false;
146
147 }