Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedDifferenceExporter.java @ 6955:94cb1845c667
(issue1452) Coalesce to zero to avoid NaN arithmetic.
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Fri, 30 Aug 2013 15:45:14 +0200 |
parents | e316a9c626e0 |
children | 0a337f0005c2 |
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; |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
14 import java.util.LinkedList; |
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 |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
30 import org.dive4elements.artifacts.CallContext; |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
31 import org.dive4elements.artifacts.CallMeta; |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
32 import org.dive4elements.river.artifacts.D4EArtifact; |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
33 import org.dive4elements.river.artifacts.access.BedDifferencesAccess; |
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; |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
37 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
|
38 import org.dive4elements.river.artifacts.model.minfo.BedDifferenceJRDataSource; |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
39 import org.dive4elements.river.exports.AbstractExporter; |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
40 import org.dive4elements.river.utils.Formatter; |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
41 import org.dive4elements.river.utils.RiverUtils; |
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 org.w3c.dom.Document; |
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 import au.com.bytecode.opencsv.CSVWriter; |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
46 |
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 public class BedDifferenceExporter |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
49 extends AbstractExporter |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
50 { |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
51 |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
52 /** Private logger. */ |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
53 private static Logger logger = |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
54 Logger.getLogger(BedDifferenceExporter.class); |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
55 |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
56 private static final String CSV_HEADER_KM = |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
57 "export.minfo.beddifference.km"; |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
58 |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
59 private static final String CSV_HEADER_DIFF = |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
60 "export.minfo.beddifference.diff"; |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
61 |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
62 public static final String JASPER_FILE = |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
63 "export.minfo.beddifference.pdf.file"; |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
64 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
65 public static final String PDF_TITLE= |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
66 "export.minfo.beddifference.pdf.title"; |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
67 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
68 public static final String PDF_HEADER_MODE= |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
69 "export.minfo.beddifference.pdf.mode"; |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
70 |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
71 private BedDifferencesResult[] results; |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
72 |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
73 @Override |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
74 public void init(Document request, OutputStream out, CallContext context) { |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
75 logger.debug("init"); |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
76 super.init(request, out, context); |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
77 results = new BedDifferencesResult[0]; |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
78 } |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
79 |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
80 @Override |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
81 protected void writeCSVData(CSVWriter writer) throws IOException { |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
82 writeCSVHeader(writer); |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
83 |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
84 NumberFormat kmf = Formatter.getCalculationKm(context.getMeta()); |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
85 NumberFormat mf = Formatter.getMeterFormat(context); |
6681
e316a9c626e0
Use foreach instead of for-loop.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6667
diff
changeset
|
86 for (BedDifferencesResult result : results) { |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
87 double[][] kms = result.getDifferencesData(); |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
88 for (int j = 0; j < kms[0].length; j++) { |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
89 writer.writeNext(new String[] { |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
90 kmf.format(kms[0][j]), mf.format(kms[1][j])}); |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
91 } |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
92 } |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
93 } |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
94 |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
95 @Override |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
96 protected void addData(Object data) { |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
97 if (!(data instanceof CalculationResult)) { |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
98 logger.warn("Invalid data type."); |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
99 return; |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
100 } |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
101 Object[] d = (Object[])((CalculationResult)data).getData(); |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
102 |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
103 if (!(d instanceof BedDifferencesResult[])) { |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
104 logger.warn("Invalid result object."); |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
105 return; |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
106 } |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
107 results = (BedDifferencesResult[])d; |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
108 } |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
109 |
6242
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
110 protected void addMetaData(BedDifferenceJRDataSource source) { |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
111 CallMeta meta = context.getMeta(); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
112 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
113 D4EArtifact arti = (D4EArtifact) master; |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
114 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
115 source.addMetaData ("river", RiverUtils.getRivername(arti)); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
116 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
117 Locale locale = Resources.getLocale(meta); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
118 DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
119 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
120 source.addMetaData("date", df.format(new Date())); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
121 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
122 source.addMetaData("calculation", Resources.getMsg( |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
123 locale, |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
124 PDF_HEADER_MODE, |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
125 "Bedheight difference")); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
126 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
127 // Now the dynamic parts |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
128 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
129 BedDifferencesAccess access = new BedDifferencesAccess(arti); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
130 source.addMetaData("ye_mode", Resources.getMsg(locale, |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
131 "state.minfo." + access.getYearEpoch(), |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
132 access.getYearEpoch())); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
133 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
134 source.addMetaData("differences", StringUtils.join( |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
135 access.getDifferenceArtifactNamePairs(), "\n")); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
136 } |
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 |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
139 protected void writeCSVHeader(CSVWriter writer) { |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
140 logger.debug("writeCSVHeader()"); |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
141 |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
142 List<String> header = new LinkedList<String>(); |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
143 if (results != null) { |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
144 header.add(msg(CSV_HEADER_KM, "km")); |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
145 header.add(msg(CSV_HEADER_DIFF, "m")); |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
146 } |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
147 writer.writeNext(header.toArray(new String[header.size()])); |
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
148 } |
6242
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 protected BedDifferenceJRDataSource createJRData() { |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
151 BedDifferenceJRDataSource source = new BedDifferenceJRDataSource(); |
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 addMetaData(source); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
154 NumberFormat kmf = Formatter.getCalculationKm(context.getMeta()); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
155 NumberFormat mf = Formatter.getMeterFormat(context); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
156 for (BedDifferencesResult result: results) { |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
157 double[][] kms = result.getDifferencesData(); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
158 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
|
159 source.addData(new String[] { |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
160 kmf.format(kms[0][j]), mf.format(kms[1][j])}); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
161 } |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
162 } |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
163 return source; |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
164 } |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
165 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
166 @Override |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
167 protected void writePDF(OutputStream out) { |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
168 logger.debug("write PDF"); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
169 BedDifferenceJRDataSource source = createJRData(); |
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 String jasperFile = Resources.getMsg( |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
172 context.getMeta(), |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
173 JASPER_FILE, |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
174 "/jasper/beddifference_en.jasper"); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
175 String confPath = Config.getConfigDirectory().toString(); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
176 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
177 |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
178 Map parameters = new HashMap(); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
179 parameters.put("ReportTitle", Resources.getMsg( |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
180 context.getMeta(), PDF_TITLE, "Exported Data")); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
181 try { |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
182 JasperPrint print = JasperFillManager.fillReport( |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
183 confPath + jasperFile, |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
184 parameters, |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
185 source); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
186 JasperExportManager.exportReportToPdfStream(print, out); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
187 } |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
188 catch(JRException je) { |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
189 logger.warn("Error generating PDF Report!", je); |
34f393434913
Implement pdf export for bedheight differences
Andre Heinecke <aheinecke@intevation.de>
parents:
6217
diff
changeset
|
190 } |
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 |
6217
e213b538f78c
Added exporter for bed height differences.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
193 } |
6681
e316a9c626e0
Use foreach instead of for-loop.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6667
diff
changeset
|
194 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |