1 16 17 package org.pentaho.ui.portlet; 18 19 import java.io.IOException ; 20 import java.util.ArrayList ; 21 22 import javax.portlet.ActionRequest; 23 import javax.portlet.ActionResponse; 24 import javax.portlet.PortletException; 25 import javax.portlet.PortletPreferences; 26 import javax.portlet.RenderRequest; 27 import javax.portlet.RenderResponse; 28 29 import org.apache.commons.logging.Log; 30 import org.apache.commons.logging.LogFactory; 31 import org.pentaho.core.system.PentahoSystem; 32 import org.pentaho.ui.component.INavigationComponent; 33 import org.pentaho.ui.component.NavigationComponentFactory; 34 35 public class NavigationPortlet extends ViewPortlet { 36 37 private String SOLUTION = "solution"; 39 private String PATH = "path"; 41 private String XSL = "xsl"; 43 private static final Log portletLogger = LogFactory.getLog(NavigationPortlet.class); 44 45 public Log getLogger() { 46 return portletLogger; 47 } 48 49 public void processPortletAction(ActionRequest request, ActionResponse response, PentahoPortletSession userSession) throws PortletException, IOException { 50 52 } 53 54 public void doPortletView(RenderRequest request, RenderResponse response, PentahoPortletSession userSession) throws PortletException, IOException { 55 56 PortletUrlFactory urlFactory = new PortletUrlFactory(response, request.getWindowState(), request.getPortletMode()); 57 58 PortletPreferences prefs = request.getPreferences(); 59 PortletRequestParameterProvider requestParameters = new PortletRequestParameterProvider(request); 60 PortletSessionParameterProvider sessionParameters = new PortletSessionParameterProvider(userSession); 61 62 boolean allowNavigation = true; 63 String solution = request.getParameter(SOLUTION); 64 if (solution == null) { 65 solution = prefs.getValue(SOLUTION, null); 67 if (solution != null) { 68 requestParameters.setParameter(SOLUTION, solution); 69 allowNavigation = false; 70 } else { 71 solution = ""; } 73 } 74 String path = request.getParameter(PATH); 75 if (path == null) { 76 path = prefs.getValue(PATH, null); 78 if (path != null) { 79 requestParameters.setParameter(PATH, path); 80 allowNavigation = false; 81 } else { 82 path = null; 83 } 84 } 85 86 String hrefUrl = PentahoSystem.getApplicationContext().getBaseUrl(); 87 String onClick = ""; ArrayList messages = new ArrayList (); 89 90 INavigationComponent navigate = NavigationComponentFactory.getNavigationComponent(); 91 navigate.setHrefUrl(hrefUrl); 92 navigate.setOnClick(onClick); 93 navigate.setSolutionParamName(SOLUTION); 94 navigate.setPathParamName(PATH); 95 navigate.setAllowNavigation(new Boolean (allowNavigation)); 96 navigate.setOptions(""); navigate.setUrlFactory(urlFactory); 98 navigate.setMessages(messages); 99 navigate.validate(userSession, null); 100 String xslName = prefs.getValue(XSL, null); 101 if (xslName != null) { 102 navigate.setXsl("text/html", xslName); } 104 navigate.setParameterProvider("request", requestParameters); navigate.setParameterProvider("session", sessionParameters); 107 String content = navigate.getContent("text/html"); if (content == null || content.equals("")) { content = " "; } 111 112 response.setContentType("text/html"); response.getWriter().print(content); 114 } 115 } 116 | Popular Tags |