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