| 1 13 package org.pentaho.plugin.jfreereport; 14 15 import org.apache.commons.logging.Log; 16 import org.apache.commons.logging.LogFactory; 17 import org.pentaho.core.component.IComponent; 18 import org.pentaho.core.runtime.IRuntimeContext; 19 import org.pentaho.messages.Messages; 20 import org.pentaho.plugin.jfreereport.components.JFreeReportDataComponent; 21 import org.pentaho.plugin.jfreereport.components.JFreeReportLoadComponent; 22 import org.pentaho.plugin.jfreereport.components.JFreeReportParametersComponent; 23 import org.pentaho.plugin.jfreereport.components.JFreeReportValidateParametersComponent; 24 import org.pentaho.plugin.jfreereport.outputs.JFreeReportAllContentComponent; 25 26 67 public class JFreeReportComponent extends AbstractJFreeReportComponent { 68 private static final long serialVersionUID = -4185151399689983507L; 69 70 private JFreeReportValidateParametersComponent validateParametersComponent; 71 72 public JFreeReportComponent() { 73 } 74 75 public boolean init() { 76 return true; 77 } 78 79 public void done() { 80 } 81 82 public boolean validateSystemSettings() { 83 return true; 84 } 85 86 public Log getLogger() { 87 return LogFactory.getLog(JFreeReportComponent.class); 88 } 89 90 protected boolean initAndValidate(IComponent component) { 91 component.setInstanceId(getInstanceId()); 92 component.setActionName(getActionName()); 93 component.setProcessId(getProcessId()); 94 component.setComponentDefinition(getComponentDefinition()); 95 component.setRuntimeContext(getRuntimeContext()); 96 component.setSession(getSession()); 97 component.setLoggingLevel(getLoggingLevel()); 98 component.setMessages(getMessages()); 99 return (component.validate() == IRuntimeContext.RUNTIME_CONTEXT_VALIDATE_OK); 100 } 101 102 108 public boolean validateAction() { 109 110 validateParametersComponent = new JFreeReportValidateParametersComponent(); 111 if (initAndValidate(validateParametersComponent) == false) { 112 error(Messages.getString("JFreeReportComponent.ERROR_0025_COULD_NOT_VALIDATE")); return false; 114 } 115 return true; 116 } 117 118 122 public boolean executeAction() { 123 if (validateParametersComponent.init() == false) { 124 return false; 125 } 126 if (validateParametersComponent.execute() != IRuntimeContext.RUNTIME_STATUS_SUCCESS) { 127 return false; 128 } 129 validateParametersComponent.done(); 130 if (validateParametersComponent.isParameterUiNeeded() || isPromptPending() ) { 131 return true; 132 } 133 134 return executeReportAction(); 135 } 136 137 protected boolean executeReportAction() { 138 JFreeReportDataComponent dataComponent = new JFreeReportDataComponent(); 139 try { 140 if (initAndValidate(dataComponent) == false) { 141 return false; 142 } 143 if (dataComponent.init() == false) { 144 return false; 145 } 146 if (dataComponent.execute() != IRuntimeContext.RUNTIME_STATUS_SUCCESS) { 147 return false; 148 } 149 150 JFreeReportLoadComponent loadComponent = new JFreeReportLoadComponent(); 151 if (initAndValidate(loadComponent) == false) { 152 return false; 153 } 154 if (loadComponent.init() == false) { 155 return false; 156 } 157 if (loadComponent.execute() != IRuntimeContext.RUNTIME_STATUS_SUCCESS) { 158 return false; 159 } 160 loadComponent.done(); 161 162 JFreeReportParametersComponent parametersComponent = new JFreeReportParametersComponent(); 163 if (initAndValidate(parametersComponent) == false) { 164 warn(Messages.getString("JFreeReportComponent.ERROR_0026_FAILED_TO_LOAD_PARAMETER_COMPONENT") + parametersComponent); return false; 166 } 167 if (parametersComponent.init() == false) { 168 warn(Messages.getString("JFreeReportComponent.ERROR_0027_FAILED_TO_INIT_PARAMETERS_COMPONENT") + parametersComponent); return false; 170 } 171 if (parametersComponent.execute() != IRuntimeContext.RUNTIME_STATUS_SUCCESS) { 172 warn(Messages.getString("JFreeReportComponent.ERROR_0028_FAILED_TO_EXECUTE") + parametersComponent); return false; 174 } 175 parametersComponent.done(); 176 177 JFreeReportAllContentComponent allContentComponent = new JFreeReportAllContentComponent(); 178 if (initAndValidate(allContentComponent) == false) { 179 warn(Messages.getString("JFreeReportComponent.ERROR_0029_FAILED_TO_CREATE") + allContentComponent); return false; 181 } 182 if (allContentComponent.init() == false) { 183 warn(Messages.getString("JFreeReportComponent.ERROR_0030_FAILED_TO_INIT") + allContentComponent); return false; 185 } 186 if (allContentComponent.execute() != IRuntimeContext.RUNTIME_STATUS_SUCCESS) { 187 warn(Messages.getString("JFreeReportComponent.ERROR_0031_FAILED_TO_EXECUTE") + allContentComponent); return false; 189 } 190 allContentComponent.done(); 191 return true; 192 } finally { 193 dataComponent.done(); 194 } 195 } 196 197 } 198 | Popular Tags |