Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedDifferenceExporter.java @ 8420:8a14605fb64a
Removed morpho width from bed height diffs.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Fri, 17 Oct 2014 12:50:35 +0200 |
parents | e4606eae8ea5 |
children | 96bf5135cd0e |
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 |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7979
diff
changeset
|
49 /** Private log. */ |
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7979
diff
changeset
|
50 private static Logger log = |
6217
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 |
8420
8a14605fb64a
Removed morpho width from bed height diffs.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8202
diff
changeset
|
62 /* |
7831
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
63 private static final String CSV_HEADER_MORPH1 = |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
64 "export.minfo.beddifference.morph1"; |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
65 |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
66 private static final String CSV_HEADER_MORPH2 = |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
67 "export.minfo.beddifference.morph2"; |
8420
8a14605fb64a
Removed morpho width from bed height diffs.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8202
diff
changeset
|
68 */ |
7831
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
69 |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
70 public static final String JASPER_FILE = |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
71 "export.minfo.beddifference.pdf.file"; |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
72 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
73 public static final String PDF_TITLE= |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
74 "export.minfo.beddifference.pdf.title"; |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
75 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
76 public static final String PDF_HEADER_MODE= |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
77 "export.minfo.beddifference.pdf.mode"; |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
78 |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
79 private BedDifferencesResult[] results; |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
80 |
7077
0a337f0005c2
Extended init() of OutGenerator to take name of the out to serve.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6681
diff
changeset
|
81 public BedDifferenceExporter() { |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
82 results = new BedDifferencesResult[0]; |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
83 } |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
84 |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
85 @Override |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
86 protected void writeCSVData(CSVWriter writer) throws IOException { |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
87 writeCSVHeader(writer); |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
88 |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
89 NumberFormat kmf = Formatter.getCalculationKm(context.getMeta()); |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
90 NumberFormat mf = Formatter.getMeterFormat(context); |
6681
e316a9c626e0
Use foreach instead of for-loop.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6667
diff
changeset
|
91 for (BedDifferencesResult result : results) { |
7831
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
92 if (result instanceof BedDiffYearResult) { |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
93 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
|
94 String desc = result.getDiffDescription(); |
7831
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
95 double[][] kms = yResult.getDifferencesData(); |
8420
8a14605fb64a
Removed morpho width from bed height diffs.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8202
diff
changeset
|
96 //double[][] morph1 = yResult.getMorphWidth1Data(); |
8a14605fb64a
Removed morpho width from bed height diffs.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8202
diff
changeset
|
97 //double[][] morph2 = yResult.getMorphWidth2Data(); |
7831
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
98 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
|
99 writer.writeNext(new String[] { |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
100 kmf.format(kms[0][j]), |
7914
db1a2b14c32d
Change column order in bed differences export.
Tom Gottfried <tom@intevation.de>
parents:
7913
diff
changeset
|
101 desc, |
7831
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
102 mf.format(kms[1][j]), |
8420
8a14605fb64a
Removed morpho width from bed height diffs.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8202
diff
changeset
|
103 //mf.format(morph1[1][j]), |
8a14605fb64a
Removed morpho width from bed height diffs.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8202
diff
changeset
|
104 //mf.format(morph2[1][j]), |
7914
db1a2b14c32d
Change column order in bed differences export.
Tom Gottfried <tom@intevation.de>
parents:
7913
diff
changeset
|
105 }); |
7831
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
106 } |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
107 } |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
108 else { |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
109 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
|
110 String desc = result.getDiffDescription(); |
7831
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
111 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
|
112 writer.writeNext(new String[] { |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
113 kmf.format(kms[0][j]), |
7914
db1a2b14c32d
Change column order in bed differences export.
Tom Gottfried <tom@intevation.de>
parents:
7913
diff
changeset
|
114 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
|
115 mf.format(kms[1][j]), |
7914
db1a2b14c32d
Change column order in bed differences export.
Tom Gottfried <tom@intevation.de>
parents:
7913
diff
changeset
|
116 }); |
7831
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
117 } |
6217
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 } |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
121 |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
122 @Override |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
123 protected void addData(Object data) { |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
124 if (!(data instanceof CalculationResult)) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7979
diff
changeset
|
125 log.warn("Invalid data type."); |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
126 return; |
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 Object[] d = (Object[])((CalculationResult)data).getData(); |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
129 |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
130 if (!(d instanceof BedDifferencesResult[])) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7979
diff
changeset
|
131 log.warn("Invalid result object."); |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
132 return; |
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 results = (BedDifferencesResult[])d; |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
135 } |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
136 |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
137 protected void addMetaData(BedDifferenceJRDataSource source) { |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
138 CallMeta meta = context.getMeta(); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
139 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
140 D4EArtifact arti = (D4EArtifact) master; |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
141 |
7915
931dffefc3dd
flys/issue1628: Adjusted the PDF export.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7914
diff
changeset
|
142 //source.addMetaData ("river", RiverUtils.getRivername(arti)); |
931dffefc3dd
flys/issue1628: Adjusted the PDF export.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7914
diff
changeset
|
143 source.addMetaData ("river", new RiverAccess(arti).getRiverName()); |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
144 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
145 Locale locale = Resources.getLocale(meta); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
146 DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale); |
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("date", df.format(new Date())); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
149 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
150 source.addMetaData("calculation", Resources.getMsg( |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
151 locale, |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
152 PDF_HEADER_MODE, |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
153 "Bedheight difference")); |
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 // Now the dynamic parts |
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 BedDifferencesAccess access = new BedDifferencesAccess(arti); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
158 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
159 source.addMetaData("differences", StringUtils.join( |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
160 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
|
161 |
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
|
162 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
|
163 msg(CSV_HEADER_KM, "km")); |
7915
931dffefc3dd
flys/issue1628: Adjusted the PDF export.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7914
diff
changeset
|
164 source.addMetaData("diffpairheader", |
931dffefc3dd
flys/issue1628: Adjusted the PDF export.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7914
diff
changeset
|
165 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
|
166 source.addMetaData("diffheader", msg(CSV_HEADER_DIFF, "cm")); |
8420
8a14605fb64a
Removed morpho width from bed height diffs.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8202
diff
changeset
|
167 /* |
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
|
168 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
|
169 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
|
170 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
|
171 msg(CSV_HEADER_MORPH2, "Morph. active width subtrahend")); |
8420
8a14605fb64a
Removed morpho width from bed height diffs.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8202
diff
changeset
|
172 */ |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
173 } |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
174 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
175 |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
176 protected void writeCSVHeader(CSVWriter writer) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7979
diff
changeset
|
177 log.debug("writeCSVHeader()"); |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
178 |
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
|
179 List<String> header = new ArrayList<String>(); |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
180 if (results != null) { |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
181 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
|
182 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
|
183 header.add(msg(CSV_HEADER_DIFF, "cm")); |
8420
8a14605fb64a
Removed morpho width from bed height diffs.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8202
diff
changeset
|
184 /* |
7831
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
185 if (results.length > 0 && |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
186 results[0] instanceof BedDiffYearResult) { |
b4f806999173
Added new columns for morph active width.
Raimund Renkert <rrenkert@intevation.de>
parents:
7506
diff
changeset
|
187 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
|
188 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
|
189 } |
8420
8a14605fb64a
Removed morpho width from bed height diffs.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8202
diff
changeset
|
190 */ |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
191 } |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
192 writer.writeNext(header.toArray(new String[header.size()])); |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
193 } |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
194 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
195 protected BedDifferenceJRDataSource createJRData() { |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
196 BedDifferenceJRDataSource source = new BedDifferenceJRDataSource(); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
197 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
198 addMetaData(source); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
199 NumberFormat kmf = Formatter.getCalculationKm(context.getMeta()); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
200 NumberFormat mf = Formatter.getMeterFormat(context); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
201 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
|
202 BedDiffYearResult yResult = (BedDiffYearResult) result; |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
203 double[][] kms = result.getDifferencesData(); |
7915
931dffefc3dd
flys/issue1628: Adjusted the PDF export.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7914
diff
changeset
|
204 String desc = result.getDiffDescription(); |
8420
8a14605fb64a
Removed morpho width from bed height diffs.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8202
diff
changeset
|
205 //double[][] morph1 = yResult.getMorphWidth1Data(); |
8a14605fb64a
Removed morpho width from bed height diffs.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8202
diff
changeset
|
206 //double[][] morph2 = yResult.getMorphWidth2Data(); |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
207 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
|
208 source.addData(new String[] { |
7915
931dffefc3dd
flys/issue1628: Adjusted the PDF export.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7914
diff
changeset
|
209 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
|
210 desc, |
7915
931dffefc3dd
flys/issue1628: Adjusted the PDF export.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7914
diff
changeset
|
211 mf.format(kms[1][j]), |
8420
8a14605fb64a
Removed morpho width from bed height diffs.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8202
diff
changeset
|
212 //mf.format(morph1[1][j]), |
8a14605fb64a
Removed morpho width from bed height diffs.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8202
diff
changeset
|
213 //mf.format(morph2[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
|
214 }); |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
215 } |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
216 } |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
217 return source; |
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 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
220 @Override |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
221 protected void writePDF(OutputStream out) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7979
diff
changeset
|
222 log.debug("write PDF"); |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
223 BedDifferenceJRDataSource source = createJRData(); |
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 String jasperFile = Resources.getMsg( |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
226 context.getMeta(), |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
227 JASPER_FILE, |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
228 "/jasper/beddifference_en.jasper"); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
229 String confPath = Config.getConfigDirectory().toString(); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
230 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
231 |
7915
931dffefc3dd
flys/issue1628: Adjusted the PDF export.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7914
diff
changeset
|
232 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
|
233 parameters.put("ReportTitle", Resources.getMsg( |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
234 context.getMeta(), PDF_TITLE, "Exported Data")); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
235 try { |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
236 JasperPrint print = JasperFillManager.fillReport( |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
237 confPath + jasperFile, |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
238 parameters, |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
239 source); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
240 JasperExportManager.exportReportToPdfStream(print, out); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
241 } |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
242 catch(JRException je) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7979
diff
changeset
|
243 log.warn("Error generating PDF Report!", je); |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
244 } |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
245 } |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
246 } |
6681
e316a9c626e0
Use foreach instead of for-loop.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6667
diff
changeset
|
247 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |