/*
* The contents of this file are subject to the Mozilla Public License
* Version 1.1 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
* License for the specific language governing rights and limitations under
* the License.
*
* The Original Code is OpenELIS code.
*
* Copyright (C) The Minnesota Department of Health. All Rights Reserved.
*
* Contributor(s): CIRG, University of Washington, Seattle WA.
*/
package us.mn.state.health.lims.reports.action.implementation;
import org.apache.commons.beanutils.PropertyUtils;
import org.jfree.util.Log;
import us.mn.state.health.lims.common.action.BaseActionForm;
import us.mn.state.health.lims.common.util.StringUtil;
import us.mn.state.health.lims.reports.action.implementation.reportBeans.HaitiColumnBuilder;
import us.mn.state.health.lims.reports.action.implementation.reportBeans.ResourceTranslator;
/**
* @author pahill (pahill@uw.edu)
* @since Mar 17, 2011
*/
public class HaitiExportReport extends CSVSampleExportReport implements IReportParameterSetter {
@Override
protected String reportFileName(){
return "HaitiExportReport";
}
public void setRequestParameters(BaseActionForm dynaForm) {
try {
PropertyUtils.setProperty(dynaForm, "reportName", getReportNameForParameterPage());
PropertyUtils.setProperty(dynaForm, "useLowerDateRange", Boolean.TRUE);
PropertyUtils.setProperty(dynaForm, "useUpperDateRange", Boolean.TRUE);
} catch ( Exception e ) {
Log.error("Error in " + this.getClass().getSimpleName() + ".setRequestParemeters: ", e);
}
}
protected String getReportNameForParameterPage() {
return StringUtil.getMessageForKey("reports.label.project.export") + " " + StringUtil.getContextualMessageForKey("sample.collectionDate");
}
/**
* @see us.mn.state.health.lims.reports.action.implementation.IReportCreator#initializeReport(us.mn.state.health.lims.common.action.BaseActionForm)
*/
@Override
public void initializeReport(BaseActionForm dynaForm) {
super.initializeReport();
errorFound = false;
lowDateStr = dynaForm.getString("lowerDateRange");
highDateStr = dynaForm.getString("upperDateRange");
dateRange = new DateRange(lowDateStr, highDateStr);
createReportParameters();
errorFound = !validateSubmitParameters();
if (errorFound) {
return;
}
createReportItems();
}
/**
* check everything
*/
private boolean validateSubmitParameters() {
return dateRange.validateHighLowDate("report.error.message.date.received.missing");
}
/**
* creating the list for generation to the report, putting results in resultSet
*/
private void createReportItems() {
try {
// we have to round up everything via hibernate first, since many of our DAO methods close the connection
ResourceTranslator.DictionaryTranslator.getInstance();
ResourceTranslator.GenderTranslator.getInstance();
csvColumnBuilder = new HaitiColumnBuilder(dateRange);
csvColumnBuilder.buildDataSource();
} catch ( Exception e ) {
Log.error("Error in " + this.getClass().getSimpleName() + ".createReportItems: ", e);
e.printStackTrace();
add1LineErrorMessage("report.error.message.general.error");
}
}
}