comparison artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationExporter.java @ 9294:7a8b9331a946

Moved waterlevel metadata block to global metadata, because its only written once
author gernotbelger
date Tue, 24 Jul 2018 16:55:43 +0200
parents 3dae6b78e1da
children 7b2b086e45f0
comparison
equal deleted inserted replaced
9293:e3e465766cfe 9294:7a8b9331a946
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.flood_duration; 9 package org.dive4elements.river.artifacts.sinfo.flood_duration;
10 10
11 import java.util.List;
12
11 import org.dive4elements.river.artifacts.common.AbstractCommonExporter; 13 import org.dive4elements.river.artifacts.common.AbstractCommonExporter;
12 import org.dive4elements.river.artifacts.common.ExportContextCSV; 14 import org.dive4elements.river.artifacts.common.ExportContextCSV;
13 import org.dive4elements.river.artifacts.common.ExportContextPDF; 15 import org.dive4elements.river.artifacts.common.ExportContextPDF;
14 import org.dive4elements.river.artifacts.common.JasperDesigner; 16 import org.dive4elements.river.artifacts.common.JasperDesigner;
15 import org.dive4elements.river.artifacts.common.MetaAndTableJRDataSource; 17 import org.dive4elements.river.artifacts.common.MetaAndTableJRDataSource;
18 import org.dive4elements.river.artifacts.common.ResultRow;
19 import org.dive4elements.river.artifacts.sinfo.common.SInfoI18NStrings;
20 import org.dive4elements.river.artifacts.sinfo.common.SInfoResultType;
16 21
17 /** 22 /**
18 * Generates different output formats (csv, pdf) of data that resulted from a flood duration computation. 23 * Generates different output formats (csv, pdf) of data that resulted from a flood duration computation.
19 * 24 *
20 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> 25 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
25 public class FloodDurationExporter extends AbstractCommonExporter<FloodDurationCalculationResult, FloodDurationCalculationResults> { 30 public class FloodDurationExporter extends AbstractCommonExporter<FloodDurationCalculationResult, FloodDurationCalculationResults> {
26 31
27 @Override 32 @Override
28 protected void writeCSVGlobalMetadata(final ExportContextCSV exportContext, final FloodDurationCalculationResults results) { 33 protected void writeCSVGlobalMetadata(final ExportContextCSV exportContext, final FloodDurationCalculationResults results) {
29 exportContext.writeCSVGlobalMetadataDefaults(); 34 exportContext.writeCSVGlobalMetadataDefaults();
35
36 exportContext.writeBlankLine();
37
38 final List<FloodDurationCalculationResult> resultList = results.getResults();
39 if (resultList.isEmpty())
40 return;
41
42 final FloodDurationCalculationResult result = resultList.get(0);
43
44 final int waterlevelCount = result.getWaterlevelCount();
45 if (waterlevelCount >= 1) {
46
47 // "##METADATEN WASSERSPIEGELLAGE"
48 exportContext.writeCSVMetaEntry(SInfoI18NStrings.CSV_META_HEADER_WATERLEVEL);
49
50 for (int i = 0; i < waterlevelCount; i++) {
51 // "# Bezeichnung der Wasserspiegellage: "
52 final String label = result.getWaterlevelLabel(i);
53 exportContext.writeCSVMetaEntry(SInfoI18NStrings.CSV_META_HEADER_WATERLEVEL_NAME, String.format("%d: %s", i + 1, label));
54 }
55
56 // "# Bezugspegel: "
57 for (final ResultRow row : result.getRows()) {
58 exportContext.writeCSVMetaEntry(SInfoI18NStrings.CSV_META_HEADER_WATERLEVEL_GAUGE, row.getValue(SInfoResultType.gaugeLabel));
59 break;
60 }
61 }
30 } 62 }
31 63
32 @Override 64 @Override
33 protected void writePDFGlobalMetadata(final ExportContextPDF exportContext, final MetaAndTableJRDataSource source) { 65 protected void writePDFGlobalMetadata(final ExportContextPDF exportContext, final MetaAndTableJRDataSource source) {
34 exportContext.addJRMetaDataUSINFO(source); 66 exportContext.addJRMetaDataUSINFO(source);
35 } 67 }
36 68
37 @Override 69 @Override
38 protected void configureDesign(final FloodDurationCalculationResult result, final JasperDesigner design) { 70 protected void configureDesign(final FloodDurationCalculationResult result, final JasperDesigner design) {
39 if (result instanceof FloodDurationCalculationResult) { 71 final int wlCount = result.getWaterlevelCount();
40 final int wlCount = result.getWaterlevelCount(); 72 if (wlCount == 0 || wlCount == 2) {
41 if (wlCount == 0 || wlCount == 2) { 73 design.removeColumn("wOpt");
42 design.removeColumn("wOpt"); 74 design.removeColumn("qOpt");
43 design.removeColumn("qOpt"); 75 design.removeColumn("bezOpt");
44 design.removeColumn("bezOpt"); 76 design.removeColumn("durOpt");
45 design.removeColumn("durOpt");
46 }
47 } 77 }
48 } 78 }
49 } 79 }

http://dive4elements.wald.intevation.org