Mercurial > dive4elements > river
annotate flys-artifacts/src/main/java/de/intevation/flys/exports/WDifferencesExporter.java @ 2180:65b32220f197
Issue 138.
PDF output for differences calculations.
flys-artifacts/trunk@3784 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Fri, 27 Jan 2012 09:49:11 +0000 |
parents | 65dac9cf6ff5 |
children | a9a8df1473fd |
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; |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
27 |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
28 import de.intevation.flys.artifacts.WINFOArtifact; |
1161
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
29 |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
30 import de.intevation.flys.artifacts.model.CalculationResult; |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
31 import de.intevation.flys.artifacts.model.WKms; |
2180
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
32 import de.intevation.flys.artifacts.model.WKmsJRDataSource; |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
33 import de.intevation.flys.artifacts.resources.Resources; |
1161
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
34 |
2180
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
35 import de.intevation.flys.utils.FLYSUtils; |
1161
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
36 import de.intevation.flys.utils.Formatter; |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
37 |
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 * (CSV)Exporter for WDifferences. |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
40 */ |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
41 public class WDifferencesExporter extends AbstractExporter { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
42 |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
43 /** The logger used in this exporter. */ |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
44 private static Logger logger = Logger.getLogger(WDifferencesExporter.class); |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
45 |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
46 |
1705
2c643a643026
Addressed 'wrong label' issue of wdiff csv-export.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1161
diff
changeset
|
47 public static final String WDIFF_CSV_KM_HEADER = |
1161
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
48 "export.w_differences.csv.header.km"; |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
49 |
1705
2c643a643026
Addressed 'wrong label' issue of wdiff csv-export.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1161
diff
changeset
|
50 public static final String WDIFF_CSV_W_HEADER = |
1161
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
51 "export.w_differences.csv.header.w"; |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
52 |
1705
2c643a643026
Addressed 'wrong label' issue of wdiff csv-export.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1161
diff
changeset
|
53 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
|
54 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
|
55 |
2180
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
56 public static final String PDF_HEADER_MODE = "export.wdifferences.pdf.mode"; |
1161
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
57 |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
58 /** 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
|
59 protected List<WKms[]> data; |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
60 |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
61 |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
62 public void init(Document request, OutputStream out, CallContext context) { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
63 logger.debug("WDifferencesExporter.init"); |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
64 |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
65 super.init(request, out, context); |
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 this.data = new ArrayList<WKms[]>(); |
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 |
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 * Genereate data in csv format. |
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 @Override |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
75 public void generate() |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
76 throws IOException |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
77 { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
78 logger.debug("WDifferencesExporter.generate"); |
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 if (facet == null) { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
81 throw new IOException("invalid (null) facet for exporter"); |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
82 } |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
83 else if (facet.equals(AbstractExporter.FACET_CSV)) { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
84 generateCSV(); |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
85 } |
2180
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
86 else if (facet.equals(AbstractExporter.FACET_PDF)) { |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
87 generatePDF(); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
88 } |
1161
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
89 else { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
90 throw new IOException("invalid facet (" + facet + ") for exporter"); |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
91 } |
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 |
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 * Adds given data. |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
97 * @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
|
98 */ |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
99 @Override |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
100 protected void addData(Object d) { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
101 if (d instanceof CalculationResult) { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
102 d = ((CalculationResult)d).getData(); |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
103 if (d instanceof WKms []) { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
104 data.add((WKms [])d); |
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 } |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
107 else if (d instanceof WKms) { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
108 data.add(new WKms[] { (WKms) d }); |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
109 } |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
110 } |
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 * Lets writer write all data (including header). |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
115 * @param writer Writer to write data with. |
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 @Override |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
118 protected void writeCSVData(CSVWriter writer) { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
119 logger.info("WDifferencesExporter.writeData"); |
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 writeCSVHeader(writer); |
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 for (WKms[] tmp: data) { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
124 for (WKms wkms: tmp) { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
125 wKms2CSV(writer, wkms); |
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 } |
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 * Lets csvwriter write the header (first line in file). |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
133 * @param write Writer to write header with. |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
134 */ |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
135 protected void writeCSVHeader(CSVWriter writer) { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
136 logger.info("WDifferencesExporter.writeCSVHeader"); |
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 writer.writeNext(new String[] { |
1705
2c643a643026
Addressed 'wrong label' issue of wdiff csv-export.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1161
diff
changeset
|
139 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
|
140 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
|
141 }); |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
142 } |
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 protected void wKms2CSV(CSVWriter writer, WKms wkms) { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
146 logger.debug("WDifferencesExporter.wQKms2CSV"); |
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 NumberFormat kmf = getKmFormatter(); |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
149 NumberFormat wf = getWFormatter(); |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
150 int size = wkms.size(); |
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 for (int i = 0; i < size; i ++) { |
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 writer.writeNext(new String[] { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
155 kmf.format(wkms.getKm(i)), |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
156 wf.format(wkms.getW(i)) |
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 } |
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 * Returns the number formatter for kilometer values. |
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 * @return 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 protected NumberFormat getKmFormatter() { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
168 return Formatter.getWaterlevelKM(context); |
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 W 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 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 protected NumberFormat getWFormatter() { |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
178 return Formatter.getWaterlevelW(context); |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
179 } |
2176
65dac9cf6ff5
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1705
diff
changeset
|
180 |
65dac9cf6ff5
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1705
diff
changeset
|
181 |
65dac9cf6ff5
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1705
diff
changeset
|
182 @Override |
2180
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
183 protected void writePDF(OutputStream out) { |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
184 WKmsJRDataSource source = createJRData(); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
185 Map parameters = new HashMap(); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
186 parameters.put("ReportTitle", "Exported Data"); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
187 try { |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
188 JasperPrint print = JasperFillManager.fillReport( |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
189 "conf/jasper/wdifferences.jasper", |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
190 parameters, |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
191 source); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
192 JasperExportManager.exportReportToPdfStream(print, out); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
193 } |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
194 catch(JRException je) { |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
195 logger.warn("Error generating PDF Report!"); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
196 je.printStackTrace(); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
197 } |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
198 } |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
199 |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
200 protected WKmsJRDataSource createJRData() { |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
201 WKmsJRDataSource source = new WKmsJRDataSource(); |
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 addMetaData(source); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
204 for (WKms[] tmp: data) { |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
205 for (WKms wkms: tmp) { |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
206 addWKmsData(source, wkms); |
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 return source; |
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 |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
212 |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
213 protected void addMetaData(WKmsJRDataSource source) { |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
214 CallMeta meta = context.getMeta(); |
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 WINFOArtifact flys = (WINFOArtifact) master; |
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 source.addMetaData ("river", FLYSUtils.getRivername(flys)); |
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 Locale locale = Resources.getLocale(meta); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
221 DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
222 |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
223 source.addMetaData("date", df.format(new Date())); |
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 String differences = FLYSUtils.getWDifferences(flys, context); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
226 source.addMetaData("differences", differences); |
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 source.addMetaData("calculation", Resources.getMsg( |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
229 locale, |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
230 PDF_HEADER_MODE, |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
231 "W Differences")); |
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 |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
234 protected void addWKmsData(WKmsJRDataSource source, WKms wkms) { |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
235 NumberFormat kmf = getKmFormatter(); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
236 NumberFormat wf = getWFormatter(); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
237 int size = wkms.size(); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
238 |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
239 for (int i = 0; i < size; i ++) { |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
240 |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
241 source.addData(new String[] { |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
242 kmf.format(wkms.getKm(i)), |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
243 wf.format(wkms.getW(i)) |
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 } |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
246 } |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
247 |
1161
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
248 } |
9bdf738abbad
Added CSV Exporter for WDifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
249 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |