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

U-Info S-Info general work
author gernotbelger
date Tue, 17 Apr 2018 13:20:25 +0200
parents fb9430250899
children ae3565385e6a
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.tkhstate; 9 package org.dive4elements.river.artifacts.sinfo.tkhstate;
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 import org.dive4elements.river.artifacts.sinfo.util.WstInfo; 23 import org.dive4elements.river.artifacts.sinfo.util.WstInfo;
22 24
23 import au.com.bytecode.opencsv.CSVWriter; 25 import au.com.bytecode.opencsv.CSVWriter;
26 import net.sf.jasperreports.engine.JRException;
24 27
25 /** 28 /**
26 * Generates different output formats (csv, pdf) of data that resulted from a tkh computation. 29 * Generates different output formats (csv, pdf) of data that resulted from a tkh computation.
27 * 30 *
28 * @author Gernot Belger 31 * @author Gernot Belger
33 /** The log used in this exporter. */ 36 /** The log used in this exporter. */
34 private static Logger log = Logger.getLogger(TkhExporter.class); 37 private static Logger log = Logger.getLogger(TkhExporter.class);
35 38
36 private static final String CSV_META_CALCULATION_FORMULA = "sinfo.export.tkh.calculation.formula"; 39 private static final String CSV_META_CALCULATION_FORMULA = "sinfo.export.tkh.calculation.formula";
37 40
38 private static final String JASPER_FILE = "/jasper/sinfo.tkh.jasper"; 41 private static final String JASPER_FILE = "/jasper/templates/sinfo.tkh.jrxml";
39 42
40 @Override 43 @Override
41 protected Logger getLog() { 44 protected Logger getLog() {
42 return log; 45 return log;
43 } 46 }
85 // FIXME: rename 88 // FIXME: rename
86 protected void writeCSVResultMetadata(final CSVWriter writer, final TkhCalculationResults results, final TkhCalculationResult result) { 89 protected void writeCSVResultMetadata(final CSVWriter writer, final TkhCalculationResults results, final TkhCalculationResult result) {
87 90
88 final WstInfo wst = result.getWst(); 91 final WstInfo wst = result.getWst();
89 super.writeCSVWaterlevelMetadata(writer, wst); 92 super.writeCSVWaterlevelMetadata(writer, wst);
90 93 writer.writeNext(new String[] { "" }); // break line
91 // FIXME: 94 // FIXME:
92 // "# W/Pegel [cm]: " (nur bei Eingabe des Wasserstands am Pegel) 95 // "# W/Pegel [cm]: " (nur bei Eingabe des Wasserstands am Pegel)
93 // "# Q (m³/s): " (nur bei Eingabe des Durchflusses) 96 // "# Q (m³/s): " (nur bei Eingabe des Durchflusses)
94 } 97 }
95 98
121 124
122 return lines.toArray(new String[lines.size()]); 125 return lines.toArray(new String[lines.size()]);
123 } 126 }
124 127
125 @Override 128 @Override
126 protected final String getJasperFile() {
127 return JASPER_FILE;
128 }
129
130 @Override
131 protected final void addJRMetaData(final MetaAndTableJRDataSource source, final TkhCalculationResults results) { 129 protected final void addJRMetaData(final MetaAndTableJRDataSource source, final TkhCalculationResults results) {
132 130
133 /* general metadata */ 131 /* general metadata */
134 super.addJRMetaData(source, results); 132 super.addJRMetaData(source, results);
135 133
153 151
154 source.addMetaData("gauge_header", SInfoResultType.gaugeLabel.getPdfHeader(this.context.getMeta())); 152 source.addMetaData("gauge_header", SInfoResultType.gaugeLabel.getPdfHeader(this.context.getMeta()));
155 source.addMetaData("location_header", SInfoResultType.location.getPdfHeader(this.context.getMeta())); 153 source.addMetaData("location_header", SInfoResultType.location.getPdfHeader(this.context.getMeta()));
156 } 154 }
157 155
156 @Override
157 protected void writePDF(final OutputStream out) {
158 try {
159 final MetaAndTableJRDataSource source = createJRData(this.data);
160
161 final JasperReporter reporter = new JasperReporter();
162 reporter.addReport(JASPER_FILE, source);
163 reporter.exportPDF(out);
164 }
165 catch (final JRException je) {
166 getLog().warn("Error generating PDF Report!", je);
167 }
168 }
169
158 } 170 }

http://dive4elements.wald.intevation.org