Mercurial > dive4elements > river
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 } |