annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/sq/SQMeasurementsJRDataSource.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
children 5e38e2924c07
rev   line source
8578
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
1 /* Copyright (C) 2011, 2012, 2013, 2015 by Bundesanstalt für Gewässerkunde
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
2 * Software engineering by Intevation GmbH
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
3 *
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
6 * documentation coming with Dive4Elements River for details.
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
7 */
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
8
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
9 package org.dive4elements.river.artifacts.model.sq;
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
10
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
11 import java.util.ArrayList;
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
12
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
13 import org.apache.log4j.Logger;
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
14
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
15 import net.sf.jasperreports.engine.JRDataSource;
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
16 import net.sf.jasperreports.engine.JRException;
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
17 import net.sf.jasperreports.engine.JRField;
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
18
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
19
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
20 /**
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
21 * @author <a href="mailto:aheinecke@intevation.de">Andre Heinecke</a>
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
22 */
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
23 public class SQMeasurementsJRDataSource implements JRDataSource
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
24 {
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
25 /** The log used in this exporter.*/
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
26 private static Logger log = Logger.getLogger(SQMeasurementsJRDataSource.class);
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
27
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
28 private ArrayList<String[]> data;
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
29
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
30 private int index = -1;
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
31
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
32 public SQMeasurementsJRDataSource() {
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
33 data = new ArrayList<String[]>();
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
34 }
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
35
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
36 public void addData(String[] val) {
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
37 data.add(val);
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
38 }
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
39
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
40 public boolean next() throws JRException {
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
41 index++;
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
42 return (index < data.size());
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
43 }
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
44
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
45 public Object getFieldValue(JRField field) throws JRException {
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
46 Object value = "";
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
47 String fieldName = field.getName();
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
48 if ("param".equals(fieldName)) {
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
49 value = data.get(index)[0];
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
50 }
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
51 else if ("transport".equals(fieldName)) {
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
52 value = data.get(index)[1];
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
53 }
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
54 else if ("discharge".equals(fieldName)) {
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
55 value = data.get(index)[2];
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
56 }
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
57 else if ("date".equals(fieldName)) {
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
58 value = data.get(index)[3];
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
59 }
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
60 else if ("outlier".equals(fieldName)) {
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
61 value = data.get(index)[4];
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
62 }
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
63 return value;
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
64 }
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
65 }
4eb1a3c71579 (issue1753) Implement PDF export of SQ Measurement data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
66 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org