annotate artifacts/src/main/java/org/dive4elements/river/exports/sq/SQRelationExporter.java @ 9312:740d65e4aa14

Q [m³/s] one message
author gernotbelger
date Thu, 26 Jul 2018 15:54:20 +0200
parents 5e38e2924c07
children
rev   line source
8578
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
1 /* Copyright (C) 2011, 2012, 2013, 2015 by Bundesanstalt für Gewässerkunde
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
6 * documentation coming with Dive4Elements River for details.
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3552
diff changeset
9 package org.dive4elements.river.exports.sq;
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
11 import java.io.OutputStream;
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
12 import java.text.DateFormat;
6828
708416bb560c (issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents: 6322
diff changeset
13 import java.text.NumberFormat;
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
14 import java.util.ArrayList;
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
15 import java.util.Date;
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
16 import java.util.HashMap;
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
17 import java.util.List;
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
18 import java.util.Locale;
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
19 import java.util.Map;
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
21 import org.apache.log4j.Logger;
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
22 import org.dive4elements.artifacts.CallMeta;
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
23 import org.dive4elements.artifacts.common.utils.Config;
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
24 import org.dive4elements.river.artifacts.D4EArtifact;
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
25 import org.dive4elements.river.artifacts.access.SQRelationAccess;
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
26 import org.dive4elements.river.artifacts.model.CalculationResult;
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
27 import org.dive4elements.river.artifacts.model.DateRange;
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
28 import org.dive4elements.river.artifacts.model.Parameters;
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
29 import org.dive4elements.river.artifacts.model.sq.SQ;
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
30 import org.dive4elements.river.artifacts.model.sq.SQFractionResult;
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
31 import org.dive4elements.river.artifacts.model.sq.SQMeasurementsJRDataSource;
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
32 import org.dive4elements.river.artifacts.model.sq.SQRelationJRDataSource;
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
33 import org.dive4elements.river.artifacts.model.sq.SQResult;
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
34 import org.dive4elements.river.artifacts.resources.Resources;
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
35 import org.dive4elements.river.exports.AbstractExporter;
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
36 import org.dive4elements.river.utils.Formatter;
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
37 import org.dive4elements.river.utils.RiverUtils;
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
38
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
39 import au.com.bytecode.opencsv.CSVWriter;
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
40 import net.sf.jasperreports.engine.JRException;
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
41 import net.sf.jasperreports.engine.JRPrintPage;
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
42 import net.sf.jasperreports.engine.JasperExportManager;
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
43 import net.sf.jasperreports.engine.JasperFillManager;
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
44 import net.sf.jasperreports.engine.JasperPrint;
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46 /**
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48 */
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
49 public class SQRelationExporter extends AbstractExporter {
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
50
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7965
diff changeset
51 /** Private log. */
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
52 private static final Logger log = Logger.getLogger(SQRelationExporter.class);
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
53
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
54 public static final String INFO_COEFF_A = "export.sqrelation.csv.info.coeff.a";
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
55
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
56 public static final String INFO_COEFF_B = "export.sqrelation.csv.info.coeff.b";
8541
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
57
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
58 public static final String INFO_QMAX = "export.sqrelation.csv.info.qmax";
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
59
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
60 public static final String INFO_STDERR = "export.sqrelation.csv.info.stderr";
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
61
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
62 public static final String INFO_R2 = "export.sqrelation.csv.info.r2";
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
63
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
64 public static final String INFO_NTOT = "export.sqrelation.csv.info.ntot";
8578
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
65
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
66 public static final String INFO_NOUTL = "export.sqrelation.csv.info.noutl";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
67
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
68 public static final String INFO_CFERGUSON = "export.sqrelation.csv.info.cferguson";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
69
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
70 public static final String INFO_CDUAN = "export.sqrelation.csv.info.cduan";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
71
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
72 public static final String INFO_PARAM_A = "export.sqrelation.csv.info.param.a";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
73
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
74 public static final String INFO_PARAM_B = "export.sqrelation.csv.info.param.b";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
75
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
76 public static final String INFO_PARAM_C = "export.sqrelation.csv.info.param.c";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
77
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
78 public static final String INFO_PARAM_D = "export.sqrelation.csv.info.param.d";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
79
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
80 public static final String INFO_PARAM_E = "export.sqrelation.csv.info.param.e";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
81
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
82 public static final String INFO_PARAM_F = "export.sqrelation.csv.info.param.f";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
83
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
84 public static final String INFO_Q = "export.sqrelation.csv.info.q";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
85
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
86 public static final String INFO_S_KG = "export.sqrelation.csv.info.s_kg";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
87
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
88 public static final String INFO_DATE = "export.sqrelation.csv.info.date";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
89
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
90 public static final String CSV_PARAMETER = "export.sqrelation.csv.header.parameter";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
91
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
92 public static final String CSV_STATION = "export.sqrelation.csv.header.station";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
93
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
94 public static final String CSV_KM = "export.sqrelation.csv.header.km";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
95
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
96 public static final String CSV_FUNCTION = "export.sqrelation.csv.header.function";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
97
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
98 public static final String CSV_GAUGE = "export.sqrelation.csv.header.gauge";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
99
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
100 public static final String CSV_COEFF_A = "export.sqrelation.csv.header.coeff.a";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
101
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
102 public static final String CSV_COEFF_B = "export.sqrelation.csv.header.coeff.b";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
103
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
104 public static final String CSV_COEFF_Q = "export.sqrelation.csv.header.coeff.q";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
105
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
106 public static final String CSV_COEFF_R = "export.sqrelation.csv.header.coeff.r";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
107
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
108 public static final String CSV_N_TOTAL = "export.sqrelation.csv.header.n.total";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
109
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
110 public static final String CSV_N_OUTLIERS = "export.sqrelation.csv.header.n.outliers";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
111
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
112 public static final String CSV_C_DUAN = "export.sqrelation.csv.header.c.duan";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
113
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
114 public static final String CSV_C_FERGUSON = "export.sqrelation.csv.header.c.ferguson";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
115
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
116 public static final String CSV_QMAX = "export.sqrelation.csv.header.qmax";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
117
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
118 public static final String CSV_SD = "export.sqrelation.csv.header.sd";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
119
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
120 public static final String CSV_S_KG = "export.sqrelation.csv.header.s_kg";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
121
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
122 public static final String CSV_Q = "common.export.csv.header.q";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
123
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
124 public static final String CSV_DATE = "export.sqrelation.csv.header.date";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
125
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
126 public static final String PDF_TITLE = "export.sqrelation.pdf.title";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
127
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
128 public static final String PDF_HEADER_MODE = "export.sqrelation.pdf.mode";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
129
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
130 public static final String JASPER_FILE = "export.sqrelation.pdf.file";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
131
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
132 public static final String JASPER_MEASUREMENTS_FILE = "export.sqrelation.measurements.pdf.file";
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
133
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
134 protected List<SQResult[]> data;
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
135
7077
0a337f0005c2 Extended init() of OutGenerator to take name of the out to serve.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6859
diff changeset
136 public SQRelationExporter() {
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
137 this.data = new ArrayList<>();
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
138 }
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
139
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
140 @Override
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
141 protected void addData(Object d) {
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
142 if (d instanceof CalculationResult) {
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
143 d = ((CalculationResult) d).getData();
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
144 if (d instanceof SQResult[]) {
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
145 this.data.add((SQResult[]) d);
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
146 }
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
147 }
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
148 }
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
149
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
150 protected void writeCSVHeader(final CSVWriter writer) {
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
151 writer.writeNext(new String[] { msg(CSV_KM), msg(CSV_PARAMETER), msg(CSV_COEFF_A), msg(CSV_COEFF_B), msg(CSV_SD), msg(CSV_QMAX), msg(CSV_COEFF_R),
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
152 msg(CSV_N_TOTAL), msg(CSV_N_OUTLIERS), msg(CSV_C_DUAN), msg(CSV_C_FERGUSON), msg(CSV_S_KG), msg(CSV_Q), msg(CSV_DATE) });
3392
56f62b5209f5 S/Q relation: Write parameters as export result.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3227
diff changeset
153 }
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
154
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
155 @Override
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
156 protected void writeCSVData(final CSVWriter writer) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7965
diff changeset
157 log.debug("writeCSVData");
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
158
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
159 writeCSVInfo(writer,
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
160 new String[] { msg(INFO_PARAM_A), msg(INFO_PARAM_B), msg(INFO_PARAM_C), msg(INFO_PARAM_D), msg(INFO_PARAM_E), msg(INFO_PARAM_F),
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
161 msg(INFO_COEFF_A), msg(INFO_COEFF_B), msg(INFO_QMAX), msg(INFO_STDERR), msg(INFO_R2), msg(INFO_NTOT), msg(INFO_NOUTL),
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
162 msg(INFO_CFERGUSON), msg(INFO_CDUAN), msg(INFO_S_KG), msg(INFO_Q), msg(INFO_DATE) });
7937
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
163
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
164 writeCSVHeader(writer);
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
165
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
166 for (final SQResult[] results : this.data) {
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
167 for (final SQResult result : results) {
8578
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
168 writer.writeAll(data2StringArrays(result, true));
3392
56f62b5209f5 S/Q relation: Write parameters as export result.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3227
diff changeset
169 }
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
170 }
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
171 }
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
172
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
173 protected List<String[]> data2StringArrays(final SQResult result, final boolean includeMeasurements) {
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
174 final String km = Formatter.getSQRelationKM(this.context).format(result.getKm());
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
175 final List<String[]> retval = new ArrayList<>();
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
176
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
177 final NumberFormat sqAFormatter = Formatter.getSQRelationA(this.context);
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
178 final NumberFormat sqBFormatter = Formatter.getSQRelationB(this.context);
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
179 final NumberFormat fThreeFormatter = Formatter.getFormatter(this.context, 3, 3);
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
180 final NumberFormat fTwoFormatter = Formatter.getFormatter(this.context, 2, 2);
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
181 final NumberFormat fZeroFormatter = Formatter.getFormatter(this.context, 0, 0);
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
182 final DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, Resources.getLocale(this.context.getMeta()));
6828
708416bb560c (issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents: 6322
diff changeset
183
3392
56f62b5209f5 S/Q relation: Write parameters as export result.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3227
diff changeset
184 for (int i = 0; i < SQResult.NUMBER_FRACTIONS; ++i) {
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
185 final SQFractionResult fraction = result.getFraction(i);
3552
1df6984628c3 S/Q: Extented the result data model of the S/Q calculation to
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3392
diff changeset
186
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
187 final String name = result.getFractionName(i);
3552
1df6984628c3 S/Q: Extented the result data model of the S/Q calculation to
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3392
diff changeset
188
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
189 final Parameters parameters = fraction.getParameters();
3552
1df6984628c3 S/Q: Extented the result data model of the S/Q calculation to
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3392
diff changeset
190
1df6984628c3 S/Q: Extented the result data model of the S/Q calculation to
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3392
diff changeset
191 if (parameters == null) {
3392
56f62b5209f5 S/Q relation: Write parameters as export result.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3227
diff changeset
192 continue;
56f62b5209f5 S/Q relation: Write parameters as export result.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3227
diff changeset
193 }
3552
1df6984628c3 S/Q: Extented the result data model of the S/Q calculation to
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3392
diff changeset
194
6828
708416bb560c (issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents: 6322
diff changeset
195 String a, b, sd, o, t, max_q, c_ferguson, c_duan, r2;
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
196 a = sqAFormatter.format(parameters.getValue(0, "a"));
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
197 b = sqBFormatter.format(parameters.getValue(0, "b"));
6828
708416bb560c (issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents: 6322
diff changeset
198
708416bb560c (issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents: 6322
diff changeset
199 /* The std_dev parameter contains the standard error actually */
708416bb560c (issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents: 6322
diff changeset
200 sd = fThreeFormatter.format(parameters.getValue(0, "std_dev"));
708416bb560c (issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents: 6322
diff changeset
201 max_q = fZeroFormatter.format(parameters.getValue(0, "max_q"));
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
202 c_ferguson = fTwoFormatter.format(parameters.getValue(0, "c_ferguson"));
6828
708416bb560c (issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents: 6322
diff changeset
203 c_duan = fTwoFormatter.format(parameters.getValue(0, "c_duan"));
708416bb560c (issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents: 6322
diff changeset
204 r2 = fTwoFormatter.format(parameters.getValue(0, "r2"));
708416bb560c (issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents: 6322
diff changeset
205
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
206 o = String.valueOf(fraction.totalNumOutliers());
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
207 t = String.valueOf(fraction.numMeasurements());
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
208
8578
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
209 if (includeMeasurements) {
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
210 for (final SQ sq : fraction.getMeasurements()) {
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
211 retval.add(new String[] { km, name, a, b, sd, // 4
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
212 max_q, // 5
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
213 r2, // 6
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
214 t, // 7
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
215 o, // 8
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
216 c_duan, // 9
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
217 c_ferguson, // 10
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
218 fThreeFormatter.format(sq.getS()), fZeroFormatter.format(sq.getQ()), df.format(sq.getDate()) });
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
219 }
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
220 } else {
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
221 retval.add(new String[] { km, name, a, b, sd, // 4
8578
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
222 max_q, // 5
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
223 r2, // 6
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
224 t, // 7
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
225 o, // 8
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
226 c_duan, // 9
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
227 c_ferguson // 10
8541
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
228 });
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
229 }
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
230
3392
56f62b5209f5 S/Q relation: Write parameters as export result.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3227
diff changeset
231 }
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
232 return retval;
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
233 }
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
234
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
235 protected SQRelationJRDataSource createJRData() {
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
236 final SQRelationJRDataSource source = new SQRelationJRDataSource();
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
237
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
238 addMetaData(source);
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
239 for (final SQResult[] results : this.data) {
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
240 for (final SQResult result : results) {
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
241 for (final String[] res : data2StringArrays(result, false)) {
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
242 source.addData(res);
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
243 }
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
244 }
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
245 }
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
246 return source;
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
247 }
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
248
8578
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
249 protected SQMeasurementsJRDataSource createMeasurementJRData() {
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
250 final SQMeasurementsJRDataSource source = new SQMeasurementsJRDataSource();
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
251 final NumberFormat fZeroFormatter = Formatter.getFormatter(this.context, 0, 0);
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
252 final NumberFormat fThreeFormatter = Formatter.getFormatter(this.context, 3, 3);
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
253 final DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, Resources.getLocale(this.context.getMeta()));
8578
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
254
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
255 for (final SQResult[] results : this.data) {
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
256 for (final SQResult result : results) {
8578
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
257 for (int i = 0; i < SQResult.NUMBER_FRACTIONS; ++i) {
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
258 final String name = result.getFractionName(i);
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
259 final SQFractionResult fraction = result.getFraction(i);
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
260 for (final SQ sq : fraction.getMeasurements()) {
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
261 source.addData(
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
262 new String[] { name, fThreeFormatter.format(sq.getS()), fZeroFormatter.format(sq.getQ()), df.format(sq.getDate()), null });
8578
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
263 }
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
264 for (int j = 0; j < fraction.numIterations(); j++) {
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
265 for (final SQ sq : fraction.getOutliers(j)) {
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
266 source.addData(new String[] { name, fThreeFormatter.format(sq.getS()), fZeroFormatter.format(sq.getQ()), df.format(sq.getDate()),
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
267 Integer.toString(j + 1) });
8578
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
268 }
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
269 }
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
270 }
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
271 }
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
272 }
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
273 return source;
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
274 }
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
275
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
276 protected void addMetaData(final SQRelationJRDataSource source) {
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
277 final CallMeta meta = this.context.getMeta();
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
278
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
279 final D4EArtifact arti = (D4EArtifact) this.master;
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
280
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
281 source.addMetaData("river", RiverUtils.getRivername(arti));
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
282
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
283 final Locale locale = Resources.getLocale(meta);
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
284 final DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale);
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
285
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
286 source.addMetaData("date", df.format(new Date()));
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
287
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
288 final SQRelationAccess access = new SQRelationAccess(arti);
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
289 source.addMetaData("location", "KM " + getKmFormatter().format(access.getLocation()));
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
290
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
291 final DateRange period = access.getPeriod();
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
292 source.addMetaData("periods", df.format(period.getFrom()) + " - " + df.format(period.getTo()));
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
293
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
294 source.addMetaData("outliertest", Resources.getMsg(meta, access.getOutlierMethod(), access.getOutlierMethod()));
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
295 source.addMetaData("outliers", Formatter.getRawFormatter(this.context).format(access.getOutliers()));
6859
3ccbc278f2e6 (issue1347) Add SQ Relation fields for measurement station information
Andre Heinecke <aheinecke@intevation.de>
parents: 6830
diff changeset
296
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
297 source.addMetaData("calculation", Resources.getMsg(locale, PDF_HEADER_MODE, "SQRelation"));
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
298
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
299 final String measurementStationName = access.getMeasurementStationName();
6859
3ccbc278f2e6 (issue1347) Add SQ Relation fields for measurement station information
Andre Heinecke <aheinecke@intevation.de>
parents: 6830
diff changeset
300
3ccbc278f2e6 (issue1347) Add SQ Relation fields for measurement station information
Andre Heinecke <aheinecke@intevation.de>
parents: 6830
diff changeset
301 if (measurementStationName != null) {
3ccbc278f2e6 (issue1347) Add SQ Relation fields for measurement station information
Andre Heinecke <aheinecke@intevation.de>
parents: 6830
diff changeset
302 source.addMetaData("msName", measurementStationName);
7380
d8d0caaf60a2 (issue1071) Handle the case where no MeasurementStation exists
Andre Heinecke <aheinecke@intevation.de>
parents: 7088
diff changeset
303 } else {
d8d0caaf60a2 (issue1071) Handle the case where no MeasurementStation exists
Andre Heinecke <aheinecke@intevation.de>
parents: 7088
diff changeset
304 source.addMetaData("msName", "");
6859
3ccbc278f2e6 (issue1347) Add SQ Relation fields for measurement station information
Andre Heinecke <aheinecke@intevation.de>
parents: 6830
diff changeset
305 }
3ccbc278f2e6 (issue1347) Add SQ Relation fields for measurement station information
Andre Heinecke <aheinecke@intevation.de>
parents: 6830
diff changeset
306
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
307 final String measurementStationGaugeName = access.getMeasurementStationGaugeName();
6859
3ccbc278f2e6 (issue1347) Add SQ Relation fields for measurement station information
Andre Heinecke <aheinecke@intevation.de>
parents: 6830
diff changeset
308
3ccbc278f2e6 (issue1347) Add SQ Relation fields for measurement station information
Andre Heinecke <aheinecke@intevation.de>
parents: 6830
diff changeset
309 if (measurementStationGaugeName != null) {
3ccbc278f2e6 (issue1347) Add SQ Relation fields for measurement station information
Andre Heinecke <aheinecke@intevation.de>
parents: 6830
diff changeset
310 source.addMetaData("msGauge", measurementStationGaugeName);
7380
d8d0caaf60a2 (issue1071) Handle the case where no MeasurementStation exists
Andre Heinecke <aheinecke@intevation.de>
parents: 7088
diff changeset
311 } else {
d8d0caaf60a2 (issue1071) Handle the case where no MeasurementStation exists
Andre Heinecke <aheinecke@intevation.de>
parents: 7088
diff changeset
312 source.addMetaData("msGauge", "");
6859
3ccbc278f2e6 (issue1347) Add SQ Relation fields for measurement station information
Andre Heinecke <aheinecke@intevation.de>
parents: 6830
diff changeset
313 }
3ccbc278f2e6 (issue1347) Add SQ Relation fields for measurement station information
Andre Heinecke <aheinecke@intevation.de>
parents: 6830
diff changeset
314
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
315 }
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
316
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
317 @Override
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
318 protected void writePDF(final OutputStream out) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7965
diff changeset
319 log.debug("write PDF");
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
320 final SQRelationJRDataSource source = createJRData();
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
321 final SQMeasurementsJRDataSource measureSource = createMeasurementJRData();
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
322
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
323 final String jasperFile = Resources.getMsg(this.context.getMeta(), JASPER_FILE, "/jasper/sqrelation_en.jasper");
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
324 final String jasperMeasurementsFile = Resources.getMsg(this.context.getMeta(), JASPER_MEASUREMENTS_FILE, "/jasper/sqmeasurements_en.jasper");
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
325 final String confPath = Config.getConfigDirectory().toString();
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
326
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
327 final Map parameters = new HashMap();
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
328 parameters.put("ReportTitle", Resources.getMsg(this.context.getMeta(), PDF_TITLE, "Exported Data"));
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
329 try {
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
330 /*
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
331 * Page numbers start have a built in offset of 1 so this
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
332 * is fine.
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
333 */
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
334 final JasperPrint p2 = JasperFillManager.fillReport(confPath + jasperMeasurementsFile, parameters, measureSource);
8578
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
335 parameters.put("MEASUREMENT_PAGE_NUM", p2.getPages().size());
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
336 final JasperPrint p1 = JasperFillManager.fillReport(confPath + jasperFile, parameters, source);
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
337 for (final Object page : p2.getPages()) {
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
338 final JRPrintPage object = (JRPrintPage) page;
8578
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
339 p1.addPage(object);
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
340 }
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
341 JasperExportManager.exportReportToPdfStream(p1, out);
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
342 }
9312
740d65e4aa14 Q [m³/s] one message
gernotbelger
parents: 8856
diff changeset
343 catch (final JRException je) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7965
diff changeset
344 log.warn("Error generating PDF Report!", je);
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
345 }
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
346 }
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
347 }
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
348 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org