comparison artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepthdev/FlowDepthDevelopmentExporter.java @ 9006:7134a4c7d1b6

U-Info S-Info general work
author gernotbelger
date Tue, 17 Apr 2018 13:20:25 +0200
parents d5802f22e4f5
children 23945061daec
comparison
equal deleted inserted replaced
9005:460fcc128794 9006:7134a4c7d1b6
6 * documentation coming with Dive4Elements River for details. 6 * documentation coming with Dive4Elements River for details.
7 */ 7 */
8 8
9 package org.dive4elements.river.artifacts.sinfo.flowdepthdev; 9 package org.dive4elements.river.artifacts.sinfo.flowdepthdev;
10 10
11 import java.io.OutputStream;
11 import java.util.ArrayList; 12 import java.util.ArrayList;
12 import java.util.Collection; 13 import java.util.Collection;
13 14
14 import org.apache.log4j.Logger; 15 import org.apache.log4j.Logger;
15 import org.dive4elements.river.artifacts.common.GeneralResultType; 16 import org.dive4elements.river.artifacts.common.GeneralResultType;
17 import org.dive4elements.river.artifacts.common.JasperReporter;
18 import org.dive4elements.river.artifacts.common.MetaAndTableJRDataSource;
16 import org.dive4elements.river.artifacts.common.ResultRow; 19 import org.dive4elements.river.artifacts.common.ResultRow;
17 import org.dive4elements.river.artifacts.sinfo.common.AbstractSInfoExporter; 20 import org.dive4elements.river.artifacts.sinfo.common.AbstractSInfoExporter;
18 import org.dive4elements.river.artifacts.sinfo.common.SInfoResultType; 21 import org.dive4elements.river.artifacts.sinfo.common.SInfoResultType;
19 import org.dive4elements.river.artifacts.sinfo.util.MetaAndTableJRDataSource;
20 import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; 22 import org.dive4elements.river.artifacts.sinfo.util.RiverInfo;
21 23
22 import au.com.bytecode.opencsv.CSVWriter; 24 import au.com.bytecode.opencsv.CSVWriter;
25 import net.sf.jasperreports.engine.JRException;
23 26
24 /** 27 /**
25 * Generates different output formats (csv, pdf) of data that resulted from a flow depths computation. 28 * Generates different output formats (csv, pdf) of data that resulted from a flow depths computation.
26 * 29 *
27 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> 30 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
39 private static final String CSV_META_HEADER_WATERLEVEL_HISTORICAL = "sinfo.export.csv.meta.header.waterlevel.historical"; 42 private static final String CSV_META_HEADER_WATERLEVEL_HISTORICAL = "sinfo.export.csv.meta.header.waterlevel.historical";
40 43
41 /** The log used in this exporter. */ 44 /** The log used in this exporter. */
42 private static Logger log = Logger.getLogger(FlowDepthDevelopmentExporter.class); 45 private static Logger log = Logger.getLogger(FlowDepthDevelopmentExporter.class);
43 46
44 private static final String JASPER_FILE = "/jasper/sinfo.flowdepthdevelopment.jasper"; 47 private static final String JASPER_FILE = "/jasper/templates/sinfo.flowdepthdevelopment.jrxml";
45 48
46 @Override 49 @Override
47 protected Logger getLog() { 50 protected Logger getLog() {
48 return log; 51 return log;
49 } 52 }
57 writeCSVWaterlevelMetadata(writer, result.getCurrentWst(), CSV_META_HEADER_WATERLEVEL_CURRENT); 60 writeCSVWaterlevelMetadata(writer, result.getCurrentWst(), CSV_META_HEADER_WATERLEVEL_CURRENT);
58 writer.writeNext(new String[] { "" }); // break line 61 writer.writeNext(new String[] { "" }); // break line
59 writeCSVSoundingMetadata(writer, result.getHistoricalSounding(), CSV_META_HEADER_SOUNDING_HISTORICAL); 62 writeCSVSoundingMetadata(writer, result.getHistoricalSounding(), CSV_META_HEADER_SOUNDING_HISTORICAL);
60 writer.writeNext(new String[] { "" }); // break line 63 writer.writeNext(new String[] { "" }); // break line
61 writeCSVWaterlevelMetadata(writer, result.getHistoricalWst(), CSV_META_HEADER_WATERLEVEL_HISTORICAL); 64 writeCSVWaterlevelMetadata(writer, result.getHistoricalWst(), CSV_META_HEADER_WATERLEVEL_HISTORICAL);
65 writer.writeNext(new String[] { "" }); // break line
62 } 66 }
63 67
64 @Override 68 @Override
65 protected void writeCSVGlobalMetadata(final CSVWriter writer, final FlowDepthDevelopmentCalculationResults results) { 69 protected void writeCSVGlobalMetadata(final CSVWriter writer, final FlowDepthDevelopmentCalculationResults results) {
66 super.writeCSVGlobalMetadataDefaults(writer, results); 70 super.writeCSVGlobalMetadataDefaults(writer, results);
120 124
121 return lines.toArray(new String[lines.size()]); 125 return lines.toArray(new String[lines.size()]);
122 } 126 }
123 127
124 @Override 128 @Override
125 protected final String getJasperFile() {
126 return JASPER_FILE;
127 }
128
129 @Override
130 protected final void addJRMetaData(final MetaAndTableJRDataSource source, final FlowDepthDevelopmentCalculationResults results) { 129 protected final void addJRMetaData(final MetaAndTableJRDataSource source, final FlowDepthDevelopmentCalculationResults results) {
131 130
132 /* general metadata */ 131 /* general metadata */
133 super.addJRMetaData(source, results); 132 super.addJRMetaData(source, results);
134 133
154 source.addMetaData("flowdepthhistorical_header2", result.getFlowDepthHistoricalLabel()); 153 source.addMetaData("flowdepthhistorical_header2", result.getFlowDepthHistoricalLabel());
155 154
156 source.addMetaData("location_header", SInfoResultType.location.getPdfHeader(this.context.getMeta())); 155 source.addMetaData("location_header", SInfoResultType.location.getPdfHeader(this.context.getMeta()));
157 } 156 }
158 157
158 @Override
159 protected void writePDF(final OutputStream out) {
160 try {
161 final MetaAndTableJRDataSource source = createJRData(this.data);
162
163 final JasperReporter reporter = new JasperReporter();
164 reporter.addReport(JASPER_FILE, source);
165 reporter.exportPDF(out);
166 }
167 catch (final JRException je) {
168 getLog().warn("Error generating PDF Report!", je);
169 }
170 }
171
159 } 172 }

http://dive4elements.wald.intevation.org