private List<Event> _doProcessEvent( HttpServletRequest request, HttpServletResponse response, Portlet portlet, Layout layout, Event event) throws Exception { ServletContext servletContext = (ServletContext) request.getAttribute(WebKeys.CTX); InvokerPortlet invokerPortlet = PortletInstanceFactoryUtil.create(portlet, servletContext); PortletConfig portletConfig = PortletConfigFactoryUtil.create(portlet, servletContext); PortletContext portletContext = portletConfig.getPortletContext(); LayoutTypePortlet layoutTypePortlet = (LayoutTypePortlet) layout.getLayoutType(); WindowState windowState = null; if (layoutTypePortlet.hasStateMaxPortletId(portlet.getPortletId())) { windowState = WindowState.MAXIMIZED; } else if (layoutTypePortlet.hasStateMinPortletId(portlet.getPortletId())) { windowState = WindowState.MINIMIZED; } else { windowState = WindowState.NORMAL; } PortletMode portletMode = null; if (layoutTypePortlet.hasModeAboutPortletId(portlet.getPortletId())) { portletMode = LiferayPortletMode.ABOUT; } else if (layoutTypePortlet.hasModeConfigPortletId(portlet.getPortletId())) { portletMode = LiferayPortletMode.CONFIG; } else if (layoutTypePortlet.hasModeEditPortletId(portlet.getPortletId())) { portletMode = PortletMode.EDIT; } else if (layoutTypePortlet.hasModeEditDefaultsPortletId(portlet.getPortletId())) { portletMode = LiferayPortletMode.EDIT_DEFAULTS; } else if (layoutTypePortlet.hasModeEditGuestPortletId(portlet.getPortletId())) { portletMode = LiferayPortletMode.EDIT_GUEST; } else if (layoutTypePortlet.hasModeHelpPortletId(portlet.getPortletId())) { portletMode = PortletMode.HELP; } else if (layoutTypePortlet.hasModePreviewPortletId(portlet.getPortletId())) { portletMode = LiferayPortletMode.PREVIEW; } else if (layoutTypePortlet.hasModePrintPortletId(portlet.getPortletId())) { portletMode = LiferayPortletMode.PRINT; } else { portletMode = PortletMode.VIEW; } long scopeGroupId = getScopeGroupId(request, layout, portlet.getPortletId()); PortletPreferences portletPreferences = PortletPreferencesFactoryUtil.getPortletSetup( scopeGroupId, layout, portlet.getPortletId(), null); EventRequestImpl eventRequestImpl = EventRequestFactory.create( request, portlet, invokerPortlet, portletContext, windowState, portletMode, portletPreferences, layout.getPlid()); eventRequestImpl.setEvent(serializeEvent(event, invokerPortlet.getPortletClassLoader())); User user = PortalUtil.getUser(request); Layout requestLayout = (Layout) request.getAttribute(WebKeys.LAYOUT); EventResponseImpl eventResponseImpl = EventResponseFactory.create( eventRequestImpl, response, portlet.getPortletId(), user, requestLayout); eventRequestImpl.defineObjects(portletConfig, eventResponseImpl); try { invokerPortlet.processEvent(eventRequestImpl, eventResponseImpl); if (eventResponseImpl.isCalledSetRenderParameter()) { Map<String, String[]> renderParameterMap = new HashMap<String, String[]>(); renderParameterMap.putAll(eventResponseImpl.getRenderParameterMap()); RenderParametersPool.put( request, requestLayout.getPlid(), portlet.getPortletId(), renderParameterMap); } return eventResponseImpl.getEvents(); } finally { eventRequestImpl.cleanUp(); } }