Mercurial > dive4elements > river
diff artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/vegetationzones/VegetationZonesExporter.java @ 9006:7134a4c7d1b6
U-Info S-Info general work
author | gernotbelger |
---|---|
date | Tue, 17 Apr 2018 13:20:25 +0200 |
parents | fb9430250899 |
children | ea3908c3cbb6 |
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/vegetationzones/VegetationZonesExporter.java Tue Apr 17 13:19:56 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/vegetationzones/VegetationZonesExporter.java Tue Apr 17 13:20:25 2018 +0200 @@ -9,17 +9,22 @@ */ package org.dive4elements.river.artifacts.uinfo.vegetationzones; +import java.io.OutputStream; import java.util.ArrayList; import java.util.Collection; +import org.apache.commons.lang.math.DoubleRange; import org.apache.log4j.Logger; -import org.dive4elements.river.artifacts.common.GeneralResultType; +import org.dive4elements.river.artifacts.common.I18NStrings; +import org.dive4elements.river.artifacts.common.JasperReporter; +import org.dive4elements.river.artifacts.common.MetaAndTableJRDataSource; import org.dive4elements.river.artifacts.common.ResultRow; -import org.dive4elements.river.artifacts.sinfo.common.SInfoResultType; import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; import org.dive4elements.river.artifacts.uinfo.commons.AbstractUInfoExporter; +import org.dive4elements.river.artifacts.uinfo.commons.UInfoResultType; import au.com.bytecode.opencsv.CSVWriter; +import net.sf.jasperreports.engine.JRException; /** * @author Domenico Nardi Tironi @@ -30,7 +35,7 @@ /** The log used in this exporter. */ private static Logger log = Logger.getLogger(VegetationZonesExporter.class); - private static final String JASPER_FILE = "/jasper/uinfo.vegetationzones.jasper"; + private static final String JASPER_FILE = "/jasper/templates/uinfo.vegetationzones.jrxml"; @Override protected Logger getLog() { @@ -41,6 +46,13 @@ protected void writeCSVGlobalMetadata(final CSVWriter writer, final VegetationZonesCalculationResults results) { log.info("SalixLineExporter.writeCSVMeta"); super.writeCSVGlobalMetadataDefaults(writer, results); + + final DoubleRange calcRange = results.getCalcRange(); + if (calcRange != null) { + // "# Ort/Bereich (km): " + writeCSVMetaEntry(writer, I18NStrings.CSV_META_RANGE, msg(I18NStrings.CSV_META_RANGE_LABEL), getKmFormatter().format(calcRange.getMinimumDouble()), + getKmFormatter().format(calcRange.getMaximumDouble())); + } } /** @@ -56,16 +68,9 @@ final Collection<String> header = new ArrayList<>(11); - header.add(msg(GeneralResultType.station.getCsvHeader())); - header.add(msgUnit(SInfoResultType.flowdepth.getCsvHeader(), SInfoResultType.flowdepth.getUnit())); - - header.add(msgUnit(SInfoResultType.waterlevel.getCsvHeader(), river.getWstUnit())); - header.add(msgUnit(SInfoResultType.discharge.getCsvHeader(), SInfoResultType.discharge.getUnit())); - header.add(msg(SInfoResultType.waterlevelLabel.getCsvHeader())); - header.add(msg(SInfoResultType.gaugeLabel.getCsvHeader())); - header.add(msgUnit(SInfoResultType.meanBedHeight.getCsvHeader(), river.getWstUnit())); - header.add(msg(SInfoResultType.soundingLabel.getCsvHeader())); - header.add(msg(SInfoResultType.location.getCsvHeader())); + header.add(msg(UInfoResultType.vegname.getCsvHeader())); + header.add(msg(UInfoResultType.vegdauervon.getCsvHeader())); + header.add(msg(UInfoResultType.vegdauerbis.getCsvHeader())); writer.writeNext(header.toArray(new String[header.size()])); } @@ -82,31 +87,42 @@ final Collection<String> lines = new ArrayList<>(11); - lines.add(row.exportValue(this.context, GeneralResultType.station)); - lines.add(row.exportValue(this.context, SInfoResultType.flowdepth)); - - lines.add(row.exportValue(this.context, SInfoResultType.waterlevel)); - lines.add(row.exportValue(this.context, SInfoResultType.discharge)); - lines.add(row.exportValue(this.context, SInfoResultType.waterlevelLabel)); - lines.add(row.exportValue(this.context, SInfoResultType.gaugeLabel)); - lines.add(row.exportValue(this.context, SInfoResultType.meanBedHeight)); - lines.add(row.exportValue(this.context, SInfoResultType.soundingLabel)); - lines.add(row.exportValue(this.context, SInfoResultType.location)); + lines.add(row.exportValue(this.context, UInfoResultType.vegname)); + lines.add(row.exportValue(this.context, UInfoResultType.vegdauervon)); + lines.add(row.exportValue(this.context, UInfoResultType.vegdauerbis)); return lines.toArray(new String[lines.size()]); } @Override - protected String getJasperFile() { - // TODO Auto-generated method stub - return JASPER_FILE; + protected void writeCSVResultMetadata(final CSVWriter writer, final VegetationZonesCalculationResults results, + final VegetationZonesCalculationResult result) { + } @Override - protected void writeCSVResultMetadata(final CSVWriter writer, final VegetationZonesCalculationResults results, - final VegetationZonesCalculationResult result) { - // TODO Auto-generated method stub + protected final void addJRMetaData(final MetaAndTableJRDataSource source, final VegetationZonesCalculationResults results) { + super.addJRMetaData(source, results); + + /* additional column headings */ + source.addMetaData("veg_name", UInfoResultType.vegname.getPdfHeader(this.context.getMeta())); + source.addMetaData("veg_dauervon", UInfoResultType.vegdauervon.getPdfHeader(this.context.getMeta())); + source.addMetaData("veg_dauerbis", UInfoResultType.vegdauerbis.getPdfHeader(this.context.getMeta())); + } + + @Override + protected void writePDF(final OutputStream out) { + try { + final MetaAndTableJRDataSource source = createJRData(this.data); + + final JasperReporter reporter = new JasperReporter(); + reporter.addReport(JASPER_FILE, source); + reporter.exportPDF(out); + } + catch (final JRException je) { + getLog().warn("Error generating PDF Report!", je); + } } } \ No newline at end of file