annotate artifacts/src/main/java/org/dive4elements/river/exports/WDifferencesExporter.java @ 6332:f5bb53106ae8

Remove createBarriersLayer and createBarriers The generated mapfiles did not work and were just confusing. This looks like historical cruft that was never deleted. The real barrier mapfiles are created in the Floodmap state
author Andre Heinecke <aheinecke@intevation.de>
date Thu, 13 Jun 2013 17:24:56 +0200
parents af13ceeba52a
children 0a337f0005c2
rev   line source
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
6 * documentation coming with Dive4Elements River for details.
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3269
diff changeset
9 package org.dive4elements.river.exports;
1161
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
10
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
11 import java.io.IOException;
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
12 import java.io.OutputStream;
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
13 import java.text.NumberFormat;
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
14 import java.util.ArrayList;
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
15 import java.util.List;
2180
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
16 import java.util.Map;
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
17 import java.util.HashMap;
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
18 import java.util.Date;
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
19 import java.text.DateFormat;
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
20 import java.util.Locale;
1161
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
21
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
22 import org.w3c.dom.Document;
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
23
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
24 import org.apache.log4j.Logger;
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
25
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
26 import au.com.bytecode.opencsv.CSVWriter;
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
27
2180
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
28 import net.sf.jasperreports.engine.JasperExportManager;
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
29 import net.sf.jasperreports.engine.JasperFillManager;
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
30 import net.sf.jasperreports.engine.JasperPrint;
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
31 import net.sf.jasperreports.engine.JRException;
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
32
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3269
diff changeset
33 import org.dive4elements.artifacts.CallContext;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3269
diff changeset
34 import org.dive4elements.artifacts.CallMeta;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3269
diff changeset
35 import org.dive4elements.artifacts.common.utils.Config;
1161
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
36
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3269
diff changeset
37 import org.dive4elements.river.artifacts.WINFOArtifact;
1161
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
38
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3269
diff changeset
39 import org.dive4elements.river.artifacts.model.CalculationResult;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3269
diff changeset
40 import org.dive4elements.river.artifacts.model.WKms;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3269
diff changeset
41 import org.dive4elements.river.artifacts.model.WKmsJRDataSource;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3269
diff changeset
42 import org.dive4elements.river.artifacts.resources.Resources;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3269
diff changeset
43
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
44 import org.dive4elements.river.utils.RiverUtils;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3269
diff changeset
45 import org.dive4elements.river.utils.Formatter;
1161
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
46
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
47 /**
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
48 * (CSV)Exporter for WDifferences.
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
49 */
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
50 public class WDifferencesExporter extends AbstractExporter {
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
51
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
52 /** The logger used in this exporter. */
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
53 private static Logger logger = Logger.getLogger(WDifferencesExporter.class);
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
54
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
55
1705
2c643a643026 Addressed 'wrong label' issue of wdiff csv-export.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1161
diff changeset
56 public static final String WDIFF_CSV_KM_HEADER =
1161
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
57 "export.w_differences.csv.header.km";
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
58
1705
2c643a643026 Addressed 'wrong label' issue of wdiff csv-export.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1161
diff changeset
59 public static final String WDIFF_CSV_W_HEADER =
1161
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
60 "export.w_differences.csv.header.w";
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
61
1705
2c643a643026 Addressed 'wrong label' issue of wdiff csv-export.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1161
diff changeset
62 public static final String WDIFF_DEFAULT_CSV_KM_HEADER = "Fluss-Km";
2c643a643026 Addressed 'wrong label' issue of wdiff csv-export.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1161
diff changeset
63 public static final String WDIFF_DEFAULT_CSV_W_HEADER = "m";
1161
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
64
2180
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
65 public static final String PDF_HEADER_MODE = "export.wdifferences.pdf.mode";
2185
a9a8df1473fd Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2180
diff changeset
66 public static final String JASPER_FILE = "export.wdifferences.pdf.file";
1161
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
67
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
68 /** The storage that contains all WKms objects for the different facets. */
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
69 protected List<WKms[]> data;
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
70
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
71
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
72 public void init(Document request, OutputStream out, CallContext context) {
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
73 logger.debug("WDifferencesExporter.init");
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
74
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
75 super.init(request, out, context);
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
76
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
77 this.data = new ArrayList<WKms[]>();
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
78 }
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
79
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
80
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
81 /**
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
82 * Genereate data in csv format.
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
83 */
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
84 @Override
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
85 public void generate()
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
86 throws IOException
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
87 {
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
88 logger.debug("WDifferencesExporter.generate");
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
89
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
90 if (facet == null) {
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
91 throw new IOException("invalid (null) facet for exporter");
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
92 }
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
93 else if (facet.equals(AbstractExporter.FACET_CSV)) {
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
94 generateCSV();
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
95 }
2180
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
96 else if (facet.equals(AbstractExporter.FACET_PDF)) {
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
97 generatePDF();
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
98 }
1161
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
99 else {
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
100 throw new IOException("invalid facet (" + facet + ") for exporter");
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
101 }
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
102 }
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
103
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
104
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
105 /**
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
106 * Adds given data.
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
107 * @param d either a WKms or a CalculationResult to add to data.
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
108 */
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
109 @Override
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
110 protected void addData(Object d) {
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
111 if (d instanceof CalculationResult) {
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
112 d = ((CalculationResult)d).getData();
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
113 if (d instanceof WKms []) {
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
114 data.add((WKms [])d);
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
115 }
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
116 }
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
117 else if (d instanceof WKms) {
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
118 data.add(new WKms[] { (WKms) d });
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
119 }
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
120 }
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
121
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
122
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
123 /**
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
124 * Lets writer write all data (including header).
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
125 * @param writer Writer to write data with.
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
126 */
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
127 @Override
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
128 protected void writeCSVData(CSVWriter writer) {
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
129 logger.info("WDifferencesExporter.writeData");
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
130
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
131 writeCSVHeader(writer);
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
132
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
133 for (WKms[] tmp: data) {
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
134 for (WKms wkms: tmp) {
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
135 wKms2CSV(writer, wkms);
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
136 }
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
137 }
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
138 }
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
139
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
140
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
141 /**
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
142 * Lets csvwriter write the header (first line in file).
3269
b2ea89a665bc Fix issues in 'documentation'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2260
diff changeset
143 * @param writer Writer to write header with.
1161
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
144 */
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
145 protected void writeCSVHeader(CSVWriter writer) {
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
146 logger.info("WDifferencesExporter.writeCSVHeader");
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
147
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
148 writer.writeNext(new String[] {
1705
2c643a643026 Addressed 'wrong label' issue of wdiff csv-export.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1161
diff changeset
149 msg(WDIFF_CSV_KM_HEADER, WDIFF_DEFAULT_CSV_KM_HEADER),
2c643a643026 Addressed 'wrong label' issue of wdiff csv-export.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1161
diff changeset
150 msg(WDIFF_CSV_W_HEADER, WDIFF_DEFAULT_CSV_W_HEADER)
1161
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
151 });
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
152 }
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
153
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
154
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
155 protected void wKms2CSV(CSVWriter writer, WKms wkms) {
2260
22bac691d414 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2185
diff changeset
156 logger.debug("WDifferencesExporter.wKms2CSV");
1161
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
157
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
158 NumberFormat kmf = getKmFormatter();
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
159 NumberFormat wf = getWFormatter();
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
160 int size = wkms.size();
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
161
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
162 for (int i = 0; i < size; i ++) {
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
163
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
164 writer.writeNext(new String[] {
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
165 kmf.format(wkms.getKm(i)),
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
166 wf.format(wkms.getW(i))
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
167 });
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
168 }
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
169 }
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
170
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
171
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
172 /**
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
173 * Returns the number formatter for kilometer values.
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
174 *
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
175 * @return the number formatter for kilometer values.
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
176 */
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
177 protected NumberFormat getKmFormatter() {
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
178 return Formatter.getWaterlevelKM(context);
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
179 }
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
180
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
181
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
182 /**
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
183 * Returns the number formatter for W values.
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
184 *
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
185 * @return the number formatter for W values.
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
186 */
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
187 protected NumberFormat getWFormatter() {
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
188 return Formatter.getWaterlevelW(context);
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
189 }
2176
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1705
diff changeset
190
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1705
diff changeset
191
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1705
diff changeset
192 @Override
2180
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
193 protected void writePDF(OutputStream out) {
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
194 WKmsJRDataSource source = createJRData();
2185
a9a8df1473fd Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2180
diff changeset
195
a9a8df1473fd Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2180
diff changeset
196 String jasperFile = Resources.getMsg(
a9a8df1473fd Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2180
diff changeset
197 context.getMeta(),
a9a8df1473fd Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2180
diff changeset
198 JASPER_FILE,
a9a8df1473fd Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2180
diff changeset
199 "/jasper/wdifferences_en.jasper");
a9a8df1473fd Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2180
diff changeset
200 String confPath = Config.getConfigDirectory().toString();
a9a8df1473fd Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2180
diff changeset
201
2180
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
202 Map parameters = new HashMap();
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
203 parameters.put("ReportTitle", "Exported Data");
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
204 try {
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
205 JasperPrint print = JasperFillManager.fillReport(
2185
a9a8df1473fd Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2180
diff changeset
206 confPath + jasperFile,
2180
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
207 parameters,
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
208 source);
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
209 JasperExportManager.exportReportToPdfStream(print, out);
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
210 }
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
211 catch(JRException je) {
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
212 logger.warn("Error generating PDF Report!");
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
213 je.printStackTrace();
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
214 }
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
215 }
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
216
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
217 protected WKmsJRDataSource createJRData() {
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
218 WKmsJRDataSource source = new WKmsJRDataSource();
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
219
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
220 addMetaData(source);
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
221 for (WKms[] tmp: data) {
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
222 for (WKms wkms: tmp) {
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
223 addWKmsData(source, wkms);
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
224 }
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
225 }
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
226 return source;
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
227 }
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
228
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
229
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
230 protected void addMetaData(WKmsJRDataSource source) {
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
231 CallMeta meta = context.getMeta();
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
232
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
233 WINFOArtifact flys = (WINFOArtifact) master;
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
234
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
235 source.addMetaData ("river", RiverUtils.getRivername(flys));
2180
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
236
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
237 Locale locale = Resources.getLocale(meta);
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
238 DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale);
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
239
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
240 source.addMetaData("date", df.format(new Date()));
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
241
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
242 String differences = RiverUtils.getWDifferences(flys, context);
2180
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
243 source.addMetaData("differences", differences);
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
244
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
245 source.addMetaData("calculation", Resources.getMsg(
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
246 locale,
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
247 PDF_HEADER_MODE,
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
248 "W Differences"));
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
249 }
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
250
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
251 protected void addWKmsData(WKmsJRDataSource source, WKms wkms) {
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
252 NumberFormat kmf = getKmFormatter();
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
253 NumberFormat wf = getWFormatter();
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
254 int size = wkms.size();
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
255
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
256 for (int i = 0; i < size; i ++) {
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
257
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
258 source.addData(new String[] {
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
259 kmf.format(wkms.getKm(i)),
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
260 wf.format(wkms.getW(i))
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
261 });
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
262 }
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
263 }
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2176
diff changeset
264
1161
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
265 }
9bdf738abbad Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
266 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org