1 17 18 package org.pentaho.ui.component; 19 20 import org.apache.commons.logging.Log; 21 import org.apache.commons.logging.LogFactory; 22 import org.dom4j.Document; 23 import org.dom4j.Node; 24 import org.pentaho.core.repository.ISolutionRepository; 25 import org.pentaho.core.solution.SimpleParameterProvider; 26 import org.pentaho.core.system.PentahoSystem; 27 import org.pentaho.ui.XmlComponent; 28 import org.pentaho.messages.Messages; 29 30 public class NavigationComponent extends XmlComponent implements INavigationComponent { 31 32 private static final long serialVersionUID = 851537694797388747L; 33 34 private static final Log logger = LogFactory.getLog(NavigationComponent.class); 35 36 public Log getLogger() { 37 return logger; 38 } 39 40 public NavigationComponent() { 41 super(null, null, null); 42 SimpleParameterProvider parameters = new SimpleParameterProvider(); 43 setParameterProvider("options", parameters); } 45 46 51 public boolean validate() { 52 return true; 53 } 54 55 60 public Document getXmlContent() { 61 62 String hrefUrl = getParameter("hrefurl", ""); String onClick = getParameter("onclick", ""); String solutionParamName = getParameter("solutionparam", ""); String pathParamName = getParameter("pathparam", ""); String options = getParameter("options", ""); String path = getParameter(pathParamName, null); 68 String allowNavigation = getParameter("navigate", "true"); 70 setXslProperty("href", hrefUrl); setXslProperty("onClick", onClick); setXslProperty("solutionParam", solutionParamName); setXslProperty("pathParam", pathParamName); setXslProperty("options", options); setXslProperty("navigate", allowNavigation); setXslProperty("baseUrl", urlFactory.getDisplayUrlBuilder().getUrl()); if ("".equals(path)) { path = null; 79 } 80 if (path != null) { 81 setXslProperty("path", path); } 83 84 ISolutionRepository repository = PentahoSystem.getSolutionRepository(getSession()); 85 86 if( repository == null ) { 87 error( Messages.getErrorString("NavigationComponent.ERROR_0001_BAD_SOLUTION_REPOSITORY") ); return null; 89 } 90 91 String solution = getParameter(solutionParamName, null); 92 if( "".equals( solution ) ) { solution = null; 94 } 95 Document document = null; 96 String xslName = getXsl("text/html"); if (solution == null) { 99 document = repository.getSolutions(ISolutionRepository.ACTION_EXECUTE); 100 if( xslName == null ) { 101 Node node = document.selectSingleNode( "/repository/@displaytype" ); if( node != null ) { 103 String displayType = node.getText(); 104 if( displayType.endsWith( ".xsl" ) ) { xslName = displayType; 107 } 108 } 109 } 110 if (xslName == null) { 111 xslName = "files-list.xsl"; } 114 } else { 115 document = repository.getActionSequences(solution, path, false, true, ISolutionRepository.ACTION_EXECUTE); 116 if (debug) 117 debug(document.asXML()); 118 if( xslName == null ) { 119 Node node = document.selectSingleNode( "/files/@displaytype" ); if( node != null ) { 121 String displayType = node.getText(); 122 if( displayType.endsWith( ".xsl" ) ) { xslName = displayType; 125 } 126 } 127 } 128 129 setXslProperty("solution", solution); if (xslName == null) { 131 xslName = "files-list.xsl"; } 134 } 135 136 if (xslName != null) { 137 setXsl("text/html", xslName); } 139 return document; 140 } 141 142 public void setHrefUrl(String hrefUrl) { 143 SimpleParameterProvider parameters = (SimpleParameterProvider) getParameterProviders().get("options"); parameters.setParameter("hrefurl", hrefUrl); } 146 147 public void setOnClick(String onClick) { 148 SimpleParameterProvider parameters = (SimpleParameterProvider) getParameterProviders().get("options"); parameters.setParameter("onClick", onClick); } 151 152 public void setAllowNavigation(Boolean allowNavigation) { 153 SimpleParameterProvider parameters = (SimpleParameterProvider) getParameterProviders().get("options"); parameters.setParameter("navigate", allowNavigation.toString()); } 156 157 public void setSolutionParamName(String solutionParamName) { 158 SimpleParameterProvider parameters = (SimpleParameterProvider) getParameterProviders().get("options"); parameters.setParameter("solutionparam", solutionParamName); } 161 162 public void setPathParamName(String solutionPathName) { 163 SimpleParameterProvider parameters = (SimpleParameterProvider) getParameterProviders().get("options"); parameters.setParameter("pathparam", solutionPathName); } 166 167 public void setOptions(String options) { 168 SimpleParameterProvider parameters = (SimpleParameterProvider) getParameterProviders().get("options"); parameters.setParameter("options", options); } 171 } 172 | Popular Tags |