Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedDifferenceExporter.java @ 7979:6fef38a526c7 3.1.4
There is no year/epoche choice anymore for bed differences.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Fri, 27 Jun 2014 19:25:29 +0200 |
parents | c0843a658474 |
children | e4606eae8ea5 |
rev | line source |
---|---|
6667
84349d440987
BedDifferenceExporter: Added licence header.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6248
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
84349d440987
BedDifferenceExporter: Added licence header.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6248
diff
changeset
|
2 * Software engineering by Intevation GmbH |
84349d440987
BedDifferenceExporter: Added licence header.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6248
diff
changeset
|
3 * |
84349d440987
BedDifferenceExporter: Added licence header.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6248
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
84349d440987
BedDifferenceExporter: Added licence header.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6248
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
84349d440987
BedDifferenceExporter: Added licence header.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6248
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
84349d440987
BedDifferenceExporter: Added licence header.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6248
diff
changeset
|
7 */ |
84349d440987
BedDifferenceExporter: Added licence header.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6248
diff
changeset
|
8 |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
9 package org.dive4elements.river.exports.minfo; |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
10 |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
11 import java.io.IOException; |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
12 import java.io.OutputStream; |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
13 import java.text.NumberFormat; |
7913
76b5add4f268
Added diff pair column to CSV export of bed height differences. TODO: same for PDF, adjust client.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7908
diff
changeset
|
14 import java.util.ArrayList; |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
15 import java.util.List; |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
16 import java.util.Map; |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
17 import java.util.HashMap; |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
18 import java.util.Locale; |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
19 import java.util.Date; |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
20 import java.text.DateFormat; |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
21 |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
22 import org.apache.log4j.Logger; |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
23 import org.apache.commons.lang.StringUtils; |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
24 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
25 import net.sf.jasperreports.engine.JasperExportManager; |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
26 import net.sf.jasperreports.engine.JasperFillManager; |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
27 import net.sf.jasperreports.engine.JasperPrint; |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
28 import net.sf.jasperreports.engine.JRException; |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
29 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
30 import org.dive4elements.artifacts.CallMeta; |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
31 import org.dive4elements.river.artifacts.D4EArtifact; |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
32 import org.dive4elements.river.artifacts.access.BedDifferencesAccess; |
7915
931dffefc3dd
flys/issue1628: Adjusted the PDF export.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7914
diff
changeset
|
33 import org.dive4elements.river.artifacts.access.RiverAccess; |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
34 import org.dive4elements.artifacts.common.utils.Config; |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
35 import org.dive4elements.river.artifacts.resources.Resources; |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
36 import org.dive4elements.river.artifacts.model.CalculationResult; |
7831
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
37 import org.dive4elements.river.artifacts.model.minfo.BedDiffYearResult; |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
38 import org.dive4elements.river.artifacts.model.minfo.BedDifferencesResult; |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
39 import org.dive4elements.river.artifacts.model.minfo.BedDifferenceJRDataSource; |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
40 import org.dive4elements.river.exports.AbstractExporter; |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
41 import org.dive4elements.river.utils.Formatter; |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
42 |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
43 import au.com.bytecode.opencsv.CSVWriter; |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
44 |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
45 public class BedDifferenceExporter |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
46 extends AbstractExporter |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
47 { |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
48 |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
49 /** Private logger. */ |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
50 private static Logger logger = |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
51 Logger.getLogger(BedDifferenceExporter.class); |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
52 |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
53 private static final String CSV_HEADER_KM = |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
54 "export.minfo.beddifference.km"; |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
55 |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
56 private static final String CSV_HEADER_DIFF = |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
57 "export.minfo.beddifference.diff"; |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
58 |
7913
76b5add4f268
Added diff pair column to CSV export of bed height differences. TODO: same for PDF, adjust client.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7908
diff
changeset
|
59 private static final String CSV_HEADER_DIFF_PAIR = |
76b5add4f268
Added diff pair column to CSV export of bed height differences. TODO: same for PDF, adjust client.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7908
diff
changeset
|
60 "export.minfo.beddifference.diff.pair"; |
76b5add4f268
Added diff pair column to CSV export of bed height differences. TODO: same for PDF, adjust client.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7908
diff
changeset
|
61 |
7831
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
62 private static final String CSV_HEADER_MORPH1 = |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
63 "export.minfo.beddifference.morph1"; |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
64 |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
65 private static final String CSV_HEADER_MORPH2 = |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
66 "export.minfo.beddifference.morph2"; |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
67 |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
68 public static final String JASPER_FILE = |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
69 "export.minfo.beddifference.pdf.file"; |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
70 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
71 public static final String PDF_TITLE= |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
72 "export.minfo.beddifference.pdf.title"; |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
73 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
74 public static final String PDF_HEADER_MODE= |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
75 "export.minfo.beddifference.pdf.mode"; |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
76 |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
77 private BedDifferencesResult[] results; |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
78 |
7077
0a337f0005c2
Extended init() of OutGenerator to take name of the out to serve.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6681
diff
changeset
|
79 public BedDifferenceExporter() { |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
80 results = new BedDifferencesResult[0]; |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
81 } |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
82 |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
83 @Override |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
84 protected void writeCSVData(CSVWriter writer) throws IOException { |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
85 writeCSVHeader(writer); |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
86 |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
87 NumberFormat kmf = Formatter.getCalculationKm(context.getMeta()); |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
88 NumberFormat mf = Formatter.getMeterFormat(context); |
6681
e316a9c626e0
Use foreach instead of for-loop.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6667
diff
changeset
|
89 for (BedDifferencesResult result : results) { |
7831
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
90 if (result instanceof BedDiffYearResult) { |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
91 BedDiffYearResult yResult = (BedDiffYearResult) result; |
7913
76b5add4f268
Added diff pair column to CSV export of bed height differences. TODO: same for PDF, adjust client.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7908
diff
changeset
|
92 String desc = result.getDiffDescription(); |
7831
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
93 double[][] kms = yResult.getDifferencesData(); |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
94 double[][] morph1 = yResult.getMorphWidth1Data(); |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
95 double[][] morph2 = yResult.getMorphWidth2Data(); |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
96 for (int j = 0; j < kms[0].length; j++) { |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
97 writer.writeNext(new String[] { |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
98 kmf.format(kms[0][j]), |
7914
db1a2b14c32d
Change column order in bed differences export.
Tom Gottfried <tom@intevation.de>
parents:
7913
diff
changeset
|
99 desc, |
7831
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
100 mf.format(kms[1][j]), |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
101 mf.format(morph1[1][j]), |
7913
76b5add4f268
Added diff pair column to CSV export of bed height differences. TODO: same for PDF, adjust client.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7908
diff
changeset
|
102 mf.format(morph2[1][j]), |
7914
db1a2b14c32d
Change column order in bed differences export.
Tom Gottfried <tom@intevation.de>
parents:
7913
diff
changeset
|
103 }); |
7831
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
104 } |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
105 } |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
106 else { |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
107 double[][] kms = result.getDifferencesData(); |
7913
76b5add4f268
Added diff pair column to CSV export of bed height differences. TODO: same for PDF, adjust client.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7908
diff
changeset
|
108 String desc = result.getDiffDescription(); |
7831
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
109 for (int j = 0; j < kms[0].length; j++) { |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
110 writer.writeNext(new String[] { |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
111 kmf.format(kms[0][j]), |
7914
db1a2b14c32d
Change column order in bed differences export.
Tom Gottfried <tom@intevation.de>
parents:
7913
diff
changeset
|
112 desc, |
7913
76b5add4f268
Added diff pair column to CSV export of bed height differences. TODO: same for PDF, adjust client.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7908
diff
changeset
|
113 mf.format(kms[1][j]), |
7914
db1a2b14c32d
Change column order in bed differences export.
Tom Gottfried <tom@intevation.de>
parents:
7913
diff
changeset
|
114 }); |
7831
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
115 } |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
116 } |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
117 } |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
118 } |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
119 |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
120 @Override |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
121 protected void addData(Object data) { |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
122 if (!(data instanceof CalculationResult)) { |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
123 logger.warn("Invalid data type."); |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
124 return; |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
125 } |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
126 Object[] d = (Object[])((CalculationResult)data).getData(); |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
127 |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
128 if (!(d instanceof BedDifferencesResult[])) { |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
129 logger.warn("Invalid result object."); |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
130 return; |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
131 } |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
132 results = (BedDifferencesResult[])d; |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
133 } |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
134 |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
135 protected void addMetaData(BedDifferenceJRDataSource source) { |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
136 CallMeta meta = context.getMeta(); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
137 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
138 D4EArtifact arti = (D4EArtifact) master; |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
139 |
7915
931dffefc3dd
flys/issue1628: Adjusted the PDF export.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7914
diff
changeset
|
140 //source.addMetaData ("river", RiverUtils.getRivername(arti)); |
931dffefc3dd
flys/issue1628: Adjusted the PDF export.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7914
diff
changeset
|
141 source.addMetaData ("river", new RiverAccess(arti).getRiverName()); |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
142 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
143 Locale locale = Resources.getLocale(meta); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
144 DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
145 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
146 source.addMetaData("date", df.format(new Date())); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
147 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
148 source.addMetaData("calculation", Resources.getMsg( |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
149 locale, |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
150 PDF_HEADER_MODE, |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
151 "Bedheight difference")); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
152 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
153 // Now the dynamic parts |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
154 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
155 BedDifferencesAccess access = new BedDifferencesAccess(arti); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
156 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
157 source.addMetaData("differences", StringUtils.join( |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
158 access.getDifferenceArtifactNamePairs(), "\n")); |
7908
df9ac27d6b74
Fixed flys/issue1628. Made "unit" a configurable field in PDF export.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7906
diff
changeset
|
159 |
7916
c0843a658474
Adapted bed differences PDF export to CSV export and some cleanup of field names.
Tom Gottfried <tom@intevation.de>
parents:
7915
diff
changeset
|
160 source.addMetaData("kmheader", |
c0843a658474
Adapted bed differences PDF export to CSV export and some cleanup of field names.
Tom Gottfried <tom@intevation.de>
parents:
7915
diff
changeset
|
161 msg(CSV_HEADER_KM, "km")); |
7915
931dffefc3dd
flys/issue1628: Adjusted the PDF export.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7914
diff
changeset
|
162 source.addMetaData("diffpairheader", |
931dffefc3dd
flys/issue1628: Adjusted the PDF export.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7914
diff
changeset
|
163 msg(CSV_HEADER_DIFF_PAIR, "Difference pair")); |
7916
c0843a658474
Adapted bed differences PDF export to CSV export and some cleanup of field names.
Tom Gottfried <tom@intevation.de>
parents:
7915
diff
changeset
|
164 source.addMetaData("diffheader", msg(CSV_HEADER_DIFF, "cm")); |
c0843a658474
Adapted bed differences PDF export to CSV export and some cleanup of field names.
Tom Gottfried <tom@intevation.de>
parents:
7915
diff
changeset
|
165 source.addMetaData("morph1header", |
c0843a658474
Adapted bed differences PDF export to CSV export and some cleanup of field names.
Tom Gottfried <tom@intevation.de>
parents:
7915
diff
changeset
|
166 msg(CSV_HEADER_MORPH1, "Morph. active width minuend")); |
c0843a658474
Adapted bed differences PDF export to CSV export and some cleanup of field names.
Tom Gottfried <tom@intevation.de>
parents:
7915
diff
changeset
|
167 source.addMetaData("morph2header", |
c0843a658474
Adapted bed differences PDF export to CSV export and some cleanup of field names.
Tom Gottfried <tom@intevation.de>
parents:
7915
diff
changeset
|
168 msg(CSV_HEADER_MORPH2, "Morph. active width subtrahend")); |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
169 } |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
170 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
171 |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
172 protected void writeCSVHeader(CSVWriter writer) { |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
173 logger.debug("writeCSVHeader()"); |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
174 |
7913
76b5add4f268
Added diff pair column to CSV export of bed height differences. TODO: same for PDF, adjust client.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7908
diff
changeset
|
175 List<String> header = new ArrayList<String>(); |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
176 if (results != null) { |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
177 header.add(msg(CSV_HEADER_KM, "km")); |
7914
db1a2b14c32d
Change column order in bed differences export.
Tom Gottfried <tom@intevation.de>
parents:
7913
diff
changeset
|
178 header.add(msg(CSV_HEADER_DIFF_PAIR, "difference pair")); |
7906
57cb1b7ec547
issue1628: correct unit and at least partly complete column name for CSV.
"Tom Gottfried <tom@intevation.de>"
parents:
7831
diff
changeset
|
179 header.add(msg(CSV_HEADER_DIFF, "cm")); |
7831
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
180 if (results.length > 0 && |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
181 results[0] instanceof BedDiffYearResult) { |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
182 header.add(msg(CSV_HEADER_MORPH1, "morph width minuend [m]")); |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
183 header.add(msg(CSV_HEADER_MORPH2, "morph width subtrahend [m]")); |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
184 } |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
185 } |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
186 writer.writeNext(header.toArray(new String[header.size()])); |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
187 } |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
188 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
189 protected BedDifferenceJRDataSource createJRData() { |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
190 BedDifferenceJRDataSource source = new BedDifferenceJRDataSource(); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
191 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
192 addMetaData(source); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
193 NumberFormat kmf = Formatter.getCalculationKm(context.getMeta()); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
194 NumberFormat mf = Formatter.getMeterFormat(context); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
195 for (BedDifferencesResult result: results) { |
7916
c0843a658474
Adapted bed differences PDF export to CSV export and some cleanup of field names.
Tom Gottfried <tom@intevation.de>
parents:
7915
diff
changeset
|
196 BedDiffYearResult yResult = (BedDiffYearResult) result; |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
197 double[][] kms = result.getDifferencesData(); |
7915
931dffefc3dd
flys/issue1628: Adjusted the PDF export.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7914
diff
changeset
|
198 String desc = result.getDiffDescription(); |
7916
c0843a658474
Adapted bed differences PDF export to CSV export and some cleanup of field names.
Tom Gottfried <tom@intevation.de>
parents:
7915
diff
changeset
|
199 double[][] morph1 = yResult.getMorphWidth1Data(); |
c0843a658474
Adapted bed differences PDF export to CSV export and some cleanup of field names.
Tom Gottfried <tom@intevation.de>
parents:
7915
diff
changeset
|
200 double[][] morph2 = yResult.getMorphWidth2Data(); |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
201 for (int j = 0; j < kms[0].length; j++) { |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
202 source.addData(new String[] { |
7915
931dffefc3dd
flys/issue1628: Adjusted the PDF export.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7914
diff
changeset
|
203 kmf.format(kms[0][j]), |
7916
c0843a658474
Adapted bed differences PDF export to CSV export and some cleanup of field names.
Tom Gottfried <tom@intevation.de>
parents:
7915
diff
changeset
|
204 desc, |
7915
931dffefc3dd
flys/issue1628: Adjusted the PDF export.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7914
diff
changeset
|
205 mf.format(kms[1][j]), |
7916
c0843a658474
Adapted bed differences PDF export to CSV export and some cleanup of field names.
Tom Gottfried <tom@intevation.de>
parents:
7915
diff
changeset
|
206 mf.format(morph1[1][j]), |
c0843a658474
Adapted bed differences PDF export to CSV export and some cleanup of field names.
Tom Gottfried <tom@intevation.de>
parents:
7915
diff
changeset
|
207 mf.format(morph2[1][j]) |
c0843a658474
Adapted bed differences PDF export to CSV export and some cleanup of field names.
Tom Gottfried <tom@intevation.de>
parents:
7915
diff
changeset
|
208 }); |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
209 } |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
210 } |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
211 return source; |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
212 } |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
213 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
214 @Override |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
215 protected void writePDF(OutputStream out) { |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
216 logger.debug("write PDF"); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
217 BedDifferenceJRDataSource source = createJRData(); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
218 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
219 String jasperFile = Resources.getMsg( |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
220 context.getMeta(), |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
221 JASPER_FILE, |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
222 "/jasper/beddifference_en.jasper"); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
223 String confPath = Config.getConfigDirectory().toString(); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
224 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
225 |
7915
931dffefc3dd
flys/issue1628: Adjusted the PDF export.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7914
diff
changeset
|
226 Map<String, Object> parameters = new HashMap<String, Object>(); |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
227 parameters.put("ReportTitle", Resources.getMsg( |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
228 context.getMeta(), PDF_TITLE, "Exported Data")); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
229 try { |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
230 JasperPrint print = JasperFillManager.fillReport( |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
231 confPath + jasperFile, |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
232 parameters, |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
233 source); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
234 JasperExportManager.exportReportToPdfStream(print, out); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
235 } |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
236 catch(JRException je) { |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
237 logger.warn("Error generating PDF Report!", je); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
238 } |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
239 } |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
240 } |
6681
e316a9c626e0
Use foreach instead of for-loop.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6667
diff
changeset
|
241 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |