Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/exports/ComputedDischargeCurveExporter.java @ 6315:99e597916ab1
Artifacts: Removed obsolete import.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Wed, 12 Jun 2013 18:10:36 +0200 |
parents | ac99cade71dd |
children | 294742a49c1c |
rev | line source |
---|---|
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
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:
5986
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:
5986
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:
5421
diff
changeset
|
9 package org.dive4elements.river.exports; |
392
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
10 |
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
11 import java.io.OutputStream; |
418
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
12 import java.text.NumberFormat; |
392
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
13 import java.util.ArrayList; |
701
dad1a2c88f9f
Base WST/CSV exports on facets. TODO: generate the facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
664
diff
changeset
|
14 import java.util.Arrays; |
392
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
15 import java.util.List; |
2177
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
16 import java.util.Map; |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
17 import java.util.HashMap; |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
18 import java.util.Date; |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
19 import java.text.DateFormat; |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
20 import java.util.Locale; |
392
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
21 |
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
22 import org.w3c.dom.Document; |
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
23 |
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
24 import org.apache.log4j.Logger; |
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
25 |
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
26 import au.com.bytecode.opencsv.CSVWriter; |
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
27 |
2177
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
28 import net.sf.jasperreports.engine.JasperExportManager; |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
29 import net.sf.jasperreports.engine.JasperFillManager; |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
30 import net.sf.jasperreports.engine.JasperPrint; |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
31 import net.sf.jasperreports.engine.JRException; |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
32 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5421
diff
changeset
|
33 import org.dive4elements.artifacts.common.utils.Config; |
392
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
34 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5421
diff
changeset
|
35 import org.dive4elements.artifacts.CallContext; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5421
diff
changeset
|
36 import org.dive4elements.artifacts.CallMeta; |
715
9665d6a48f7b
Fix for flys/issue154
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
701
diff
changeset
|
37 |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
38 import org.dive4elements.river.artifacts.D4EArtifact; |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5421
diff
changeset
|
39 |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5421
diff
changeset
|
40 import org.dive4elements.river.artifacts.access.RangeAccess; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5421
diff
changeset
|
41 import org.dive4elements.river.artifacts.model.CalculationResult; |
6305
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
42 import org.dive4elements.river.artifacts.model.WQ; |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5421
diff
changeset
|
43 import org.dive4elements.river.artifacts.model.WQKms; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5421
diff
changeset
|
44 import org.dive4elements.river.artifacts.model.WKmsJRDataSource; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5421
diff
changeset
|
45 import org.dive4elements.river.artifacts.resources.Resources; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5421
diff
changeset
|
46 |
5981
b740f0c4179e
Use 'W [cm]' as CSV header if discharge table is at a gauge.
Raimund Renkert <rrenkert@intevation.de>
parents:
5867
diff
changeset
|
47 import org.dive4elements.river.model.Gauge; |
6305
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
48 import org.dive4elements.river.model.River; |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
49 |
5865
73da40528cf2
River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
50 import org.dive4elements.river.utils.RiverUtils; |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5421
diff
changeset
|
51 import org.dive4elements.river.utils.Formatter; |
392
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
52 |
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
53 |
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
54 /** |
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
55 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
56 */ |
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
57 public class ComputedDischargeCurveExporter extends AbstractExporter { |
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
58 |
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
59 /** The logger used in this exporter.*/ |
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
60 private static Logger logger = |
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
61 Logger.getLogger(ComputedDischargeCurveExporter.class); |
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
62 |
416
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
394
diff
changeset
|
63 public static final String CSV_W_HEADER = |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
394
diff
changeset
|
64 "export.computed.discharge.curve.csv.header.w"; |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
394
diff
changeset
|
65 |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
394
diff
changeset
|
66 public static final String CSV_Q_HEADER = |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
394
diff
changeset
|
67 "export.computed.discharge.curve.csv.header.q"; |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
394
diff
changeset
|
68 |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
394
diff
changeset
|
69 public static final String DEFAULT_CSV_W_HEADER = "W [NN + m]"; |
664
e006da5679d2
s@m³/s@m\u00b3/s@
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
445
diff
changeset
|
70 public static final String DEFAULT_CSV_Q_HEADER = "Q [m\u00b3/s]"; |
416
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
394
diff
changeset
|
71 |
2177
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
72 public static final String PDF_HEADER_MODE = "export.computed.discharge.pdf.mode"; |
6305
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
73 public static final String PDF_HEADER_CALC_MODE = "export.computed.discharge.pdf.calc.mode"; |
2185
a9a8df1473fd
Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2182
diff
changeset
|
74 public static final String JASPER_FILE = "export.computed.discharge.pdf.file"; |
392
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
75 |
394
b9175ddea49b
Filled the discharge curve exporter (CSV) with code - now, it generates a CSV export with the computed discharge curve data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
392
diff
changeset
|
76 protected List<WQKms> data; |
b9175ddea49b
Filled the discharge curve exporter (CSV) with code - now, it generates a CSV export with the computed discharge curve data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
392
diff
changeset
|
77 |
6305
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
78 protected String wUnit; |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
79 protected String riverUnit; |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
80 protected String gaugeName; |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
81 protected double gaugeDatum; |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
82 protected boolean isCalculated; |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
83 |
394
b9175ddea49b
Filled the discharge curve exporter (CSV) with code - now, it generates a CSV export with the computed discharge curve data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
392
diff
changeset
|
84 |
392
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
85 public void init(Document request, OutputStream out, CallContext context) { |
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
86 logger.debug("ComputedDischargeCurveExporter.init"); |
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
87 |
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
88 super.init(request, out, context); |
394
b9175ddea49b
Filled the discharge curve exporter (CSV) with code - now, it generates a CSV export with the computed discharge curve data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
392
diff
changeset
|
89 |
b9175ddea49b
Filled the discharge curve exporter (CSV) with code - now, it generates a CSV export with the computed discharge curve data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
392
diff
changeset
|
90 this.data = new ArrayList<WQKms>(); |
392
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
91 } |
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
92 |
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
93 |
701
dad1a2c88f9f
Base WST/CSV exports on facets. TODO: generate the facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
664
diff
changeset
|
94 @Override |
dad1a2c88f9f
Base WST/CSV exports on facets. TODO: generate the facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
664
diff
changeset
|
95 protected void addData(Object d) { |
715
9665d6a48f7b
Fix for flys/issue154
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
701
diff
changeset
|
96 if (d instanceof CalculationResult) { |
9665d6a48f7b
Fix for flys/issue154
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
701
diff
changeset
|
97 d = ((CalculationResult)d).getData(); |
701
dad1a2c88f9f
Base WST/CSV exports on facets. TODO: generate the facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
664
diff
changeset
|
98 } |
6305
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
99 WQKms referenceWQ = null; // used for gauge / unit observations |
4585
b4a95290ec63
Refactor ComputedDischargeCurveExporter to support WQKms values and WQKms arrays
Björn Ricks <bjoern.ricks@intevation.de>
parents:
2185
diff
changeset
|
100 if (d instanceof WQKms[]){ |
b4a95290ec63
Refactor ComputedDischargeCurveExporter to support WQKms values and WQKms arrays
Björn Ricks <bjoern.ricks@intevation.de>
parents:
2185
diff
changeset
|
101 data.addAll(Arrays.asList((WQKms [])d)); |
6305
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
102 // If there is a unit mix in this list |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
103 // we are screwed anyway. |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
104 referenceWQ = ((WQKms[])d)[0]; |
4585
b4a95290ec63
Refactor ComputedDischargeCurveExporter to support WQKms values and WQKms arrays
Björn Ricks <bjoern.ricks@intevation.de>
parents:
2185
diff
changeset
|
105 } |
b4a95290ec63
Refactor ComputedDischargeCurveExporter to support WQKms values and WQKms arrays
Björn Ricks <bjoern.ricks@intevation.de>
parents:
2185
diff
changeset
|
106 else if (d instanceof WQKms) { |
b4a95290ec63
Refactor ComputedDischargeCurveExporter to support WQKms values and WQKms arrays
Björn Ricks <bjoern.ricks@intevation.de>
parents:
2185
diff
changeset
|
107 data.add((WQKms)d); |
6305
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
108 referenceWQ = (WQKms)d; |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
109 } else { |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
110 logger.warn("Can't add data for export. Unkown data type " + |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
111 d.getClass().getName()); |
4610
497bc73ca64a
Fix: Don't show the warning if datatype is WQKms
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4585
diff
changeset
|
112 return; |
4585
b4a95290ec63
Refactor ComputedDischargeCurveExporter to support WQKms values and WQKms arrays
Björn Ricks <bjoern.ricks@intevation.de>
parents:
2185
diff
changeset
|
113 } |
6305
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
114 if (referenceWQ != null) { |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
115 wUnit = referenceWQ.getWUnit(); |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
116 D4EArtifact arti = (D4EArtifact)master; |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
117 River river = RiverUtils.getRiver(arti); |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
118 riverUnit = river.getWstUnit().getName(); |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
119 RangeAccess rangeAccess = new RangeAccess(arti); |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
120 |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
121 double[] kms = rangeAccess.getKmRange(); |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
122 |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
123 Gauge gauge = river.determineGaugeByPosition(kms[0]); |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
124 logger.debug("Kms 0: " + kms[0]); |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
125 if (Math.abs(kms[0] - gauge.getStation().doubleValue()) < 1e-4) { |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
126 gaugeName = gauge.getName(); |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
127 gaugeDatum = gauge.getDatum().doubleValue(); |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
128 |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
129 // Assumption is that values at a gauge that are in the meter |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
130 // reference system are calculated. |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
131 isCalculated = wUnit.equals("m"); |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
132 |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
133 // Now convert the data to cm because we are at gauge |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
134 List<WQKms> newData = new ArrayList<WQKms>(); |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
135 for (WQKms d2: data) { |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
136 newData.add(new WQKms(d2.getKms(), |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
137 WQ.getFixedWQforExportAtGauge((WQ)d2, gauge.getDatum()))); |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
138 } |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
139 data = newData; // All hail the garbage collector |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
140 wUnit = "cm"; |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
141 } else { |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
142 gaugeName = ""; |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
143 gaugeDatum = Double.NaN; |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
144 } |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
145 } |
392
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
146 } |
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
147 |
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
148 protected void writeCSVData(CSVWriter writer) { |
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
149 logger.info("ComputedDischargeCurveExporter.writeData"); |
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
150 |
416
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
394
diff
changeset
|
151 writeCSVHeader(writer); |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
394
diff
changeset
|
152 |
418
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
153 NumberFormat wf = getWFormatter(); |
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
154 NumberFormat qf = getQFormatter(); |
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
155 |
394
b9175ddea49b
Filled the discharge curve exporter (CSV) with code - now, it generates a CSV export with the computed discharge curve data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
392
diff
changeset
|
156 double[] res = new double[3]; |
b9175ddea49b
Filled the discharge curve exporter (CSV) with code - now, it generates a CSV export with the computed discharge curve data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
392
diff
changeset
|
157 |
b9175ddea49b
Filled the discharge curve exporter (CSV) with code - now, it generates a CSV export with the computed discharge curve data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
392
diff
changeset
|
158 for (WQKms wqkms: data) { |
b9175ddea49b
Filled the discharge curve exporter (CSV) with code - now, it generates a CSV export with the computed discharge curve data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
392
diff
changeset
|
159 int size = wqkms.size(); |
b9175ddea49b
Filled the discharge curve exporter (CSV) with code - now, it generates a CSV export with the computed discharge curve data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
392
diff
changeset
|
160 |
b9175ddea49b
Filled the discharge curve exporter (CSV) with code - now, it generates a CSV export with the computed discharge curve data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
392
diff
changeset
|
161 for (int i = 0; i < size; i++) { |
b9175ddea49b
Filled the discharge curve exporter (CSV) with code - now, it generates a CSV export with the computed discharge curve data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
392
diff
changeset
|
162 res = wqkms.get(i, res); |
b9175ddea49b
Filled the discharge curve exporter (CSV) with code - now, it generates a CSV export with the computed discharge curve data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
392
diff
changeset
|
163 |
b9175ddea49b
Filled the discharge curve exporter (CSV) with code - now, it generates a CSV export with the computed discharge curve data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
392
diff
changeset
|
164 writer.writeNext(new String[] { |
418
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
165 wf.format(res[0]), |
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
166 qf.format(res[1]) |
394
b9175ddea49b
Filled the discharge curve exporter (CSV) with code - now, it generates a CSV export with the computed discharge curve data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
392
diff
changeset
|
167 }); |
b9175ddea49b
Filled the discharge curve exporter (CSV) with code - now, it generates a CSV export with the computed discharge curve data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
392
diff
changeset
|
168 } |
b9175ddea49b
Filled the discharge curve exporter (CSV) with code - now, it generates a CSV export with the computed discharge curve data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
392
diff
changeset
|
169 } |
392
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
170 } |
416
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
394
diff
changeset
|
171 |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
394
diff
changeset
|
172 |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
394
diff
changeset
|
173 protected void writeCSVHeader(CSVWriter writer) { |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
394
diff
changeset
|
174 logger.debug("ComputedDischargeCurveExporter.writeCSVHeader"); |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
394
diff
changeset
|
175 |
6101
a0078e5e3b39
Removed unused context from RangeAccess and subclasses leading to some dead code removal.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5994
diff
changeset
|
176 RangeAccess access = new RangeAccess((D4EArtifact)master); |
5981
b740f0c4179e
Use 'W [cm]' as CSV header if discharge table is at a gauge.
Raimund Renkert <rrenkert@intevation.de>
parents:
5867
diff
changeset
|
177 double[] km = access.getLocations(); |
6308
aa4c13220fa0
Use the river unit in csv export if not converted
Andre Heinecke <aheinecke@intevation.de>
parents:
6306
diff
changeset
|
178 // If we are not at gauge (cm) use the river unit |
aa4c13220fa0
Use the river unit in csv export if not converted
Andre Heinecke <aheinecke@intevation.de>
parents:
6306
diff
changeset
|
179 String realUnit = wUnit.equals("cm") ? "cm" : riverUnit; |
5981
b740f0c4179e
Use 'W [cm]' as CSV header if discharge table is at a gauge.
Raimund Renkert <rrenkert@intevation.de>
parents:
5867
diff
changeset
|
180 String header = |
6308
aa4c13220fa0
Use the river unit in csv export if not converted
Andre Heinecke <aheinecke@intevation.de>
parents:
6306
diff
changeset
|
181 msg(CSV_W_HEADER, DEFAULT_CSV_W_HEADER, new Object[] {realUnit}); |
5985
2ec6fae23bba
Be more tolerant when try to find out if a location is at a gauge position.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5981
diff
changeset
|
182 |
416
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
394
diff
changeset
|
183 writer.writeNext(new String[] { |
5981
b740f0c4179e
Use 'W [cm]' as CSV header if discharge table is at a gauge.
Raimund Renkert <rrenkert@intevation.de>
parents:
5867
diff
changeset
|
184 header, |
416
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
394
diff
changeset
|
185 msg(CSV_Q_HEADER, DEFAULT_CSV_Q_HEADER) |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
394
diff
changeset
|
186 }); |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
394
diff
changeset
|
187 } |
418
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
188 |
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
189 |
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
190 /** |
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
191 * Returns the number formatter for W values. |
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
192 * |
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
193 * @return the number formatter for W values. |
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
194 */ |
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
195 protected NumberFormat getWFormatter() { |
6305
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
196 if (wUnit.equals("cm")) { |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
197 return Formatter.getFormatter(context, 0, 0); |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
198 } |
445
a7947972fdeb
Added a new class that supports formatters for different types of data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
418
diff
changeset
|
199 return Formatter.getComputedDischargeW(context); |
418
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
200 } |
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
201 |
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
202 |
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
203 /** |
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
204 * Returns the number formatter for Q values. |
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
205 * |
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
206 * @return the number formatter for Q values. |
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
207 */ |
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
208 protected NumberFormat getQFormatter() { |
445
a7947972fdeb
Added a new class that supports formatters for different types of data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
418
diff
changeset
|
209 return Formatter.getComputedDischargeQ(context); |
418
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
210 } |
2176 | 211 |
212 | |
213 @Override | |
2177
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
214 protected void writePDF(OutputStream out) { |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
215 WKmsJRDataSource source = createJRData(); |
2185
a9a8df1473fd
Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2182
diff
changeset
|
216 |
a9a8df1473fd
Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2182
diff
changeset
|
217 String jasperFile = Resources.getMsg( |
a9a8df1473fd
Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2182
diff
changeset
|
218 context.getMeta(), |
a9a8df1473fd
Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2182
diff
changeset
|
219 JASPER_FILE, |
a9a8df1473fd
Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2182
diff
changeset
|
220 "/jasper/computed-discharge_en.jasper"); |
a9a8df1473fd
Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2182
diff
changeset
|
221 String confPath = Config.getConfigDirectory().toString(); |
a9a8df1473fd
Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2182
diff
changeset
|
222 |
2177
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
223 Map parameters = new HashMap(); |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
224 parameters.put("ReportTitle", "Exported Data"); |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
225 try { |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
226 JasperPrint print = JasperFillManager.fillReport( |
2185
a9a8df1473fd
Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2182
diff
changeset
|
227 confPath + jasperFile, |
2177
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
228 parameters, |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
229 source); |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
230 JasperExportManager.exportReportToPdfStream(print, out); |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
231 } |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
232 catch(JRException je) { |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
233 logger.warn("Error generating PDF Report!"); |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
234 je.printStackTrace(); |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
235 } |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
236 } |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
237 |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
238 |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
239 protected WKmsJRDataSource createJRData() { |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
240 WKmsJRDataSource source = new WKmsJRDataSource(); |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
241 |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
242 addMetaData(source); |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
243 addWQData(source); |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
244 |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
245 return source; |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
246 } |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
247 |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
248 |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
249 protected void addMetaData(WKmsJRDataSource source) { |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
250 CallMeta meta = context.getMeta(); |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
251 |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
252 D4EArtifact flys = (D4EArtifact) master; |
6305
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
253 source.addMetaData("gauge", gaugeName); |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
254 if (!Double.isNaN(gaugeDatum)) { |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
255 NumberFormat mf = Formatter.getMeterFormat(context); |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
256 source.addMetaData("datum", mf.format(gaugeDatum) + " " + riverUnit); |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
257 } else { |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
258 source.addMetaData("datum", ""); |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
259 } |
2177
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
260 |
5865
73da40528cf2
River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
261 source.addMetaData ("river", RiverUtils.getRivername(flys)); |
2177
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
262 |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
263 Locale locale = Resources.getLocale(meta); |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
264 DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale); |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
265 |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
266 source.addMetaData("date", df.format(new Date())); |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
267 |
6305
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
268 source.addMetaData("wUnit", wUnit.equals("m") ? riverUnit : "cm"); |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
269 |
6101
a0078e5e3b39
Removed unused context from RangeAccess and subclasses leading to some dead code removal.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5994
diff
changeset
|
270 RangeAccess rangeAccess = new RangeAccess(flys); |
4856
d9ef525bff08
ChartGenerator, ComputedDischargeCurveExporter: Updated to use RangeAccess instead of FLYSUtils.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4610
diff
changeset
|
271 double[] kms = rangeAccess.getKmRange(); |
6311
c4c7ed0e5ffc
Format km's in computed discharge export
Andre Heinecke <aheinecke@intevation.de>
parents:
6308
diff
changeset
|
272 source.addMetaData("range", |
c4c7ed0e5ffc
Format km's in computed discharge export
Andre Heinecke <aheinecke@intevation.de>
parents:
6308
diff
changeset
|
273 Formatter.getCalculationKm(context.getMeta()).format(kms[0])); |
2177
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
274 |
6312
ac99cade71dd
Assume that the result is calculated if the wUnit is meter
Andre Heinecke <aheinecke@intevation.de>
parents:
6311
diff
changeset
|
275 // When w is in meter we are not at a gauge so our values |
ac99cade71dd
Assume that the result is calculated if the wUnit is meter
Andre Heinecke <aheinecke@intevation.de>
parents:
6311
diff
changeset
|
276 // must be calculated |
ac99cade71dd
Assume that the result is calculated if the wUnit is meter
Andre Heinecke <aheinecke@intevation.de>
parents:
6311
diff
changeset
|
277 if (isCalculated || wUnit.equals("m")) { |
6305
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
278 source.addMetaData("calculation", Resources.getMsg( |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
279 locale, |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
280 PDF_HEADER_CALC_MODE, |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
281 "Computed Discharge")); |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
282 } else { |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
283 source.addMetaData("calculation", Resources.getMsg( |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
284 locale, |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
285 PDF_HEADER_MODE, |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
286 "Discharge")); |
40c77429319d
Update PDF/CSV export for discharge curves
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
287 } |
2177
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
288 } |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
289 |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
290 protected void addWQData(WKmsJRDataSource source) { |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
291 NumberFormat wf = getWFormatter(); |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
292 NumberFormat qf = getQFormatter(); |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
293 |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
294 double[] res = new double[3]; |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
295 |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
296 for (WQKms wqkms: data) { |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
297 int size = wqkms.size(); |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
298 |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
299 for (int i = 0; i < size; i++) { |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
300 res = wqkms.get(i, res); |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
301 |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
302 source.addData(new String[] { |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
303 "", // Empty, the WKmsJRDtasource stores km here. |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
304 wf.format(res[0]), |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
305 qf.format(res[1]) |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
306 }); |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
307 } |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
308 } |
28dbeb64ce7c
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
309 } |
392
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
310 } |
72177020db92
Improved the transition model and added classes to enable the WINFO artifact to create computed discharge curves - NOTE: each of the new classes is just a stub.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
311 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |