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