Mercurial > dive4elements > river
annotate flys-artifacts/src/main/java/de/intevation/flys/exports/WDifferencesExporter.java @ 4255:670e98f5a441
Fixed leak while merging facets.
The ThemeList that is used by OutputHelper to sort the
Facets for an Output now uses a list to store the ManagedFacets.
The correct order is made up by sorting the List using
Collections.sort() function of the Java JDK. Therfore, the
ManagedFacet class implements the Comparable interface. The
return value of its compareTo(other) method depends on the
value of the 'position' field.
author | Ingo Weinzierl <weinzierl.ingo@googlemail.com> |
---|---|
date | Thu, 25 Oct 2012 14:01:46 +0200 |
parents | b2ea89a665bc |
children |
rev | line source |
---|---|
1161
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.exports; |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
2 |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
3 import java.io.IOException; |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
4 import java.io.OutputStream; |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
5 import java.text.NumberFormat; |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
6 import java.util.ArrayList; |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
7 import java.util.List; |
2180
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
8 import java.util.Map; |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
9 import java.util.HashMap; |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
10 import java.util.Date; |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
11 import java.text.DateFormat; |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
12 import java.util.Locale; |
1161
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
13 |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
14 import org.w3c.dom.Document; |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
15 |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
16 import org.apache.log4j.Logger; |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
17 |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
18 import au.com.bytecode.opencsv.CSVWriter; |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
19 |
2180
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
20 import net.sf.jasperreports.engine.JasperExportManager; |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
21 import net.sf.jasperreports.engine.JasperFillManager; |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
22 import net.sf.jasperreports.engine.JasperPrint; |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
23 import net.sf.jasperreports.engine.JRException; |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
24 |
1161
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
25 import de.intevation.artifacts.CallContext; |
2180
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
26 import de.intevation.artifacts.CallMeta; |
2185
a9a8df1473fd
Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2180
diff
changeset
|
27 import de.intevation.artifacts.common.utils.Config; |
2180
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
28 |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
29 import de.intevation.flys.artifacts.WINFOArtifact; |
1161
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
30 |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
31 import de.intevation.flys.artifacts.model.CalculationResult; |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
32 import de.intevation.flys.artifacts.model.WKms; |
2180
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
33 import de.intevation.flys.artifacts.model.WKmsJRDataSource; |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
34 import de.intevation.flys.artifacts.resources.Resources; |
1161
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
35 |
2180
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
36 import de.intevation.flys.utils.FLYSUtils; |
1161
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
37 import de.intevation.flys.utils.Formatter; |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
38 |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
39 /** |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
40 * (CSV)Exporter for WDifferences. |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
41 */ |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
42 public class WDifferencesExporter extends AbstractExporter { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
43 |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
44 /** The logger used in this exporter. */ |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
45 private static Logger logger = Logger.getLogger(WDifferencesExporter.class); |
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 |
1705
2c643a643026
Addressed 'wrong label' issue of wdiff csv-export.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1161
diff
changeset
|
48 public static final String WDIFF_CSV_KM_HEADER = |
1161
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
49 "export.w_differences.csv.header.km"; |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
50 |
1705
2c643a643026
Addressed 'wrong label' issue of wdiff csv-export.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1161
diff
changeset
|
51 public static final String WDIFF_CSV_W_HEADER = |
1161
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
52 "export.w_differences.csv.header.w"; |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
53 |
1705
2c643a643026
Addressed 'wrong label' issue of wdiff csv-export.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1161
diff
changeset
|
54 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
|
55 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
|
56 |
2180
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
57 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
|
58 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
|
59 |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
60 /** 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
|
61 protected List<WKms[]> data; |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
62 |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
63 |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
64 public void init(Document request, OutputStream out, CallContext context) { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
65 logger.debug("WDifferencesExporter.init"); |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
66 |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
67 super.init(request, out, context); |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
68 |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
69 this.data = new ArrayList<WKms[]>(); |
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 |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
73 /** |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
74 * Genereate data in csv format. |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
75 */ |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
76 @Override |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
77 public void generate() |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
78 throws IOException |
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 logger.debug("WDifferencesExporter.generate"); |
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 if (facet == null) { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
83 throw new IOException("invalid (null) facet for exporter"); |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
84 } |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
85 else if (facet.equals(AbstractExporter.FACET_CSV)) { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
86 generateCSV(); |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
87 } |
2180
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
88 else if (facet.equals(AbstractExporter.FACET_PDF)) { |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
89 generatePDF(); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
90 } |
1161
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
91 else { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
92 throw new IOException("invalid facet (" + facet + ") for exporter"); |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
93 } |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
94 } |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
95 |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
96 |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
97 /** |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
98 * Adds given data. |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
99 * @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
|
100 */ |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
101 @Override |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
102 protected void addData(Object d) { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
103 if (d instanceof CalculationResult) { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
104 d = ((CalculationResult)d).getData(); |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
105 if (d instanceof WKms []) { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
106 data.add((WKms [])d); |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
107 } |
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 else if (d instanceof WKms) { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
110 data.add(new WKms[] { (WKms) d }); |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
111 } |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
112 } |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
113 |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
114 |
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 * Lets writer write all data (including header). |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
117 * @param writer Writer to write data with. |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
118 */ |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
119 @Override |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
120 protected void writeCSVData(CSVWriter writer) { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
121 logger.info("WDifferencesExporter.writeData"); |
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 writeCSVHeader(writer); |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
124 |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
125 for (WKms[] tmp: data) { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
126 for (WKms wkms: tmp) { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
127 wKms2CSV(writer, wkms); |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
128 } |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
129 } |
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 |
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 /** |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
134 * 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
|
135 * @param writer Writer to write header with. |
1161
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 protected void writeCSVHeader(CSVWriter writer) { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
138 logger.info("WDifferencesExporter.writeCSVHeader"); |
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 writer.writeNext(new String[] { |
1705
2c643a643026
Addressed 'wrong label' issue of wdiff csv-export.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1161
diff
changeset
|
141 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
|
142 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
|
143 }); |
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 |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
146 |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
147 protected void wKms2CSV(CSVWriter writer, WKms wkms) { |
2260
22bac691d414
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2185
diff
changeset
|
148 logger.debug("WDifferencesExporter.wKms2CSV"); |
1161
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
149 |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
150 NumberFormat kmf = getKmFormatter(); |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
151 NumberFormat wf = getWFormatter(); |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
152 int size = wkms.size(); |
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 for (int i = 0; i < size; i ++) { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
155 |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
156 writer.writeNext(new String[] { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
157 kmf.format(wkms.getKm(i)), |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
158 wf.format(wkms.getW(i)) |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
159 }); |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
160 } |
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 |
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 /** |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
165 * Returns the number formatter for kilometer values. |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
166 * |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
167 * @return the number formatter for kilometer values. |
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 protected NumberFormat getKmFormatter() { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
170 return Formatter.getWaterlevelKM(context); |
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 |
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 * Returns the number formatter for W 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 * @return the number formatter for W values. |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
178 */ |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
179 protected NumberFormat getWFormatter() { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
180 return Formatter.getWaterlevelW(context); |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
181 } |
2176
65dac9cf6ff5
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1705
diff
changeset
|
182 |
65dac9cf6ff5
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1705
diff
changeset
|
183 |
65dac9cf6ff5
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1705
diff
changeset
|
184 @Override |
2180
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
185 protected void writePDF(OutputStream out) { |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
186 WKmsJRDataSource source = createJRData(); |
2185
a9a8df1473fd
Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2180
diff
changeset
|
187 |
a9a8df1473fd
Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2180
diff
changeset
|
188 String jasperFile = Resources.getMsg( |
a9a8df1473fd
Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2180
diff
changeset
|
189 context.getMeta(), |
a9a8df1473fd
Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2180
diff
changeset
|
190 JASPER_FILE, |
a9a8df1473fd
Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2180
diff
changeset
|
191 "/jasper/wdifferences_en.jasper"); |
a9a8df1473fd
Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2180
diff
changeset
|
192 String confPath = Config.getConfigDirectory().toString(); |
a9a8df1473fd
Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2180
diff
changeset
|
193 |
2180
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
194 Map parameters = new HashMap(); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
195 parameters.put("ReportTitle", "Exported Data"); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
196 try { |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
197 JasperPrint print = JasperFillManager.fillReport( |
2185
a9a8df1473fd
Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2180
diff
changeset
|
198 confPath + jasperFile, |
2180
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
199 parameters, |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
200 source); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
201 JasperExportManager.exportReportToPdfStream(print, out); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
202 } |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
203 catch(JRException je) { |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
204 logger.warn("Error generating PDF Report!"); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
205 je.printStackTrace(); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
206 } |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
207 } |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
208 |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
209 protected WKmsJRDataSource createJRData() { |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
210 WKmsJRDataSource source = new WKmsJRDataSource(); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
211 |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
212 addMetaData(source); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
213 for (WKms[] tmp: data) { |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
214 for (WKms wkms: tmp) { |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
215 addWKmsData(source, wkms); |
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 } |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
218 return source; |
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 |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
221 |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
222 protected void addMetaData(WKmsJRDataSource source) { |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
223 CallMeta meta = context.getMeta(); |
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 WINFOArtifact flys = (WINFOArtifact) master; |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
226 |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
227 source.addMetaData ("river", FLYSUtils.getRivername(flys)); |
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 Locale locale = Resources.getLocale(meta); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
230 DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
231 |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
232 source.addMetaData("date", df.format(new Date())); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
233 |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
234 String differences = FLYSUtils.getWDifferences(flys, context); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
235 source.addMetaData("differences", differences); |
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 source.addMetaData("calculation", Resources.getMsg( |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
238 locale, |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
239 PDF_HEADER_MODE, |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
240 "W Differences")); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
241 } |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
242 |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
243 protected void addWKmsData(WKmsJRDataSource source, WKms wkms) { |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
244 NumberFormat kmf = getKmFormatter(); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
245 NumberFormat wf = getWFormatter(); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
246 int size = wkms.size(); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
247 |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
248 for (int i = 0; i < size; i ++) { |
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 source.addData(new String[] { |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
251 kmf.format(wkms.getKm(i)), |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
252 wf.format(wkms.getW(i)) |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
253 }); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
254 } |
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 |
1161
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
257 } |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
258 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |