1
22
23 package com.liferay.portal.action;
24
25 import com.liferay.portal.kernel.portlet.WindowStateFactory;
26 import com.liferay.portal.kernel.util.ParamUtil;
27 import com.liferay.portal.model.Layout;
28 import com.liferay.portal.model.Portlet;
29 import com.liferay.portal.model.User;
30 import com.liferay.portal.service.PortletLocalServiceUtil;
31 import com.liferay.portal.util.PortalUtil;
32 import com.liferay.portal.util.WebKeys;
33
34 import javax.portlet.WindowState;
35
36 import javax.servlet.ServletContext;
37 import javax.servlet.http.HttpServletRequest;
38 import javax.servlet.http.HttpServletResponse;
39
40 import org.apache.struts.action.Action;
41 import org.apache.struts.action.ActionForm;
42 import org.apache.struts.action.ActionForward;
43 import org.apache.struts.action.ActionMapping;
44
45
51 public class RenderPortletAction extends Action {
52
53 public ActionForward execute(
54 ActionMapping mapping, ActionForm form, HttpServletRequest request,
55 HttpServletResponse response)
56 throws Exception {
57
58 ServletContext servletContext = (ServletContext)request.getAttribute(
59 WebKeys.CTX);
60
61 String ajaxId = request.getParameter("ajax_id");
62
63 long companyId = PortalUtil.getCompanyId(request);
64 User user = PortalUtil.getUser(request);
65 Layout layout = (Layout)request.getAttribute(WebKeys.LAYOUT);
66 String portletId = ParamUtil.getString(request, "p_p_id");
67
68 Portlet portlet = PortletLocalServiceUtil.getPortletById(
69 companyId, portletId);
70
71 String queryString = null;
72 String columnId = ParamUtil.getString(request, "p_p_col_id");
73 int columnPos = ParamUtil.getInteger(request, "p_p_col_pos");
74 int columnCount = ParamUtil.getInteger(request, "p_p_col_count");
75 boolean staticPortlet = ParamUtil.getBoolean(request, "p_p_static");
76 boolean staticStartPortlet = ParamUtil.getBoolean(
77 request, "p_p_static_start");
78
79 if (staticPortlet) {
80 portlet = (Portlet)portlet.clone();
81
82 portlet.setStatic(true);
83 portlet.setStaticStart(staticStartPortlet);
84 }
85
86 if (ajaxId != null) {
87 response.setHeader("Ajax-ID", ajaxId);
88 }
89
90 WindowState windowState = WindowStateFactory.getWindowState(
91 ParamUtil.getString(request, "p_p_state"));
92
93 PortalUtil.updateWindowState(
94 portletId, user, layout, windowState, request);
95
96 PortalUtil.renderPortlet(
97 null, servletContext, request, response, portlet, queryString,
98 columnId, new Integer(columnPos), new Integer(columnCount));
99
100 return null;
101 }
102
103 }