annotate artifacts/src/main/java/org/dive4elements/river/artifacts/services/SQKMChartService.java @ 8566:fe7e9da6312a

(issue1797) Move close into session release and guard it. To avoid leaking open and Held sessions we centrally close the session in the SessionHolder on release. This also removes some duplicated code in SedDBSessionHolder
author Andre Heinecke <andre.heinecke@intevation.de>
date Tue, 24 Feb 2015 17:16:14 +0100
parents af13ceeba52a
children 5e38e2924c07
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: 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: 3288
diff changeset
9 package org.dive4elements.river.artifacts.services;
3274
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
10
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3288
diff changeset
11 import org.dive4elements.artifactdatabase.DefaultService;
3274
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
12
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3288
diff changeset
13 import org.dive4elements.artifacts.CallMeta;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3288
diff changeset
14 import org.dive4elements.artifacts.GlobalContext;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3288
diff changeset
15 import org.dive4elements.artifacts.Service;
3274
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
16
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3288
diff changeset
17 import org.dive4elements.river.artifacts.model.SQOverview;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3288
diff changeset
18 import org.dive4elements.river.artifacts.model.SQOverviewFactory;
3274
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
19
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3288
diff changeset
20 import org.dive4elements.river.artifacts.resources.Resources;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3288
diff changeset
21
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3288
diff changeset
22 import org.dive4elements.river.backend.SedDBSessionHolder;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3288
diff changeset
23
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3288
diff changeset
24 import org.dive4elements.river.utils.KMIndex;
3274
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
26 import java.awt.Color;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
27 import java.awt.Dimension;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
28 import java.awt.Transparency;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
29
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
30 import java.awt.image.BufferedImage;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
31
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
32 import java.io.ByteArrayOutputStream;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
33 import java.io.IOException;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
34
3276
4903e491992e Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3274
diff changeset
35 import java.util.Date;
3274
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
36 import java.util.List;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
37
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
38 import javax.imageio.ImageIO;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
39
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
40 import org.apache.log4j.Logger;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
41
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
42 import org.jfree.chart.ChartFactory;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
43 import org.jfree.chart.JFreeChart;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
44
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
45 import org.jfree.chart.axis.DateAxis;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
46
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
47 import org.jfree.chart.plot.PlotOrientation;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
48 import org.jfree.chart.plot.XYPlot;
3276
4903e491992e Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3274
diff changeset
49
3274
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
50 import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
51
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
52 import org.jfree.data.xy.XYSeries;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
53 import org.jfree.data.xy.XYSeriesCollection;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
54
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
55 import org.w3c.dom.Document;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
56 import org.w3c.dom.Element;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
57 import org.w3c.dom.NodeList;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
58
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
59 public class SQKMChartService
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
60 extends DefaultService {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
61
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
62 private static final Logger log =
3288
cf1b769190b7 SQKMChartService: Fixed wrong logger class.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3276
diff changeset
63 Logger.getLogger(SQKMChartService.class);
3274
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
64
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
65 public static final int DEFAULT_WIDTH = 240;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
66 public static final int DEFAULT_HEIGHT = 180;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
67
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
68 public static final String I18N_CHART_LABEL =
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
69 "sq.km.chart.label";
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
70
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
71 public static final String DEFAULT_CHART_LABEL =
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
72 "Measuring Points";
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
73
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
74 public static final String I18N_CHART_TITLE =
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
75 "sq.km.chart.title";
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
76
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
77 public static final String DEFAULT_CHART_TITLE =
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
78 "Measuring points";
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
79
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
80 public static final String I18N_KM_AXIS =
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
81 "sq.km.chart.km.axis";
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
82
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
83 public static final String DEFAULT_KM_AXIS =
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
84 "km";
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
85
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
86 public static final String I18N_DATE_AXIS =
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
87 "sq.km.chart.date.axis";
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
88
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
89 public static final String DEFAULT_DATE_AXIS =
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
90 "Date";
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
91
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
92 public static final String DEFAULT_FORMAT = "png";
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
93
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
94 // TODO: Load fancy image from resources.
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
95 public static final byte [] EMPTY = {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
96 (byte)0x89, (byte)0x50, (byte)0x4e, (byte)0x47,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
97 (byte)0x0d, (byte)0x0a, (byte)0x1a, (byte)0x0a,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
98 (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x0d,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
99 (byte)0x49, (byte)0x48, (byte)0x44, (byte)0x52,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
100 (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x01,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
101 (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x01,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
102 (byte)0x08, (byte)0x00, (byte)0x00, (byte)0x00,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
103 (byte)0x00, (byte)0x3a, (byte)0x7e, (byte)0x9b,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
104 (byte)0x55, (byte)0x00, (byte)0x00, (byte)0x00,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
105 (byte)0x01, (byte)0x73, (byte)0x52, (byte)0x47,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
106 (byte)0x42, (byte)0x00, (byte)0xae, (byte)0xce,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
107 (byte)0x1c, (byte)0xe9, (byte)0x00, (byte)0x00,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
108 (byte)0x00, (byte)0x09, (byte)0x70, (byte)0x48,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
109 (byte)0x59, (byte)0x73, (byte)0x00, (byte)0x00,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
110 (byte)0x0b, (byte)0x13, (byte)0x00, (byte)0x00,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
111 (byte)0x0b, (byte)0x13, (byte)0x01, (byte)0x00,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
112 (byte)0x9a, (byte)0x9c, (byte)0x18, (byte)0x00,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
113 (byte)0x00, (byte)0x00, (byte)0x07, (byte)0x74,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
114 (byte)0x49, (byte)0x4d, (byte)0x45, (byte)0x07,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
115 (byte)0xdc, (byte)0x04, (byte)0x04, (byte)0x10,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
116 (byte)0x30, (byte)0x15, (byte)0x7d, (byte)0x77,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
117 (byte)0x36, (byte)0x0b, (byte)0x00, (byte)0x00,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
118 (byte)0x00, (byte)0x08, (byte)0x74, (byte)0x45,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
119 (byte)0x58, (byte)0x74, (byte)0x43, (byte)0x6f,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
120 (byte)0x6d, (byte)0x6d, (byte)0x65, (byte)0x6e,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
121 (byte)0x74, (byte)0x00, (byte)0xf6, (byte)0xcc,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
122 (byte)0x96, (byte)0xbf, (byte)0x00, (byte)0x00,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
123 (byte)0x00, (byte)0x0a, (byte)0x49, (byte)0x44,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
124 (byte)0x41, (byte)0x54, (byte)0x08, (byte)0xd7,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
125 (byte)0x63, (byte)0xf8, (byte)0x0f, (byte)0x00,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
126 (byte)0x01, (byte)0x01, (byte)0x01, (byte)0x00,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
127 (byte)0x1b, (byte)0xb6, (byte)0xee, (byte)0x56,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
128 (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
129 (byte)0x49, (byte)0x45, (byte)0x4e, (byte)0x44,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
130 (byte)0xae, (byte)0x42, (byte)0x60, (byte)0x82
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
131 };
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
132
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
133 private static final Output empty() {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
134 return new Output(EMPTY, "image/png");
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
135 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
136
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
137 @Override
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
138 public Service.Output process(
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
139 Document data,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
140 GlobalContext globalContext,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
141 CallMeta callMeta
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
142 ) {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
143 log.debug("SQKMChartService.process");
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
144
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
145 SedDBSessionHolder.acquire();
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
146 try {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
147 return doProcess(data, globalContext, callMeta);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
148 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
149 finally {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
150 SedDBSessionHolder.release();
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
151 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
152 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
153
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
154 protected Service.Output doProcess(
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
155 Document input,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
156 GlobalContext globalContext,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
157 CallMeta callMeta
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
158 ) {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
159 String river = getRiverName(input);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
160 Dimension extent = getExtent(input);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
161 String format = getFormat(input);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
162
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
163 if (river == null) {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
164 log.warn("River invalid.");
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
165 return empty();
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
166 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
167
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
168 SQOverview overview = SQOverviewFactory.getOverview(river);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
169
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
170 if (overview == null) {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
171 log.warn("No overview found for river '" + river + "'");
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
172 return empty();
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
173 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
174
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
175 KMIndex<List<Date>> entries = overview.filter(SQOverview.ACCEPT);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
176
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
177 JFreeChart chart = createChart(entries, river, callMeta);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
178
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
179 return encode(chart, extent, format);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
180 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
181
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
182 protected static Output encode(
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
183 JFreeChart chart,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
184 Dimension extent,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
185 String format
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
186 ) {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
187 BufferedImage image = chart.createBufferedImage(
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
188 extent.width, extent.height,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
189 Transparency.BITMASK,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
190 null);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
191
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
192 ByteArrayOutputStream out = new ByteArrayOutputStream();
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
193
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
194 try {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
195 ImageIO.write(image, format, out);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
196 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
197 catch (IOException ioe) {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
198 log.warn("writing image failed", ioe);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
199 return empty();
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
200 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
201
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
202 return new Output(out.toByteArray(), "image/" + format);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
203 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
204
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
205 protected static JFreeChart createChart(
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
206 KMIndex<List<Date>> entries,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
207 String river,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
208 CallMeta callMeta
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
209 ) {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
210
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
211 XYSeriesCollection dataset = new XYSeriesCollection();
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
212 String key = Resources.format(
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
213 callMeta, I18N_CHART_LABEL, DEFAULT_CHART_LABEL, river);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
214
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
215 XYSeries series = new XYSeries(key);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
216 for (KMIndex.Entry<List<Date>> e: entries) {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
217 double km = e.getKm();
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
218 List<Date> ds = e.getValue();
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
219 for (Date d: ds) {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
220 series.add(km, d.getTime());
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
221 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
222 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
223
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
224 dataset.addSeries(series);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
225 String title = Resources.format(
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
226 callMeta, I18N_CHART_TITLE, DEFAULT_CHART_TITLE, river);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
227
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
228 String kmAxis = Resources.getMsg(
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
229 callMeta, I18N_KM_AXIS, DEFAULT_KM_AXIS);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
230
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
231 String dateAxis = Resources.getMsg(
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
232 callMeta, I18N_DATE_AXIS, DEFAULT_DATE_AXIS);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
233
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
234 JFreeChart chart = ChartFactory.createXYLineChart(
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
235 title,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
236 kmAxis,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
237 dateAxis,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
238 null,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
239 PlotOrientation.VERTICAL,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
240 true,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
241 true,
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
242 false);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
243
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
244 XYPlot plot = (XYPlot)chart.getPlot();
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
245
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
246 DateAxis dA = new DateAxis();
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
247 plot.setRangeAxis(dA);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
248 plot.setDataset(0, dataset);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
249
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
250 chart.setBackgroundPaint(Color.white);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
251 plot.setBackgroundPaint(Color.white);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
252 plot.setDomainGridlinePaint(Color.gray);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
253 plot.setRangeGridlinePaint(Color.gray);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
254 plot.setDomainGridlinesVisible(true);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
255 plot.setRangeGridlinesVisible(true);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
256 XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) plot.getRenderer();
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
257
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
258 renderer.setSeriesPaint(0, Color.gray);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
259 renderer.setSeriesLinesVisible(0, false);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
260 renderer.setSeriesShapesVisible(0, true);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
261 renderer.setDrawOutlines(true);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
262 return chart;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
263 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
264
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
265
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
266 protected static String getRiverName(Document input) {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
267 NodeList rivers = input.getElementsByTagName("river");
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
268
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
269 if (rivers.getLength() == 0) {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
270 return null;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
271 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
272
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
273 String river = ((Element)rivers.item(0)).getAttribute("name");
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
274
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
275 return river.length() > 0 ? river : null;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
276 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
277
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
278 protected static Dimension getExtent(Document input) {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
279
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
280 int width = DEFAULT_WIDTH;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
281 int height = DEFAULT_HEIGHT;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
282
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
283 NodeList extents = input.getElementsByTagName("extent");
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
284
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
285 if (extents.getLength() > 0) {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
286 Element element = (Element)extents.item(0);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
287 String w = element.getAttribute("width");
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
288 String h = element.getAttribute("height");
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
289
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
290 try {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
291 width = Math.max(1, Integer.parseInt(w));
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
292 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
293 catch (NumberFormatException nfe) {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
294 log.warn("width '" + w + "' is not a valid.");
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
295 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
296
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
297 try {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
298 height = Math.max(1, Integer.parseInt(h));
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
299 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
300 catch (NumberFormatException nfe) {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
301 log.warn("height '" + h + "' is not a valid");
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
302 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
303 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
304
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
305 return new Dimension(width, height);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
306 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
307
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
308 protected static String getFormat(Document input) {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
309 String format = DEFAULT_FORMAT;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
310
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
311 NodeList formats = input.getElementsByTagName("format");
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
312
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
313 if (formats.getLength() > 0) {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
314 String type = ((Element)formats.item(0)).getAttribute("type");
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
315 if (type.length() > 0) {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
316 format = type;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
317 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
318 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
319
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
320 return format;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
321 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
322 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
323 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org