1 13 package org.pentaho.plugin.jfreereport.components; 14 15 import java.util.Iterator ; 16 import java.util.Set ; 17 18 import org.apache.commons.logging.Log; 19 import org.apache.commons.logging.LogFactory; 20 import org.pentaho.core.runtime.IActionParameter; 21 import org.pentaho.messages.Messages; 22 import org.pentaho.plugin.jfreereport.AbstractJFreeReportComponent; 23 24 29 public class JFreeReportValidateParametersComponent extends AbstractJFreeReportComponent { 30 private static final long serialVersionUID = -2888256934867581182L; 31 32 private boolean parameterUiNeeded; 33 34 public JFreeReportValidateParametersComponent() { 35 } 36 37 protected boolean validateAction() { 38 return true; 39 } 40 41 protected boolean validateSystemSettings() { 42 return true; 43 } 44 45 public void done() { 46 47 } 48 49 private boolean isParameterUIAvailable() { 50 54 if (!feedbackAllowed()) { 55 error(Messages.getErrorString("JFreeReport.ERROR_0020_INVALID_FEEDBACK_STREAM")); return false; 60 } 61 setFeedbackMimeType("text/html"); return true; 65 } 66 67 protected boolean executeAction() throws Throwable { 68 final String defaultValue = ""; 70 final Set paramNames = getInputNames(); 73 boolean parameterUINeeded = false; 74 75 final Iterator it = paramNames.iterator(); 76 while (it.hasNext()) { 77 String paramName = (String ) it.next(); 78 Object paramValue = getInputValue(paramName); 79 if (paramValue == null || ("".equals(paramValue))) { 81 IActionParameter paramParameter = getInputParameter(paramName); 82 if (paramParameter.getPromptStatus() == IActionParameter.PROMPT_PENDING) { 83 parameterUINeeded = true; 84 continue; 85 } 86 if (isParameterUIAvailable()) { 87 createFeedbackParameter(paramName, paramName, "", defaultValue, true); parameterUINeeded = true; 92 } else { 93 return false; 94 } 95 } 96 } 97 if (parameterUINeeded) { 98 addTempParameterObject(REPORTVALIDATECOMPONENT_REPORTTEMP_UI_NEEDED, Boolean.TRUE); 99 this.parameterUiNeeded = true; 100 } else { 101 addTempParameterObject(REPORTVALIDATECOMPONENT_REPORTTEMP_UI_NEEDED, Boolean.FALSE); 102 this.parameterUiNeeded = false; 103 } 104 105 return true; 106 } 107 108 public boolean isParameterUiNeeded() { 109 return parameterUiNeeded; 110 } 111 112 public boolean init() { 113 return true; 114 } 115 116 public Log getLogger() { 117 return LogFactory.getLog(JFreeReportValidateParametersComponent.class); 118 } 119 } 120 | Popular Tags |