| 1 16 17 package org.pentaho.ui.portlet; 18 19 import java.io.IOException ; 20 import java.util.ArrayList ; 21 import javax.portlet.ActionRequest; 22 import javax.portlet.ActionResponse; 23 import javax.portlet.PortletException; 24 import javax.portlet.RenderRequest; 25 import javax.portlet.RenderResponse; 26 import org.apache.commons.logging.Log; 27 import org.apache.commons.logging.LogFactory; 28 import org.pentaho.core.util.UIUtil; 29 import org.pentaho.messages.Messages; 30 import org.pentaho.ui.component.WidgetGridComponent; 31 32 public class WidgetGridPortlet extends ViewPortlet { 33 34 private String WIDGET = "widget"; 36 private String WIDGETGRID = "widget-grid"; 38 private static final Log portletLogger = LogFactory.getLog(WidgetGridPortlet.class); 39 40 public Log getLogger() { 41 return portletLogger; 42 } 43 44 public void processPortletAction(ActionRequest request, ActionResponse response, PentahoPortletSession userSession) throws PortletException, IOException { 45 46 } 47 48 public void doPortletView(RenderRequest request, RenderResponse response, PentahoPortletSession userSession) throws PortletException, IOException { 49 50 response.setContentType("text/html"); 52 PortletUrlFactory urlFactory = new PortletUrlFactory(response, request.getWindowState(), request.getPortletMode()); 53 54 PortletRequestParameterProvider requestParameters = new PortletRequestParameterProvider(request); 55 PortletSessionParameterProvider sessionParameters = new PortletSessionParameterProvider(userSession); 56 57 String widgetDefinition = getSetting(WIDGET, null, request, requestParameters); 58 String widgetGridDataDefinition = getSetting(WIDGETGRID, null, request, requestParameters); 59 60 if (widgetDefinition == null) { 61 response.getWriter().print(Messages.getString("Widget.USER_WIDGET_NOT_SPECIFIED")); return; 63 } 64 65 String urlDrillTemplate = getSetting("drill-url", null, request, null); ArrayList messages = new ArrayList (); 67 WidgetGridComponent widget = null; 68 try { 69 widget = new WidgetGridComponent(widgetDefinition, urlFactory, messages); 70 widget.validate(userSession, null); 71 widget.setDataAction(widgetGridDataDefinition); 72 widget.setDrillUrlTemplate(urlDrillTemplate); 73 74 widget.setParameterProvider("request", requestParameters); widget.setParameterProvider("session", sessionParameters); 77 String content = widget.getContent("text/html"); 79 if (content == null) { 80 StringBuffer buffer = new StringBuffer (); 81 UIUtil.formatErrorMessage("text/html", Messages.getString("Widget.ERROR_0001_COULD_NOT_CREATE_WIDGET"), messages, buffer); content = buffer.toString(); 83 } 84 if (content == null || content.equals("")) { content = " "; } 87 response.getWriter().print(content); 88 } finally { 89 if (widget != null) 90 widget.dispose(); 91 } 92 } 93 } 94 | Popular Tags |