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
50 public class RenderPortletAction extends Action {
51
52 public ActionForward execute(
53 ActionMapping mapping, ActionForm form, HttpServletRequest request,
54 HttpServletResponse response)
55 throws Exception {
56
57 ServletContext servletContext = (ServletContext)request.getAttribute(
58 WebKeys.CTX);
59
60 String ajaxId = request.getParameter("ajax_id");
61
62 long companyId = PortalUtil.getCompanyId(request);
63 User user = PortalUtil.getUser(request);
64 Layout layout = (Layout)request.getAttribute(WebKeys.LAYOUT);
65 String portletId = ParamUtil.getString(request, "p_p_id");
66
67 Portlet portlet = PortletLocalServiceUtil.getPortletById(
68 companyId, portletId);
69
70 String queryString = null;
71 String columnId = ParamUtil.getString(request, "p_p_col_id");
72 int columnPos = ParamUtil.getInteger(request, "p_p_col_pos");
73 int columnCount = ParamUtil.getInteger(request, "p_p_col_count");
74 boolean staticPortlet = ParamUtil.getBoolean(request, "p_p_static");
75 boolean staticStartPortlet = ParamUtil.getBoolean(
76 request, "p_p_static_start");
77
78 if (staticPortlet) {
79 portlet = (Portlet)portlet.clone();
80
81 portlet.setStatic(true);
82 portlet.setStaticStart(staticStartPortlet);
83 }
84
85 if (ajaxId != null) {
86 response.setHeader("Ajax-ID", ajaxId);
87 }
88
89 WindowState windowState = WindowStateFactory.getWindowState(
90 ParamUtil.getString(request, "p_p_state"));
91
92 PortalUtil.updateWindowState(
93 portletId, user, layout, windowState, request);
94
95 PortalUtil.renderPortlet(
96 null, servletContext, request, response, portlet, queryString,
97 columnId, new Integer(columnPos), new Integer(columnCount));
98
99 return null;
100 }
101
102 }