1
22
23 package com.liferay.portlet.myplaces.action;
24
25 import com.liferay.portal.NoSuchLayoutSetException;
26 import com.liferay.portal.kernel.servlet.SessionErrors;
27 import com.liferay.portal.kernel.util.ParamUtil;
28 import com.liferay.portal.model.Layout;
29 import com.liferay.portal.model.LayoutConstants;
30 import com.liferay.portal.service.LayoutLocalServiceUtil;
31 import com.liferay.portal.struts.PortletAction;
32 import com.liferay.portal.theme.ThemeDisplay;
33 import com.liferay.portal.util.PortalUtil;
34 import com.liferay.portal.util.WebKeys;
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 request,
61 HttpServletResponse response)
62 throws Exception {
63
64 ThemeDisplay themeDisplay = (ThemeDisplay)request.getAttribute(
65 WebKeys.THEME_DISPLAY);
66
67 long groupId = ParamUtil.getLong(request, "groupId");
68 boolean privateLayout = ParamUtil.getBoolean(request, "privateLayout");
69
70 List<Layout> layouts = LayoutLocalServiceUtil.getLayouts(
71 groupId, privateLayout, LayoutConstants.DEFAULT_PARENT_LAYOUT_ID, 0,
72 1);
73
74 String redirect = themeDisplay.getPathMain();
75
76 if (layouts.size() > 0) {
77 Layout layout = layouts.get(0);
78
79 redirect = PortalUtil.getLayoutURL(layout, themeDisplay);
80 }
81 else {
82 redirect = ParamUtil.getString(request, "redirect");
83
84 SessionErrors.add(
85 request, NoSuchLayoutSetException.class.getName(),
86 new NoSuchLayoutSetException(
87 "{groupId=" + groupId + ",privateLayout=" + privateLayout +
88 "}"));
89 }
90
91
93 response.sendRedirect(redirect);
94
95 return null;
96 }
97
98 public void processAction(
99 ActionMapping mapping, ActionForm form, PortletConfig portletConfig,
100 ActionRequest actionRequest, ActionResponse actionResponse)
101 throws Exception {
102
103 ThemeDisplay themeDisplay = (ThemeDisplay)actionRequest.getAttribute(
104 WebKeys.THEME_DISPLAY);
105
106 long groupId = ParamUtil.getLong(actionRequest, "groupId");
107 boolean privateLayout = ParamUtil.getBoolean(
108 actionRequest, "privateLayout");
109
110 List<Layout> layouts = LayoutLocalServiceUtil.getLayouts(
111 groupId, privateLayout, LayoutConstants.DEFAULT_PARENT_LAYOUT_ID, 0,
112 1);
113
114 String redirect = themeDisplay.getPathMain();
115
116 if (layouts.size() > 0) {
117 Layout layout = layouts.get(0);
118
119 redirect = PortalUtil.getLayoutURL(layout, themeDisplay);
120 }
121 else {
122 redirect = ParamUtil.getString(actionRequest, "redirect");
123
124 SessionErrors.add(
125 actionRequest, NoSuchLayoutSetException.class.getName(),
126 new NoSuchLayoutSetException(
127 "{groupId=" + groupId + ",privateLayout=" + privateLayout +
128 "}"));
129 }
130
131
133 actionResponse.sendRedirect(redirect);
134 }
135
136 public ActionForward render(
137 ActionMapping mapping, ActionForm form, PortletConfig portletConfig,
138 RenderRequest renderRequest, RenderResponse renderResponse)
139 throws Exception {
140
141 return mapping.findForward("portlet.my_places.view");
142 }
143
144 protected boolean isCheckMethodOnProcessAction() {
145 return _CHECK_METHOD_ON_PROCESS_ACTION;
146 }
147
148 private static final boolean _CHECK_METHOD_ON_PROCESS_ACTION = false;
149
150 }