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 org.apache.struts.action.ActionForm;
45 import org.apache.struts.action.ActionForward;
46 import org.apache.struts.action.ActionMapping;
47
48
54 public class ViewAction extends PortletAction {
55
56 public void processAction(
57 ActionMapping mapping, ActionForm form, PortletConfig config,
58 ActionRequest req, ActionResponse res)
59 throws Exception {
60
61 ThemeDisplay themeDisplay =
62 (ThemeDisplay)req.getAttribute(WebKeys.THEME_DISPLAY);
63
64 long groupId = ParamUtil.getLong(req, "groupId");
65 boolean privateLayout = ParamUtil.getBoolean(req, "privateLayout");
66
67 List layouts = LayoutLocalServiceUtil.getLayouts(
68 groupId, privateLayout, LayoutImpl.DEFAULT_PARENT_LAYOUT_ID, 0, 1);
69
70 String redirect = themeDisplay.getPathMain();
71
72 if (layouts.size() > 0) {
73 Layout layout = (Layout)layouts.get(0);
74
75 redirect = PortalUtil.getLayoutURL(layout, themeDisplay);
76 }
77 else {
78 redirect = ParamUtil.getString(req, "redirect");
79
80 SessionErrors.add(
81 req, NoSuchLayoutSetException.class.getName(),
82 new NoSuchLayoutSetException(
83 "{groupId=" + groupId + ",privateLayout=" + privateLayout +
84 "}"));
85 }
86
87
89 res.sendRedirect(redirect);
90 }
91
92 public ActionForward render(
93 ActionMapping mapping, ActionForm form, PortletConfig config,
94 RenderRequest req, RenderResponse res)
95 throws Exception {
96
97 return mapping.findForward("portlet.my_places.view");
98 }
99
100 }