annotate artifacts/src/main/java/org/dive4elements/river/exports/sq/SQRelationExporter.java @ 8578:4eb1a3c71579

(issue1753) Implement PDF export of SQ Measurement data. The SQRelationExporter now consists of two reports (to avoid subreport woes). The old SQReleation PDF only takes the Page count of the Measurement attachment as argument to correctly print the page numbers. Otherwise it is unchanged. The new SQMeasurements report lists the measured data points on which the calculation was based.
author Andre Heinecke <andre.heinecke@intevation.de>
date Mon, 16 Mar 2015 11:35:19 +0100
parents c0334399625b
children d9f038b8e2ce
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;
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12 import java.util.ArrayList;
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13 import java.util.List;
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
14 import java.util.Map;
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
15 import java.util.HashMap;
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
16 import java.util.Date;
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
17 import java.util.Locale;
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
18 import java.text.DateFormat;
6828
708416bb560c (issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents: 6322
diff changeset
19 import java.text.NumberFormat;
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
21 import net.sf.jasperreports.engine.JasperExportManager;
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
22 import net.sf.jasperreports.engine.JasperFillManager;
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
23 import net.sf.jasperreports.engine.JasperPrint;
8578
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
24 import net.sf.jasperreports.engine.JRPrintPage;
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
25 import net.sf.jasperreports.engine.JRException;
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
26
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27 import au.com.bytecode.opencsv.CSVWriter;
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
29 import org.dive4elements.artifacts.CallMeta;
3392
56f62b5209f5 S/Q relation: Write parameters as export result.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3227
diff changeset
30
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3552
diff changeset
31 import org.dive4elements.river.artifacts.model.CalculationResult;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3552
diff changeset
32 import org.dive4elements.river.artifacts.model.sq.SQFractionResult;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3552
diff changeset
33 import org.dive4elements.river.artifacts.model.sq.SQResult;
8541
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
34 import org.dive4elements.river.artifacts.model.sq.SQ;
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
35 import org.dive4elements.river.artifacts.model.sq.SQRelationJRDataSource;
8578
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
36 import org.dive4elements.river.artifacts.model.sq.SQMeasurementsJRDataSource;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3552
diff changeset
37 import org.dive4elements.river.artifacts.model.Parameters;
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
38 import org.dive4elements.river.artifacts.model.DateRange;
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
39 import org.dive4elements.river.artifacts.access.SQRelationAccess;
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
40
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
41 import org.dive4elements.river.artifacts.resources.Resources;
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
42
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
43 import org.dive4elements.river.artifacts.D4EArtifact;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3552
diff changeset
44
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3552
diff changeset
45 import org.dive4elements.river.exports.AbstractExporter;
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
47 import org.dive4elements.river.utils.RiverUtils;
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
48 import org.dive4elements.river.utils.Formatter;
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
49
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
50 import org.dive4elements.artifacts.common.utils.Config;
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
51
3392
56f62b5209f5 S/Q relation: Write parameters as export result.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3227
diff changeset
52 import org.apache.log4j.Logger;
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
53
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
54 /**
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
55 * @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
56 */
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
57 public class SQRelationExporter extends AbstractExporter {
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
58
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7965
diff changeset
59 /** Private log. */
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7965
diff changeset
60 private static final Logger log =
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
61 Logger.getLogger(SQRelationExporter.class);
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
62
7937
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
63 public static final String INFO_COEFF_A =
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
64 "export.sqrelation.csv.info.coeff.a";
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
65
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
66 public static final String INFO_COEFF_B =
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
67 "export.sqrelation.csv.info.coeff.b";
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
68
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
69 public static final String INFO_QMAX =
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
70 "export.sqrelation.csv.info.qmax";
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
71
7965
c9b6fe05334a issue1633: Add missing info line.
Tom Gottfried <tom@intevation.de>
parents: 7937
diff changeset
72 public static final String INFO_STDERR =
c9b6fe05334a issue1633: Add missing info line.
Tom Gottfried <tom@intevation.de>
parents: 7937
diff changeset
73 "export.sqrelation.csv.info.stderr";
c9b6fe05334a issue1633: Add missing info line.
Tom Gottfried <tom@intevation.de>
parents: 7937
diff changeset
74
7937
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
75 public static final String INFO_R2 =
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
76 "export.sqrelation.csv.info.r2";
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
77
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
78 public static final String INFO_NTOT =
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
79 "export.sqrelation.csv.info.ntot";
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
80
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
81 public static final String INFO_NOUTL =
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
82 "export.sqrelation.csv.info.noutl";
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
83
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
84 public static final String INFO_CFERGUSON =
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
85 "export.sqrelation.csv.info.cferguson";
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
86
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
87 public static final String INFO_CDUAN =
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
88 "export.sqrelation.csv.info.cduan";
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
89
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
90 public static final String INFO_PARAM_A =
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
91 "export.sqrelation.csv.info.param.a";
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
92
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
93 public static final String INFO_PARAM_B =
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
94 "export.sqrelation.csv.info.param.b";
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
95
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
96 public static final String INFO_PARAM_C =
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
97 "export.sqrelation.csv.info.param.c";
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
98
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
99 public static final String INFO_PARAM_D =
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
100 "export.sqrelation.csv.info.param.d";
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
101
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
102 public static final String INFO_PARAM_E =
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
103 "export.sqrelation.csv.info.param.e";
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
104
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
105 public static final String INFO_PARAM_F =
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
106 "export.sqrelation.csv.info.param.f";
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
107
8541
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
108 public static final String INFO_Q =
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
109 "export.sqrelation.csv.info.q";
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
110
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
111 public static final String INFO_S_KG =
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
112 "export.sqrelation.csv.info.s_kg";
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
113
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
114 public static final String INFO_DATE =
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
115 "export.sqrelation.csv.info.date";
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
116
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
117 public static final String CSV_PARAMETER =
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
118 "export.sqrelation.csv.header.parameter";
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
119
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
120 public static final String CSV_STATION =
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
121 "export.sqrelation.csv.header.station";
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
122
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
123 public static final String CSV_KM =
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
124 "export.sqrelation.csv.header.km";
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
125
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
126 public static final String CSV_FUNCTION =
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
127 "export.sqrelation.csv.header.function";
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
128
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
129 public static final String CSV_GAUGE =
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
130 "export.sqrelation.csv.header.gauge";
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
131
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
132 public static final String CSV_COEFF_A =
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
133 "export.sqrelation.csv.header.coeff.a";
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
134
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
135 public static final String CSV_COEFF_B =
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
136 "export.sqrelation.csv.header.coeff.b";
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
137
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
138 public static final String CSV_COEFF_Q =
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
139 "export.sqrelation.csv.header.coeff.q";
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
140
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
141 public static final String CSV_COEFF_R =
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
142 "export.sqrelation.csv.header.coeff.r";
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
143
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
144 public static final String CSV_N_TOTAL =
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
145 "export.sqrelation.csv.header.n.total";
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 public static final String CSV_N_OUTLIERS =
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
148 "export.sqrelation.csv.header.n.outliers";
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
149
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
150 public static final String CSV_C_DUAN =
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
151 "export.sqrelation.csv.header.c.duan";
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
152
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
153 public static final String CSV_C_FERGUSON =
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
154 "export.sqrelation.csv.header.c.ferguson";
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
155
6828
708416bb560c (issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents: 6322
diff changeset
156 public static final String CSV_QMAX =
708416bb560c (issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents: 6322
diff changeset
157 "export.sqrelation.csv.header.qmax";
708416bb560c (issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents: 6322
diff changeset
158
708416bb560c (issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents: 6322
diff changeset
159 public static final String CSV_SD =
708416bb560c (issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents: 6322
diff changeset
160 "export.sqrelation.csv.header.sd";
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
161
8541
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
162 public static final String CSV_S_KG =
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
163 "export.sqrelation.csv.header.s_kg";
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
164
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
165 public static final String CSV_Q =
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
166 "export.sqrelation.csv.header.q";
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
167
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
168 public static final String CSV_DATE =
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
169 "export.sqrelation.csv.header.date";
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
170
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
171 public static final String PDF_TITLE=
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
172 "export.sqrelation.pdf.title";
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
173
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
174 public static final String PDF_HEADER_MODE =
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
175 "export.sqrelation.pdf.mode";
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
176
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
177 public static final String JASPER_FILE =
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
178 "export.sqrelation.pdf.file";
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
179
8578
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
180 public static final String JASPER_MEASUREMENTS_FILE =
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
181 "export.sqrelation.measurements.pdf.file";
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
182
3392
56f62b5209f5 S/Q relation: Write parameters as export result.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3227
diff changeset
183 protected List<SQResult []> data;
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
184
7077
0a337f0005c2 Extended init() of OutGenerator to take name of the out to serve.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6859
diff changeset
185 public SQRelationExporter() {
3392
56f62b5209f5 S/Q relation: Write parameters as export result.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3227
diff changeset
186 data = new ArrayList<SQResult []>();
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
187 }
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
188
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
189 @Override
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
190 protected void addData(Object d) {
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
191 if (d instanceof CalculationResult) {
3392
56f62b5209f5 S/Q relation: Write parameters as export result.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3227
diff changeset
192 d = ((CalculationResult)d).getData();
56f62b5209f5 S/Q relation: Write parameters as export result.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3227
diff changeset
193 if (d instanceof SQResult []) {
56f62b5209f5 S/Q relation: Write parameters as export result.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3227
diff changeset
194 data.add((SQResult [])d);
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
195 }
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
196 }
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
197 }
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
198
3392
56f62b5209f5 S/Q relation: Write parameters as export result.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3227
diff changeset
199 protected void writeCSVHeader(CSVWriter writer) {
56f62b5209f5 S/Q relation: Write parameters as export result.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3227
diff changeset
200 writer.writeNext(new String[] {
7936
5ef60ed15c25 So you do not need to type every string twice.
Tom Gottfried <tom@intevation.de>
parents: 7640
diff changeset
201 msg(CSV_KM),
5ef60ed15c25 So you do not need to type every string twice.
Tom Gottfried <tom@intevation.de>
parents: 7640
diff changeset
202 msg(CSV_PARAMETER),
5ef60ed15c25 So you do not need to type every string twice.
Tom Gottfried <tom@intevation.de>
parents: 7640
diff changeset
203 msg(CSV_COEFF_A),
5ef60ed15c25 So you do not need to type every string twice.
Tom Gottfried <tom@intevation.de>
parents: 7640
diff changeset
204 msg(CSV_COEFF_B),
5ef60ed15c25 So you do not need to type every string twice.
Tom Gottfried <tom@intevation.de>
parents: 7640
diff changeset
205 msg(CSV_SD),
5ef60ed15c25 So you do not need to type every string twice.
Tom Gottfried <tom@intevation.de>
parents: 7640
diff changeset
206 msg(CSV_QMAX),
5ef60ed15c25 So you do not need to type every string twice.
Tom Gottfried <tom@intevation.de>
parents: 7640
diff changeset
207 msg(CSV_COEFF_R),
5ef60ed15c25 So you do not need to type every string twice.
Tom Gottfried <tom@intevation.de>
parents: 7640
diff changeset
208 msg(CSV_N_TOTAL),
5ef60ed15c25 So you do not need to type every string twice.
Tom Gottfried <tom@intevation.de>
parents: 7640
diff changeset
209 msg(CSV_N_OUTLIERS),
5ef60ed15c25 So you do not need to type every string twice.
Tom Gottfried <tom@intevation.de>
parents: 7640
diff changeset
210 msg(CSV_C_DUAN),
8541
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
211 msg(CSV_C_FERGUSON),
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
212 msg(CSV_S_KG),
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
213 msg(CSV_Q),
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
214 msg(CSV_DATE)
3392
56f62b5209f5 S/Q relation: Write parameters as export result.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3227
diff changeset
215 });
56f62b5209f5 S/Q relation: Write parameters as export result.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3227
diff changeset
216 }
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
217
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
218 @Override
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
219 protected void writeCSVData(CSVWriter writer) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7965
diff changeset
220 log.debug("writeCSVData");
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
221
7937
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
222 writeCSVInfo(writer, new String[] {
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
223 msg(INFO_COEFF_A),
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
224 msg(INFO_COEFF_B),
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
225 msg(INFO_QMAX),
7965
c9b6fe05334a issue1633: Add missing info line.
Tom Gottfried <tom@intevation.de>
parents: 7937
diff changeset
226 msg(INFO_STDERR),
7937
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
227 msg(INFO_R2),
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
228 msg(INFO_NTOT),
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
229 msg(INFO_NOUTL),
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
230 msg(INFO_CFERGUSON),
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
231 msg(INFO_CDUAN),
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
232 msg(INFO_PARAM_A),
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
233 msg(INFO_PARAM_B),
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
234 msg(INFO_PARAM_C),
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
235 msg(INFO_PARAM_D),
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
236 msg(INFO_PARAM_E),
8541
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
237 msg(INFO_PARAM_F),
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
238 msg(INFO_S_KG),
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
239 msg(INFO_Q),
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
240 msg(INFO_DATE)
7937
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
241 });
a310b1f85ce0 issue1633: Add info lines in SQ-relation CSV export.
Tom Gottfried <tom@intevation.de>
parents: 7936
diff changeset
242
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
243 writeCSVHeader(writer);
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
244
3392
56f62b5209f5 S/Q relation: Write parameters as export result.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3227
diff changeset
245 for (SQResult [] results: data) {
56f62b5209f5 S/Q relation: Write parameters as export result.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3227
diff changeset
246 for (SQResult result: results) {
8578
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
247 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
248 }
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
249 }
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
250 }
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
251
8578
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
252 protected List<String[]> data2StringArrays(SQResult result, boolean includeMeasurements) {
6322
8c976bb0362f Add SQ Relation KM formatter and use it fopr issue 1071
Andre Heinecke <aheinecke@intevation.de>
parents: 6207
diff changeset
253 String km = Formatter.getSQRelationKM(context
8c976bb0362f Add SQ Relation KM formatter and use it fopr issue 1071
Andre Heinecke <aheinecke@intevation.de>
parents: 6207
diff changeset
254 ).format(result.getKm());
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
255 List<String[]> retval = new ArrayList<String[]>();
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
256
6828
708416bb560c (issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents: 6322
diff changeset
257 NumberFormat sqAFormatter = Formatter.getSQRelationA(context);
708416bb560c (issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents: 6322
diff changeset
258 NumberFormat sqBFormatter = Formatter.getSQRelationB(context);
708416bb560c (issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents: 6322
diff changeset
259 NumberFormat fThreeFormatter = Formatter.getFormatter(context, 3, 3);
708416bb560c (issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents: 6322
diff changeset
260 NumberFormat fTwoFormatter = Formatter.getFormatter(context, 2, 2);
708416bb560c (issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents: 6322
diff changeset
261 NumberFormat fZeroFormatter = Formatter.getFormatter(context, 0, 0);
8541
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
262 DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT,
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
263 Resources.getLocale(context.getMeta()));
6828
708416bb560c (issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents: 6322
diff changeset
264
3392
56f62b5209f5 S/Q relation: Write parameters as export result.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3227
diff changeset
265 for (int i = 0; i < SQResult.NUMBER_FRACTIONS; ++i) {
56f62b5209f5 S/Q relation: Write parameters as export result.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3227
diff changeset
266 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
267
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
268 String name = result.getFractionName(i);
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
269
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
270 Parameters parameters = fraction.getParameters();
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
271
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
272 if (parameters == null) {
3392
56f62b5209f5 S/Q relation: Write parameters as export result.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3227
diff changeset
273 continue;
56f62b5209f5 S/Q relation: Write parameters as export result.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3227
diff changeset
274 }
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
275
6828
708416bb560c (issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents: 6322
diff changeset
276 String a, b, sd, o, t, max_q, c_ferguson, c_duan, r2;
708416bb560c (issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents: 6322
diff changeset
277 a = sqAFormatter.format(parameters.getValue(0, "a"));
708416bb560c (issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents: 6322
diff changeset
278 b = sqBFormatter.format(parameters.getValue(0, "b"));
708416bb560c (issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents: 6322
diff changeset
279
708416bb560c (issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents: 6322
diff changeset
280 /* 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
281 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
282 max_q = fZeroFormatter.format(parameters.getValue(0, "max_q"));
708416bb560c (issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents: 6322
diff changeset
283 c_ferguson = fTwoFormatter.format(parameters.getValue(0, "c_ferguson"));
708416bb560c (issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents: 6322
diff changeset
284 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
285 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
286
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
287
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
288 o = String.valueOf(fraction.totalNumOutliers());
7640
b7690b485439 flys/issue1638: Calculate ntot correctly.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7380
diff changeset
289 t = String.valueOf(fraction.numMeasurements());
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
290
8578
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
291 if (includeMeasurements) {
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
292 for (SQ sq: fraction.getMeasurements()) {
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
293 retval.add(new String[] {
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
294 km,
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
295 name,
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
296 a,
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
297 b,
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
298 sd, // 4
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
299 max_q, // 5
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
300 r2, // 6
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
301 t, // 7
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
302 o, // 8
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
303 c_duan, // 9
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
304 c_ferguson, // 10
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
305 sqAFormatter.format(sq.getS()),
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
306 fZeroFormatter.format(sq.getQ()),
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
307 df.format(sq.getDate())
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
308 });
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
309 }
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
310 } else {
8541
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
311 retval.add(new String[] {
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
312 km,
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
313 name,
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
314 a,
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
315 b,
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
316 sd, // 4
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
317 max_q, // 5
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
318 r2, // 6
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
319 t, // 7
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
320 o, // 8
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
321 c_duan, // 9
8578
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
322 c_ferguson // 10
8541
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
323 });
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
324 }
c0334399625b (issue1753) Add measurements to CSV export
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
325
3392
56f62b5209f5 S/Q relation: Write parameters as export result.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3227
diff changeset
326 }
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
327 return retval;
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
328 }
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
329
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
330
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
331 protected SQRelationJRDataSource createJRData() {
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
332 SQRelationJRDataSource source = new SQRelationJRDataSource();
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
333
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
334 addMetaData(source);
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
335 for (SQResult [] results: data) {
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
336 for (SQResult result: results) {
8578
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
337 for (String[] res: data2StringArrays(result, false)) {
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
338 source.addData(res);
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
339 }
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
340 }
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
341 }
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
342 return source;
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
343 }
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
344
8578
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
345 protected SQMeasurementsJRDataSource createMeasurementJRData() {
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
346 SQMeasurementsJRDataSource source = new SQMeasurementsJRDataSource();
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
347 NumberFormat fZeroFormatter = Formatter.getFormatter(context, 0, 0);
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
348 NumberFormat fEightFormatter = Formatter.getFormatter(context, 0, 8);
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
349 DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT,
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
350 Resources.getLocale(context.getMeta()));
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
351
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
352 for (SQResult [] results: data) {
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
353 for (SQResult result: results) {
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
354 for (int i = 0; i < SQResult.NUMBER_FRACTIONS; ++i) {
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
355 String name = result.getFractionName(i);
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
356 SQFractionResult fraction = result.getFraction(i);
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
357 for (SQ sq: fraction.getMeasurements()) {
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
358 source.addData(new String[] {
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
359 name,
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
360 fEightFormatter.format(sq.getS()),
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
361 fZeroFormatter.format(sq.getQ()),
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
362 df.format(sq.getDate()),
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
363 null
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
364 });
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
365 }
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
366 for (int j = 0; j < fraction.numIterations(); j++) {
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
367 for (SQ sq: fraction.getOutliers(j)) {
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
368 source.addData(new String[] {
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
369 name,
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
370 fEightFormatter.format(sq.getS()),
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
371 fZeroFormatter.format(sq.getQ()),
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
372 df.format(sq.getDate()),
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
373 Integer.toString(j + 1)
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
374 });
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
375 }
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
376 }
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
377 }
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
378 }
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
379 }
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
380 return source;
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
381 }
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
382
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
383 protected void addMetaData(SQRelationJRDataSource source) {
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
384 CallMeta meta = context.getMeta();
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
385
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
386 D4EArtifact arti = (D4EArtifact) master;
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
387
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
388 source.addMetaData ("river", RiverUtils.getRivername(arti));
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
389
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
390 Locale locale = Resources.getLocale(meta);
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
391 DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale);
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
392
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
393 source.addMetaData("date", df.format(new Date()));
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
394
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
395 SQRelationAccess access = new SQRelationAccess(arti);
6175
6a04081a2f69 Add unit to location and translate outliertest method
Andre Heinecke <aheinecke@intevation.de>
parents: 6172
diff changeset
396 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
397
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
398 DateRange period = access.getPeriod();
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
399 source.addMetaData("periods", df.format(period.getFrom()) + " - " +
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
400 df.format(period.getTo()));
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
401
6175
6a04081a2f69 Add unit to location and translate outliertest method
Andre Heinecke <aheinecke@intevation.de>
parents: 6172
diff changeset
402 source.addMetaData("outliertest", Resources.getMsg(meta,
6a04081a2f69 Add unit to location and translate outliertest method
Andre Heinecke <aheinecke@intevation.de>
parents: 6172
diff changeset
403 access.getOutlierMethod(),
6a04081a2f69 Add unit to location and translate outliertest method
Andre Heinecke <aheinecke@intevation.de>
parents: 6172
diff changeset
404 access.getOutlierMethod()));
6830
eb4b123daaf7 (issue1347) Localize outliers and pdf Header
Andre Heinecke <aheinecke@intevation.de>
parents: 6828
diff changeset
405 source.addMetaData("outliers", Formatter.getRawFormatter(context).format(
eb4b123daaf7 (issue1347) Localize outliers and pdf Header
Andre Heinecke <aheinecke@intevation.de>
parents: 6828
diff changeset
406 access.getOutliers()));
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
407
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
408 source.addMetaData("calculation", Resources.getMsg(
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
409 locale,
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
410 PDF_HEADER_MODE,
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
411 "SQRelation"));
6859
3ccbc278f2e6 (issue1347) Add SQ Relation fields for measurement station information
Andre Heinecke <aheinecke@intevation.de>
parents: 6830
diff changeset
412
3ccbc278f2e6 (issue1347) Add SQ Relation fields for measurement station information
Andre Heinecke <aheinecke@intevation.de>
parents: 6830
diff changeset
413 String measurementStationName = access.getMeasurementStationName();
3ccbc278f2e6 (issue1347) Add SQ Relation fields for measurement station information
Andre Heinecke <aheinecke@intevation.de>
parents: 6830
diff changeset
414
3ccbc278f2e6 (issue1347) Add SQ Relation fields for measurement station information
Andre Heinecke <aheinecke@intevation.de>
parents: 6830
diff changeset
415 if (measurementStationName != null) {
3ccbc278f2e6 (issue1347) Add SQ Relation fields for measurement station information
Andre Heinecke <aheinecke@intevation.de>
parents: 6830
diff changeset
416 source.addMetaData("msName", measurementStationName);
7380
d8d0caaf60a2 (issue1071) Handle the case where no MeasurementStation exists
Andre Heinecke <aheinecke@intevation.de>
parents: 7088
diff changeset
417 } else {
d8d0caaf60a2 (issue1071) Handle the case where no MeasurementStation exists
Andre Heinecke <aheinecke@intevation.de>
parents: 7088
diff changeset
418 source.addMetaData("msName", "");
6859
3ccbc278f2e6 (issue1347) Add SQ Relation fields for measurement station information
Andre Heinecke <aheinecke@intevation.de>
parents: 6830
diff changeset
419 }
3ccbc278f2e6 (issue1347) Add SQ Relation fields for measurement station information
Andre Heinecke <aheinecke@intevation.de>
parents: 6830
diff changeset
420
3ccbc278f2e6 (issue1347) Add SQ Relation fields for measurement station information
Andre Heinecke <aheinecke@intevation.de>
parents: 6830
diff changeset
421 String measurementStationGaugeName = access.getMeasurementStationGaugeName();
3ccbc278f2e6 (issue1347) Add SQ Relation fields for measurement station information
Andre Heinecke <aheinecke@intevation.de>
parents: 6830
diff changeset
422
3ccbc278f2e6 (issue1347) Add SQ Relation fields for measurement station information
Andre Heinecke <aheinecke@intevation.de>
parents: 6830
diff changeset
423 if (measurementStationGaugeName != null) {
3ccbc278f2e6 (issue1347) Add SQ Relation fields for measurement station information
Andre Heinecke <aheinecke@intevation.de>
parents: 6830
diff changeset
424 source.addMetaData("msGauge", measurementStationGaugeName);
7380
d8d0caaf60a2 (issue1071) Handle the case where no MeasurementStation exists
Andre Heinecke <aheinecke@intevation.de>
parents: 7088
diff changeset
425 } else {
d8d0caaf60a2 (issue1071) Handle the case where no MeasurementStation exists
Andre Heinecke <aheinecke@intevation.de>
parents: 7088
diff changeset
426 source.addMetaData("msGauge", "");
6859
3ccbc278f2e6 (issue1347) Add SQ Relation fields for measurement station information
Andre Heinecke <aheinecke@intevation.de>
parents: 6830
diff changeset
427 }
3ccbc278f2e6 (issue1347) Add SQ Relation fields for measurement station information
Andre Heinecke <aheinecke@intevation.de>
parents: 6830
diff changeset
428
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
429 }
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
430
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
431 @Override
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
432 protected void writePDF(OutputStream out) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7965
diff changeset
433 log.debug("write PDF");
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
434 SQRelationJRDataSource source = createJRData();
8578
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
435 SQMeasurementsJRDataSource measureSource = createMeasurementJRData();
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
436
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
437 String jasperFile = Resources.getMsg(
8578
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
438 context.getMeta(),
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
439 JASPER_FILE,
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
440 "/jasper/sqrelation_en.jasper");
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
441 String jasperMeasurementsFile = Resources.getMsg(
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
442 context.getMeta(),
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
443 JASPER_MEASUREMENTS_FILE,
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
444 "/jasper/sqmeasurements_en.jasper");
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
445 String confPath = Config.getConfigDirectory().toString();
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
446
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
447
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
448 Map parameters = new HashMap();
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
449 parameters.put("ReportTitle", Resources.getMsg(
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
450 context.getMeta(), PDF_TITLE, "Exported Data"));
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
451 try {
8578
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
452 /* Page numbers start have a built in offset of 1 so this
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
453 * is fine. */
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
454 JasperPrint p2 = JasperFillManager.fillReport(
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
455 confPath + jasperMeasurementsFile,
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
456 parameters,
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
457 measureSource);
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
458 parameters.put("MEASUREMENT_PAGE_NUM", p2.getPages().size());
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
459 JasperPrint p1 = JasperFillManager.fillReport(
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
460 confPath + jasperFile,
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
461 parameters,
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
462 source);
8578
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
463 for (Object page: p2.getPages()) {
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
464 JRPrintPage object = (JRPrintPage)page;
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
465 p1.addPage(object);
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
466 }
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8541
diff changeset
467 JasperExportManager.exportReportToPdfStream(p1, out);
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
468 }
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
469 catch(JRException je) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7965
diff changeset
470 log.warn("Error generating PDF Report!", je);
6172
58a613798386 Implement PDF export for SQ Relation
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
471 }
3077
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
472 }
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
473 }
5c87d4ca1bd3 Added chart and export generator stubs for SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
474 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org