@Override
  public ActionForward execute(
      ActionMapping actionMapping,
      ActionForm actionForm,
      HttpServletRequest request,
      HttpServletResponse response)
      throws Exception {

    ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);

    themeDisplay.setAjax(true);

    String ajaxId = request.getParameter("ajax_id");

    long companyId = PortalUtil.getCompanyId(request);
    User user = PortalUtil.getUser(request);
    Layout layout = (Layout) request.getAttribute(WebKeys.LAYOUT);
    String portletId = ParamUtil.getString(request, "p_p_id");

    Portlet portlet = PortletLocalServiceUtil.getPortletById(companyId, portletId);

    String columnId = ParamUtil.getString(request, "p_p_col_id");
    int columnPos = ParamUtil.getInteger(request, "p_p_col_pos");
    int columnCount = ParamUtil.getInteger(request, "p_p_col_count");
    boolean boundary = ParamUtil.getBoolean(request, "p_p_boundary", true);
    boolean decorate = ParamUtil.getBoolean(request, "p_p_decorate", true);
    boolean staticPortlet = ParamUtil.getBoolean(request, "p_p_static");
    boolean staticStartPortlet = ParamUtil.getBoolean(request, "p_p_static_start");

    if (staticPortlet) {
      portlet = (Portlet) portlet.clone();

      portlet.setStatic(true);
      portlet.setStaticStart(staticStartPortlet);
    }

    if (ajaxId != null) {
      response.setHeader("Ajax-ID", ajaxId);
    }

    WindowState windowState =
        WindowStateFactory.getWindowState(ParamUtil.getString(request, "p_p_state"));

    PortalUtil.updateWindowState(portletId, user, layout, windowState, request);

    request =
        PortletContainerUtil.setupOptionalRenderParameters(
            request, null, columnId, columnPos, columnCount, boundary, decorate);

    PortletContainerUtil.render(request, response, portlet);

    return null;
  }