Mercurial > dive4elements > river
annotate flys-artifacts/src/main/java/de/intevation/flys/exports/WDifferencesExporter.java @ 4464:b66285ece774
For FlowV.-Artifacts, use given id, fetch data and display via facet and generator.
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Fri, 09 Nov 2012 10:27:17 +0100 |
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 : |