public void execute(Event<UIPortlet> event) throws Exception { UIPortlet uiPortlet = event.getSource(); String portletMode = null; Object changePortletModeAttribute = event.getRequestContext().getAttribute(CHANGE_PORTLET_MODE_EVENT); if (changePortletModeAttribute != null && changePortletModeAttribute instanceof String) { portletMode = (String) changePortletModeAttribute; } if (portletMode == null) { portletMode = event.getRequestContext().getRequestParameter(Constants.PORTAL_PORTLET_MODE); } if (portletMode == null) { portletMode = event.getRequestContext().getRequestParameter(UIComponent.OBJECTID); } if (portletMode == null) { portletMode = uiPortlet.getCurrentPortletMode().toString(); } log.trace( "Change portlet mode of " + uiPortlet.getPortletContext().getId() + " to " + portletMode); if (portletMode.equals(PortletMode.HELP.toString())) { uiPortlet.setCurrentPortletMode(PortletMode.HELP); } else if (portletMode.equals(PortletMode.EDIT.toString())) { uiPortlet.setCurrentPortletMode(PortletMode.EDIT); } else if (portletMode.equals(PortletMode.VIEW.toString())) { uiPortlet.setCurrentPortletMode(PortletMode.VIEW); } else { PortletMode customMode = new PortletMode(portletMode); uiPortlet.setCurrentPortletMode(customMode); } event.getRequestContext().addUIComponentToUpdateByAjax(uiPortlet); }