annotate artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationExporter.java @ 9318:7b2b086e45f0

collision pdf details, ResultType refactoring, bezugswst result
author gernotbelger
date Fri, 27 Jul 2018 10:11:23 +0200
parents 7a8b9331a946
children a49fe0ebb297
rev   line source
9145
e6b63b2b41b9 sinfo.flood_duration pdf, csv, ui
gernotbelger
parents:
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
e6b63b2b41b9 sinfo.flood_duration pdf, csv, ui
gernotbelger
parents:
diff changeset
2 * Software engineering by Intevation GmbH
e6b63b2b41b9 sinfo.flood_duration pdf, csv, ui
gernotbelger
parents:
diff changeset
3 *
e6b63b2b41b9 sinfo.flood_duration pdf, csv, ui
gernotbelger
parents:
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
e6b63b2b41b9 sinfo.flood_duration pdf, csv, ui
gernotbelger
parents:
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
e6b63b2b41b9 sinfo.flood_duration pdf, csv, ui
gernotbelger
parents:
diff changeset
6 * documentation coming with Dive4Elements River for details.
e6b63b2b41b9 sinfo.flood_duration pdf, csv, ui
gernotbelger
parents:
diff changeset
7 */
e6b63b2b41b9 sinfo.flood_duration pdf, csv, ui
gernotbelger
parents:
diff changeset
8
e6b63b2b41b9 sinfo.flood_duration pdf, csv, ui
gernotbelger
parents:
diff changeset
9 package org.dive4elements.river.artifacts.sinfo.flood_duration;
e6b63b2b41b9 sinfo.flood_duration pdf, csv, ui
gernotbelger
parents:
diff changeset
10
9294
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
11 import java.util.List;
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
12
9150
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents: 9145
diff changeset
13 import org.dive4elements.river.artifacts.common.AbstractCommonExporter;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents: 9145
diff changeset
14 import org.dive4elements.river.artifacts.common.ExportContextCSV;
9195
a4121ec450d6 'ca.'-issue
gernotbelger
parents: 9176
diff changeset
15 import org.dive4elements.river.artifacts.common.ExportContextPDF;
9318
7b2b086e45f0 collision pdf details, ResultType refactoring, bezugswst result
gernotbelger
parents: 9294
diff changeset
16 import org.dive4elements.river.artifacts.common.GeneralResultType;
9145
e6b63b2b41b9 sinfo.flood_duration pdf, csv, ui
gernotbelger
parents:
diff changeset
17 import org.dive4elements.river.artifacts.common.JasperDesigner;
e6b63b2b41b9 sinfo.flood_duration pdf, csv, ui
gernotbelger
parents:
diff changeset
18 import org.dive4elements.river.artifacts.common.MetaAndTableJRDataSource;
9294
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
19 import org.dive4elements.river.artifacts.common.ResultRow;
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
20 import org.dive4elements.river.artifacts.sinfo.common.SInfoI18NStrings;
9145
e6b63b2b41b9 sinfo.flood_duration pdf, csv, ui
gernotbelger
parents:
diff changeset
21
e6b63b2b41b9 sinfo.flood_duration pdf, csv, ui
gernotbelger
parents:
diff changeset
22 /**
9202
b4402594213b More work on calculations and output for S-Info flood duration workflow (chart types 1 and 2)
mschaefer
parents: 9195
diff changeset
23 * Generates different output formats (csv, pdf) of data that resulted from a flood duration computation.
9145
e6b63b2b41b9 sinfo.flood_duration pdf, csv, ui
gernotbelger
parents:
diff changeset
24 *
e6b63b2b41b9 sinfo.flood_duration pdf, csv, ui
gernotbelger
parents:
diff changeset
25 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
e6b63b2b41b9 sinfo.flood_duration pdf, csv, ui
gernotbelger
parents:
diff changeset
26 * @author Gernot Belger
e6b63b2b41b9 sinfo.flood_duration pdf, csv, ui
gernotbelger
parents:
diff changeset
27 */
e6b63b2b41b9 sinfo.flood_duration pdf, csv, ui
gernotbelger
parents:
diff changeset
28 // REMARK: must be public because its registered in generators.xml
9195
a4121ec450d6 'ca.'-issue
gernotbelger
parents: 9176
diff changeset
29
a4121ec450d6 'ca.'-issue
gernotbelger
parents: 9176
diff changeset
30 public class FloodDurationExporter extends AbstractCommonExporter<FloodDurationCalculationResult, FloodDurationCalculationResults> {
9145
e6b63b2b41b9 sinfo.flood_duration pdf, csv, ui
gernotbelger
parents:
diff changeset
31
e6b63b2b41b9 sinfo.flood_duration pdf, csv, ui
gernotbelger
parents:
diff changeset
32 @Override
9195
a4121ec450d6 'ca.'-issue
gernotbelger
parents: 9176
diff changeset
33 protected void writeCSVGlobalMetadata(final ExportContextCSV exportContext, final FloodDurationCalculationResults results) {
a4121ec450d6 'ca.'-issue
gernotbelger
parents: 9176
diff changeset
34 exportContext.writeCSVGlobalMetadataDefaults();
9294
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
35
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
36 exportContext.writeBlankLine();
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
37
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
38 final List<FloodDurationCalculationResult> resultList = results.getResults();
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
39 if (resultList.isEmpty())
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
40 return;
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
41
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
42 final FloodDurationCalculationResult result = resultList.get(0);
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
43
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
44 final int waterlevelCount = result.getWaterlevelCount();
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
45 if (waterlevelCount >= 1) {
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
46
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
47 // "##METADATEN WASSERSPIEGELLAGE"
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
48 exportContext.writeCSVMetaEntry(SInfoI18NStrings.CSV_META_HEADER_WATERLEVEL);
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
49
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
50 for (int i = 0; i < waterlevelCount; i++) {
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
51 // "# Bezeichnung der Wasserspiegellage: "
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
52 final String label = result.getWaterlevelLabel(i);
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
53 exportContext.writeCSVMetaEntry(SInfoI18NStrings.CSV_META_HEADER_WATERLEVEL_NAME, String.format("%d: %s", i + 1, label));
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
54 }
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
55
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
56 // "# Bezugspegel: "
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
57 for (final ResultRow row : result.getRows()) {
9318
7b2b086e45f0 collision pdf details, ResultType refactoring, bezugswst result
gernotbelger
parents: 9294
diff changeset
58 exportContext.writeCSVMetaEntry(SInfoI18NStrings.CSV_META_HEADER_WATERLEVEL_GAUGE, row.getValue(GeneralResultType.gaugeLabel));
9294
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
59 break;
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
60 }
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
61 }
9145
e6b63b2b41b9 sinfo.flood_duration pdf, csv, ui
gernotbelger
parents:
diff changeset
62 }
e6b63b2b41b9 sinfo.flood_duration pdf, csv, ui
gernotbelger
parents:
diff changeset
63
9176
1614cb14308f Work on calculations for S-Info flood duration workflow
mschaefer
parents: 9150
diff changeset
64 @Override
9195
a4121ec450d6 'ca.'-issue
gernotbelger
parents: 9176
diff changeset
65 protected void writePDFGlobalMetadata(final ExportContextPDF exportContext, final MetaAndTableJRDataSource source) {
a4121ec450d6 'ca.'-issue
gernotbelger
parents: 9176
diff changeset
66 exportContext.addJRMetaDataUSINFO(source);
a4121ec450d6 'ca.'-issue
gernotbelger
parents: 9176
diff changeset
67 }
9176
1614cb14308f Work on calculations for S-Info flood duration workflow
mschaefer
parents: 9150
diff changeset
68
9195
a4121ec450d6 'ca.'-issue
gernotbelger
parents: 9176
diff changeset
69 @Override
a4121ec450d6 'ca.'-issue
gernotbelger
parents: 9176
diff changeset
70 protected void configureDesign(final FloodDurationCalculationResult result, final JasperDesigner design) {
9294
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
71 final int wlCount = result.getWaterlevelCount();
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
72 if (wlCount == 0 || wlCount == 2) {
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
73 design.removeColumn("wOpt");
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
74 design.removeColumn("qOpt");
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
75 design.removeColumn("bezOpt");
7a8b9331a946 Moved waterlevel metadata block to global metadata, because its only written once
gernotbelger
parents: 9205
diff changeset
76 design.removeColumn("durOpt");
9176
1614cb14308f Work on calculations for S-Info flood duration workflow
mschaefer
parents: 9150
diff changeset
77 }
1614cb14308f Work on calculations for S-Info flood duration workflow
mschaefer
parents: 9150
diff changeset
78 }
9145
e6b63b2b41b9 sinfo.flood_duration pdf, csv, ui
gernotbelger
parents:
diff changeset
79 }

http://dive4elements.wald.intevation.org