annotate artifacts/src/main/java/org/dive4elements/river/exports/ChartGenerator2.java @ 7974:5eb8cd9201d8

Removed code that ignores a user subtitle and sets a default subtitle.
author Raimund Renkert <rrenkert@intevation.de>
date Fri, 27 Jun 2014 13:05:34 +0200
parents 43f18dc56c5a
children bd0dfa57b1fe
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: 5867
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: 5867
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: 4858
diff changeset
9 package org.dive4elements.river.exports;
348
635af5381a4d Added an abstract OutGenerator that should be the base class for all generators which create charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
3257
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
11 import java.awt.BasicStroke;
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
12 import java.awt.Color;
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
13 import java.awt.Font;
7079
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
14 import java.awt.Graphics2D;
3257
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
15 import java.awt.Paint;
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
16 import java.awt.Stroke;
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
17 import java.awt.TexturePaint;
7079
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
18 import java.awt.Transparency;
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
19
3257
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
20 import java.awt.geom.Rectangle2D;
7079
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
21
3257
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
22 import java.awt.image.BufferedImage;
7079
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
23
3257
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
24 import java.io.IOException;
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
25 import java.io.OutputStream;
7079
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
26
3257
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
27 import java.util.ArrayList;
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
28 import java.util.List;
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
29 import java.util.Locale;
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
30 import java.util.Map;
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
31 import java.util.SortedMap;
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
32 import java.util.TreeMap;
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
33
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
34 import javax.xml.xpath.XPathConstants;
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
35
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
36 import org.apache.log4j.Logger;
7079
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
37
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
38 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
39 import org.dive4elements.artifactdatabase.state.Settings;
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
40
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
41 import org.dive4elements.artifacts.Artifact;
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
42 import org.dive4elements.artifacts.ArtifactNamespaceContext;
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
43 import org.dive4elements.artifacts.CallContext;
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
44 import org.dive4elements.artifacts.CallMeta;
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
45 import org.dive4elements.artifacts.PreferredLocale;
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
46
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
47 import org.dive4elements.artifacts.common.utils.XMLUtils;
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
48
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
49 import org.dive4elements.river.artifacts.D4EArtifact;
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
50
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
51 import org.dive4elements.river.artifacts.access.RangeAccess;
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
52
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
53 import org.dive4elements.river.artifacts.resources.Resources;
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
54
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
55 import org.dive4elements.river.collections.D4EArtifactCollection;
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
56
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
57 import org.dive4elements.river.java2d.NOPGraphics2D;
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
58
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
59 import org.dive4elements.river.jfree.AxisDataset;
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
60 import org.dive4elements.river.jfree.Bounds;
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
61 import org.dive4elements.river.jfree.DoubleBounds;
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
62 import org.dive4elements.river.jfree.EnhancedLineAndShapeRenderer;
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
63 import org.dive4elements.river.jfree.RiverAnnotation;
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
64 import org.dive4elements.river.jfree.StableXYDifferenceRenderer;
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
65 import org.dive4elements.river.jfree.Style;
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
66 import org.dive4elements.river.jfree.StyledAreaSeriesCollection;
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
67 import org.dive4elements.river.jfree.StyledSeries;
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
68
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
69 import org.dive4elements.river.model.River;
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
70
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
71 import org.dive4elements.river.themes.ThemeDocument;
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
72
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
73 import org.dive4elements.river.utils.Formatter;
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
74 import org.dive4elements.river.utils.RiverUtils;
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
75
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
76 import org.jfree.chart.ChartRenderingInfo;
3257
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
77 import org.jfree.chart.JFreeChart;
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
78 import org.jfree.chart.LegendItem;
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
79 import org.jfree.chart.LegendItemCollection;
7079
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
80
3257
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
81 import org.jfree.chart.axis.NumberAxis;
7079
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
82
3257
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
83 import org.jfree.chart.plot.XYPlot;
7079
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
84
3257
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
85 import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
7079
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
86
3409
97ad960f5579 Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents: 3296
diff changeset
87 import org.jfree.chart.title.TextTitle;
7079
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
88
3257
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
89 import org.jfree.data.Range;
7079
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
90
3257
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
91 import org.jfree.data.general.Series;
7079
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
92
3257
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
93 import org.jfree.data.xy.XYDataset;
7079
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
94
3257
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
95 import org.jfree.ui.RectangleInsets;
7079
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
96
3257
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
97 import org.w3c.dom.Document;
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
98 import org.w3c.dom.Element;
348
635af5381a4d Added an abstract OutGenerator that should be the base class for all generators which create charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
99
635af5381a4d Added an abstract OutGenerator that should be the base class for all generators which create charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
100 /**
7043
06a9a241faac Factor out annotation handling code
Andre Heinecke <aheinecke@intevation.de>
parents: 7034
diff changeset
101 * Implementation of the OutGenerator interface for charts.
06a9a241faac Factor out annotation handling code
Andre Heinecke <aheinecke@intevation.de>
parents: 7034
diff changeset
102 * It should provide some basic things that equal in all chart types.
348
635af5381a4d Added an abstract OutGenerator that should be the base class for all generators which create charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
103 *
635af5381a4d Added an abstract OutGenerator that should be the base class for all generators which create charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
104 */
7033
0d91a6598a89 Add a copy of the ChartGenerator class.
Andre Heinecke <aheinecke@intevation.de>
parents: 6908
diff changeset
105 public abstract class ChartGenerator2 implements OutGenerator {
348
635af5381a4d Added an abstract OutGenerator that should be the base class for all generators which create charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
106
7033
0d91a6598a89 Add a copy of the ChartGenerator class.
Andre Heinecke <aheinecke@intevation.de>
parents: 6908
diff changeset
107 private static Logger logger = Logger.getLogger(ChartGenerator2.class);
348
635af5381a4d Added an abstract OutGenerator that should be the base class for all generators which create charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
108
7079
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
109 public static final boolean USE_NOP_GRAPHICS =
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
110 Boolean.getBoolean("info.rendering.nop.graphics");
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
111
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
112
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
113 public static final int DEFAULT_CHART_WIDTH = 600;
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
114 public static final int DEFAULT_CHART_HEIGHT = 400;
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
115 public static final String DEFAULT_CHART_FORMAT = "png";
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
116 public static final Color DEFAULT_GRID_COLOR = Color.GRAY;
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
117 public static final float DEFAULT_GRID_LINE_WIDTH = 0.3f;
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
118 public static final int DEFAULT_FONT_SIZE = 12;
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
119 public static final String DEFAULT_FONT_NAME = "Tahoma";
423
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
120
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
121
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
122 public static final String XPATH_CHART_SIZE =
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
123 "/art:action/art:attributes/art:size";
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
124
1735
5966a20fc72c Enabled support for PDF and SVG chart exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1684
diff changeset
125 public static final String XPATH_CHART_FORMAT =
5966a20fc72c Enabled support for PDF and SVG chart exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1684
diff changeset
126 "/art:action/art:attributes/art:format/@art:value";
5966a20fc72c Enabled support for PDF and SVG chart exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1684
diff changeset
127
652
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
128 public static final String XPATH_CHART_X_RANGE =
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
129 "/art:action/art:attributes/art:xrange";
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
130
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
131 public static final String XPATH_CHART_Y_RANGE =
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
132 "/art:action/art:attributes/art:yrange";
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
133
423
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
134
348
635af5381a4d Added an abstract OutGenerator that should be the base class for all generators which create charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
135 /** The document of the incoming out() request.*/
635af5381a4d Added an abstract OutGenerator that should be the base class for all generators which create charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
136 protected Document request;
635af5381a4d Added an abstract OutGenerator that should be the base class for all generators which create charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
137
635af5381a4d Added an abstract OutGenerator that should be the base class for all generators which create charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
138 /** The output stream where the data should be written to.*/
635af5381a4d Added an abstract OutGenerator that should be the base class for all generators which create charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
139 protected OutputStream out;
635af5381a4d Added an abstract OutGenerator that should be the base class for all generators which create charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
140
635af5381a4d Added an abstract OutGenerator that should be the base class for all generators which create charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
141 /** The CallContext object.*/
635af5381a4d Added an abstract OutGenerator that should be the base class for all generators which create charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
142 protected CallContext context;
635af5381a4d Added an abstract OutGenerator that should be the base class for all generators which create charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
143
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
144 protected D4EArtifactCollection collection;
3422
118fe1cc8cc8 OutGenerators got a setCollection() method; analogous to setMasterArtifact(). Registered the SQOverviewGenerator as OutGenerator for 'sq_overview' Output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3409
diff changeset
145
412
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
146 /** The artifact that is used to decorate the chart with meta information.*/
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
147 protected Artifact master;
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
148
2047
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
149 /** The settings that should be used during output creation.*/
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
150 protected Settings settings;
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
151
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
152 /** Map of datasets ("index"). */
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
153 protected SortedMap<Integer, AxisDataset> datasets;
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
154
3212
abc2db630815 Work in generalized annotations for chart generators
Christian Lins <christian.lins@intevation.de>
parents: 3184
diff changeset
155 /** List of annotations to insert in plot. */
5864
f2e46a668fe6 River artifacts: Renamed FLYSAnnotation to RiverAnnotation.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
156 protected List<RiverAnnotation> annotations = new ArrayList<RiverAnnotation>();
348
635af5381a4d Added an abstract OutGenerator that should be the base class for all generators which create charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
157
7068
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7043
diff changeset
158 protected abstract List<AxisSection> buildYAxisSections();
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
159
7077
0a337f0005c2 Extended init() of OutGenerator to take name of the out to serve.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7068
diff changeset
160 protected String outName;
0a337f0005c2 Extended init() of OutGenerator to take name of the out to serve.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7068
diff changeset
161
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
162 /**
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
163 * Default constructor that initializes internal data structures.
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
164 */
7033
0d91a6598a89 Add a copy of the ChartGenerator class.
Andre Heinecke <aheinecke@intevation.de>
parents: 6908
diff changeset
165 public ChartGenerator2() {
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
166 datasets = new TreeMap<Integer, AxisDataset>();
2233
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
167 }
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
168
3212
abc2db630815 Work in generalized annotations for chart generators
Christian Lins <christian.lins@intevation.de>
parents: 3184
diff changeset
169 /**
abc2db630815 Work in generalized annotations for chart generators
Christian Lins <christian.lins@intevation.de>
parents: 3184
diff changeset
170 * Adds annotations to list. The given annotation will be visible.
abc2db630815 Work in generalized annotations for chart generators
Christian Lins <christian.lins@intevation.de>
parents: 3184
diff changeset
171 */
5864
f2e46a668fe6 River artifacts: Renamed FLYSAnnotation to RiverAnnotation.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
172 public void addAnnotations(RiverAnnotation annotation) {
3212
abc2db630815 Work in generalized annotations for chart generators
Christian Lins <christian.lins@intevation.de>
parents: 3184
diff changeset
173 annotations.add(annotation);
abc2db630815 Work in generalized annotations for chart generators
Christian Lins <christian.lins@intevation.de>
parents: 3184
diff changeset
174 }
3245
dd3ddc8ecb14 Remove HYK references/code from ChartGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3242
diff changeset
175
3242
1dca41dba135 Move annotation code to base class ChartGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3227
diff changeset
176 /**
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
177 * This method needs to be implemented by concrete subclasses to create new
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
178 * instances of JFreeChart.
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
179 *
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
180 * @return a new instance of a JFreeChart.
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
181 */
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
182 public abstract JFreeChart generateChart();
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
183
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
184
4589
afd817b006b7 Documentation added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4444
diff changeset
185 /** For every outable (i.e. facets), this function is
afd817b006b7 Documentation added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4444
diff changeset
186 * called and handles the data accordingly. */
3278
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3270
diff changeset
187 @Override
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
188 public abstract void doOut(
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
189 ArtifactAndFacet bundle,
6905
1b35b2ddfc28 Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6900
diff changeset
190 ThemeDocument attr,
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
191 boolean visible);
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
192
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
193
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
194
2242
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
195 protected abstract Series getSeriesOf(XYDataset dataset, int idx);
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
196
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
197 /**
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
198 * Returns the default title of a chart.
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
199 *
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
200 * @return the default title of a chart.
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
201 */
2233
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
202 protected abstract String getDefaultChartTitle();
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
203
7084
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7079
diff changeset
204 protected abstract String getDefaultYAxisLabel(String axisName);
7068
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7043
diff changeset
205
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
206
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
207 /**
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
208 * Returns the default X-Axis label of a chart.
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
209 *
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
210 * @return the default X-Axis label of a chart.
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
211 */
2233
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
212 protected abstract String getDefaultXAxisLabel();
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
213
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
214 /**
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
215 * This method is used to create new AxisDataset instances which may differ
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
216 * in concrete subclasses.
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
217 *
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
218 * @param idx The index of an axis.
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
219 */
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
220 protected abstract AxisDataset createAxisDataset(int idx);
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
221
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
222
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
223 /**
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
224 * Combines the ranges of the X axis at index <i>idx</i>.
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
225 *
3270
4ac581062c40 Fix various documentation issues.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3257
diff changeset
226 * @param bounds A new Bounds.
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
227 * @param idx The index of the X axis that should be comined with
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
228 * <i>range</i>.
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
229 */
2587
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2422
diff changeset
230 protected abstract void combineXBounds(Bounds bounds, int idx);
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2422
diff changeset
231
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2422
diff changeset
232
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2422
diff changeset
233 /**
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2422
diff changeset
234 * Combines the ranges of the Y axis at index <i>idx</i>.
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2422
diff changeset
235 *
3270
4ac581062c40 Fix various documentation issues.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3257
diff changeset
236 * @param bounds A new Bounds.
3284
d9af29a4bb85 Various cosmetic doc fixes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3278
diff changeset
237 * @param index The index of the Y axis that should be comined with.
2587
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2422
diff changeset
238 * <i>range</i>.
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2422
diff changeset
239 */
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2422
diff changeset
240 protected abstract void combineYBounds(Bounds bounds, int index);
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
241
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
242
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
243 /**
2261
6aeb71517136 Registered an Info generator for historical discharge curves; made some adaptions in XYChartGenerator, ChartGenerator and TimeseriesChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2242
diff changeset
244 * This method is used to determine the ranges for axes at a given index.
6aeb71517136 Registered an Info generator for historical discharge curves; made some adaptions in XYChartGenerator, ChartGenerator and TimeseriesChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2242
diff changeset
245 *
6aeb71517136 Registered an Info generator for historical discharge curves; made some adaptions in XYChartGenerator, ChartGenerator and TimeseriesChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2242
diff changeset
246 * @param index The index of the axes at the plot.
6aeb71517136 Registered an Info generator for historical discharge curves; made some adaptions in XYChartGenerator, ChartGenerator and TimeseriesChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2242
diff changeset
247 *
6aeb71517136 Registered an Info generator for historical discharge curves; made some adaptions in XYChartGenerator, ChartGenerator and TimeseriesChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2242
diff changeset
248 * @return a Range[] with [xrange, yrange];
6aeb71517136 Registered an Info generator for historical discharge curves; made some adaptions in XYChartGenerator, ChartGenerator and TimeseriesChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2242
diff changeset
249 */
6aeb71517136 Registered an Info generator for historical discharge curves; made some adaptions in XYChartGenerator, ChartGenerator and TimeseriesChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2242
diff changeset
250 public abstract Range[] getRangesForAxis(int index);
6aeb71517136 Registered an Info generator for historical discharge curves; made some adaptions in XYChartGenerator, ChartGenerator and TimeseriesChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2242
diff changeset
251
2398
5d8d24984819 New abstract methods in ChartGenerator and moved a method from ChartGenerator to XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2395
diff changeset
252 public abstract Bounds getXBounds(int axis);
5d8d24984819 New abstract methods in ChartGenerator and moved a method from ChartGenerator to XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2395
diff changeset
253
5d8d24984819 New abstract methods in ChartGenerator and moved a method from ChartGenerator to XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2395
diff changeset
254 protected abstract void setXBounds(int axis, Bounds bounds);
5d8d24984819 New abstract methods in ChartGenerator and moved a method from ChartGenerator to XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2395
diff changeset
255
5d8d24984819 New abstract methods in ChartGenerator and moved a method from ChartGenerator to XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2395
diff changeset
256 public abstract Bounds getYBounds(int axis);
5d8d24984819 New abstract methods in ChartGenerator and moved a method from ChartGenerator to XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2395
diff changeset
257
5d8d24984819 New abstract methods in ChartGenerator and moved a method from ChartGenerator to XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2395
diff changeset
258 protected abstract void setYBounds(int axis, Bounds bounds);
5d8d24984819 New abstract methods in ChartGenerator and moved a method from ChartGenerator to XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2395
diff changeset
259
2261
6aeb71517136 Registered an Info generator for historical discharge curves; made some adaptions in XYChartGenerator, ChartGenerator and TimeseriesChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2242
diff changeset
260
6aeb71517136 Registered an Info generator for historical discharge curves; made some adaptions in XYChartGenerator, ChartGenerator and TimeseriesChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2242
diff changeset
261 /**
3409
97ad960f5579 Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents: 3296
diff changeset
262 * This method retrieves the chart subtitle by calling getChartSubtitle()
97ad960f5579 Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents: 3296
diff changeset
263 * and adds it as TextTitle to the chart.
97ad960f5579 Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents: 3296
diff changeset
264 * The default implementation of getChartSubtitle() returns the same
97ad960f5579 Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents: 3296
diff changeset
265 * as getDefaultChartSubtitle() which must be implemented by derived
97ad960f5579 Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents: 3296
diff changeset
266 * classes. If you want to add multiple subtitles to the chart override
97ad960f5579 Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents: 3296
diff changeset
267 * this method and add your subtitles manually.
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
268 *
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
269 * @param chart The JFreeChart chart object.
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
270 */
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
271 protected void addSubtitles(JFreeChart chart) {
3409
97ad960f5579 Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents: 3296
diff changeset
272 String subtitle = getChartSubtitle();
97ad960f5579 Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents: 3296
diff changeset
273
97ad960f5579 Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents: 3296
diff changeset
274 if (subtitle != null && subtitle.length() > 0) {
97ad960f5579 Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents: 3296
diff changeset
275 chart.addSubtitle(new TextTitle(subtitle));
97ad960f5579 Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents: 3296
diff changeset
276 }
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
277 }
2233
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
278
3242
1dca41dba135 Move annotation code to base class ChartGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3227
diff changeset
279 /**
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
280 * Generate chart.
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
281 */
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
282 @Override
7079
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
283 public void generate() throws IOException {
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
284
7033
0d91a6598a89 Add a copy of the ChartGenerator class.
Andre Heinecke <aheinecke@intevation.de>
parents: 6908
diff changeset
285 logger.debug("ChartGenerator2.generate");
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
286
7079
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
287 if (outName.indexOf("chartinfo") > 0) {
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
288 generateInfo();
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
289 }
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
290 else {
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
291 generateImage();
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
292 }
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
293 }
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
294
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
295
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
296 /** Generate only meta infos */
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
297 private void generateInfo() throws IOException {
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
298
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
299 logger.debug("ChartInfoGenerator2.generateInfo");
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
300
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
301 JFreeChart chart = generateChart();
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
302
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
303 int[] size = getSize();
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
304 if (size == null) {
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
305 size = getDefaultSize();
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
306 }
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
307
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
308 ChartRenderingInfo info = new ChartRenderingInfo();
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
309
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
310 long startTime = System.currentTimeMillis();
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
311
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
312 if (USE_NOP_GRAPHICS) {
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
313 BufferedImage image =
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
314 new BufferedImage(size[0], size[1], Transparency.BITMASK);
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
315
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
316 Graphics2D g2d = image.createGraphics();
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
317 Graphics2D nop = new NOPGraphics2D(g2d);
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
318
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
319 chart.draw(
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
320 nop,
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
321 new Rectangle2D.Double(0, 0, size[0], size[1]),
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
322 null,
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
323 info);
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
324
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
325 nop.dispose();
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
326 }
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
327 else {
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
328 chart.createBufferedImage(
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
329 size[0], size[1], Transparency.BITMASK, info);
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
330 }
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
331
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
332 long stopTime = System.currentTimeMillis();
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
333
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
334 if (logger.isDebugEnabled()) {
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
335 logger.debug("Rendering info took: " +
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
336 (stopTime-startTime) + "ms");
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
337 }
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
338
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
339
7084
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7079
diff changeset
340 InfoGeneratorHelper2 helper = new InfoGeneratorHelper2(this);
7079
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
341 Document doc = helper.createInfoDocument(chart, info);
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
342
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
343 XMLUtils.toStream(doc, out);
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
344 }
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
345
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
346 /** Generate the diagram as an image. */
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
347 private void generateImage() throws IOException {
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
348 logger.debug("ChartGenerator2.generateImage");
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
349
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
350 JFreeChart chart = generateChart();
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
351
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
352 String format = getFormat();
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
353 int[] size = getSize();
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
354
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
355 if (size == null) {
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
356 size = getExportDimension();
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
357 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
358
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
359 context.putContextValue("chart.width", size[0]);
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
360 context.putContextValue("chart.height", size[1]);
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
361
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
362 if (format.equals(ChartExportHelper.FORMAT_PNG)) {
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
363 context.putContextValue("chart.image.format", "png");
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
364
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
365 ChartExportHelper.exportImage(
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
366 out,
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
367 chart,
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
368 context);
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
369 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
370 else if (format.equals(ChartExportHelper.FORMAT_PDF)) {
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
371 preparePDFContext(context);
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
372
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
373 ChartExportHelper.exportPDF(
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
374 out,
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
375 chart,
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
376 context);
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
377 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
378 else if (format.equals(ChartExportHelper.FORMAT_SVG)) {
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
379 prepareSVGContext(context);
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
380
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
381 ChartExportHelper.exportSVG(
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
382 out,
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
383 chart,
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
384 context);
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
385 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
386 else if (format.equals(ChartExportHelper.FORMAT_CSV)) {
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
387 context.putContextValue("chart.image.format", "csv");
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
388
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
389 ChartExportHelper.exportCSV(
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
390 out,
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
391 chart,
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
392 context);
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
393 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
394 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
395
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
396
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
397 @Override
7077
0a337f0005c2 Extended init() of OutGenerator to take name of the out to serve.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7068
diff changeset
398 public void init(String outName, Document request, OutputStream out, CallContext context) {
7033
0d91a6598a89 Add a copy of the ChartGenerator class.
Andre Heinecke <aheinecke@intevation.de>
parents: 6908
diff changeset
399 logger.debug("ChartGenerator2.init");
348
635af5381a4d Added an abstract OutGenerator that should be the base class for all generators which create charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
400
7077
0a337f0005c2 Extended init() of OutGenerator to take name of the out to serve.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7068
diff changeset
401 this.outName = outName;
348
635af5381a4d Added an abstract OutGenerator that should be the base class for all generators which create charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
402 this.request = request;
635af5381a4d Added an abstract OutGenerator that should be the base class for all generators which create charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
403 this.out = out;
635af5381a4d Added an abstract OutGenerator that should be the base class for all generators which create charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
404 this.context = context;
635af5381a4d Added an abstract OutGenerator that should be the base class for all generators which create charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
405 }
635af5381a4d Added an abstract OutGenerator that should be the base class for all generators which create charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
406
635af5381a4d Added an abstract OutGenerator that should be the base class for all generators which create charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
407
4589
afd817b006b7 Documentation added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4444
diff changeset
408 /** Sets the master artifact. */
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
409 @Override
412
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
410 public void setMasterArtifact(Artifact master) {
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
411 this.master = master;
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
412 }
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
413
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
414
6422
cc96f7a9f9ef ChartGenerator: Added getter for master artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6101
diff changeset
415 /**
cc96f7a9f9ef ChartGenerator: Added getter for master artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6101
diff changeset
416 * Gets the master artifact.
cc96f7a9f9ef ChartGenerator: Added getter for master artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6101
diff changeset
417 * @return the master artifact.
cc96f7a9f9ef ChartGenerator: Added getter for master artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6101
diff changeset
418 */
cc96f7a9f9ef ChartGenerator: Added getter for master artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6101
diff changeset
419 public Artifact getMaster() {
cc96f7a9f9ef ChartGenerator: Added getter for master artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6101
diff changeset
420 return master;
cc96f7a9f9ef ChartGenerator: Added getter for master artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6101
diff changeset
421 }
cc96f7a9f9ef ChartGenerator: Added getter for master artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6101
diff changeset
422
cc96f7a9f9ef ChartGenerator: Added getter for master artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6101
diff changeset
423
4589
afd817b006b7 Documentation added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4444
diff changeset
424 /** Sets the collection. */
2047
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
425 @Override
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
426 public void setCollection(D4EArtifactCollection collection) {
3422
118fe1cc8cc8 OutGenerators got a setCollection() method; analogous to setMasterArtifact(). Registered the SQOverviewGenerator as OutGenerator for 'sq_overview' Output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3409
diff changeset
427 this.collection = collection;
118fe1cc8cc8 OutGenerators got a setCollection() method; analogous to setMasterArtifact(). Registered the SQOverviewGenerator as OutGenerator for 'sq_overview' Output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3409
diff changeset
428 }
118fe1cc8cc8 OutGenerators got a setCollection() method; analogous to setMasterArtifact(). Registered the SQOverviewGenerator as OutGenerator for 'sq_overview' Output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3409
diff changeset
429
118fe1cc8cc8 OutGenerators got a setCollection() method; analogous to setMasterArtifact(). Registered the SQOverviewGenerator as OutGenerator for 'sq_overview' Output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3409
diff changeset
430
118fe1cc8cc8 OutGenerators got a setCollection() method; analogous to setMasterArtifact(). Registered the SQOverviewGenerator as OutGenerator for 'sq_overview' Output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3409
diff changeset
431 @Override
2047
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
432 public void setSettings(Settings settings) {
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
433 this.settings = settings;
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
434 }
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
435
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
436
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
437 /**
2236
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
438 * Returns an instance of <i>ChartSettings</i> with a chart specific section
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
439 * but with no axes settings.
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
440 *
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
441 * @return an instance of <i>ChartSettings</i>.
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
442 */
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
443 @Override
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
444 public Settings getSettings() {
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
445 if (this.settings != null) {
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
446 return this.settings;
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
447 }
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
448
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
449 ChartSettings settings = new ChartSettings();
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
450
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
451 ChartSection chartSection = buildChartSection();
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
452 LegendSection legendSection = buildLegendSection();
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
453 ExportSection exportSection = buildExportSection();
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
454
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
455 settings.setChartSection(chartSection);
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
456 settings.setLegendSection(legendSection);
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
457 settings.setExportSection(exportSection);
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
458
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
459 List<AxisSection> axisSections = buildAxisSections();
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
460 for (AxisSection axisSection: axisSections) {
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
461 settings.addAxisSection(axisSection);
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
462 }
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
463
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
464 return settings;
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
465 }
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
466
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
467
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
468 /**
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
469 * Creates a new <i>ChartSection</i>.
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
470 *
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
471 * @return a new <i>ChartSection</i>.
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
472 */
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
473 protected ChartSection buildChartSection() {
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
474 ChartSection chartSection = new ChartSection();
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
475 chartSection.setTitle(getChartTitle());
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
476 chartSection.setSubtitle(getChartSubtitle());
3613
dd6e25980c91 Fixed typo.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3555
diff changeset
477 chartSection.setDisplayGrid(isGridVisible());
3615
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
478 chartSection.setDisplayLogo(showLogo());
3618
b7867c03760a Split logo placement property in two (vertical/horizontal).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3617
diff changeset
479 chartSection.setLogoVPlacement(logoVPlace());
b7867c03760a Split logo placement property in two (vertical/horizontal).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3617
diff changeset
480 chartSection.setLogoHPlacement(logoHPlace());
2236
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
481 return chartSection;
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
482 }
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
483
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
484
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
485 /**
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
486 * Creates a new <i>LegendSection</i>.
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
487 *
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
488 * @return a new <i>LegendSection</i>.
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
489 */
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
490 protected LegendSection buildLegendSection() {
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
491 LegendSection legendSection = new LegendSection();
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
492 legendSection.setVisibility(isLegendVisible());
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
493 legendSection.setFontSize(getLegendFontSize());
3150
40147510e2d7 Initialize legend aggregation threshold.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3134
diff changeset
494 legendSection.setAggregationThreshold(10);
2236
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
495 return legendSection;
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
496 }
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
497
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
498
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
499 /**
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
500 * Creates a new <i>ExportSection</i> with default values <b>WIDTH=600</b>
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
501 * and <b>HEIGHT=400</b>.
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
502 *
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
503 * @return a new <i>ExportSection</i>.
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
504 */
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
505 protected ExportSection buildExportSection() {
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
506 ExportSection exportSection = new ExportSection();
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
507 exportSection.setWidth(600);
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
508 exportSection.setHeight(400);
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
509 return exportSection;
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
510 }
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
511
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
512
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
513 /**
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
514 * Creates a list of Sections that contains all axes of the chart (including
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
515 * X and Y axes).
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
516 *
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
517 * @return a list of Sections for each axis in this chart.
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
518 */
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
519 protected List<AxisSection> buildAxisSections() {
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
520 List<AxisSection> axisSections = new ArrayList<AxisSection>();
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
521
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
522 axisSections.addAll(buildXAxisSections());
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
523 axisSections.addAll(buildYAxisSections());
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
524
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
525 return axisSections;
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
526 }
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
527
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
528
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
529 /**
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
530 * Creates a new Section for chart's X axis.
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
531 *
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
532 * @return a List that contains a Section for the X axis.
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
533 */
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
534 protected List<AxisSection> buildXAxisSections() {
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
535 List<AxisSection> axisSections = new ArrayList<AxisSection>();
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
536
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
537 String identifier = "X";
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
538
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
539 AxisSection axisSection = new AxisSection();
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
540 axisSection.setIdentifier(identifier);
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
541 axisSection.setLabel(getXAxisLabel());
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
542 axisSection.setFontSize(14);
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
543 axisSection.setFixed(false);
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
544
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
545 // XXX We are able to find better default ranges that [0,0], but the Y
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
546 // axes currently have no better ranges set.
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
547 axisSection.setUpperRange(0d);
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
548 axisSection.setLowerRange(0d);
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
549
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
550 axisSections.add(axisSection);
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
551
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
552 return axisSections;
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
553 }
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
554
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
555
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
556 /**
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
557 * Returns the <i>settings</i> as <i>ChartSettings</i>.
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
558 *
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
559 * @return the <i>settings</i> as <i>ChartSettings</i> or null, if
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
560 * <i>settings</i> is not an instance of <i>ChartSettings</i>.
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
561 */
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
562 public ChartSettings getChartSettings() {
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
563 if (settings instanceof ChartSettings) {
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
564 return (ChartSettings) settings;
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
565 }
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
566
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
567 return null;
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
568 }
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
569
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
570
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
571 /**
2047
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
572 * Returns the chart title provided by <i>settings</i>.
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
573 *
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
574 * @param settings A ChartSettings object.
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
575 *
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
576 * @return the title provided by <i>settings</i> or null if no
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
577 * <i>ChartSection</i> is provided by <i>settings</i>.
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
578 *
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
579 * @throws NullPointerException if <i>settings</i> is null.
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
580 */
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
581 public String getChartTitle(ChartSettings settings) {
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
582 ChartSection cs = settings.getChartSection();
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
583 return cs != null ? cs.getTitle() : null;
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
584 }
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
585
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
586
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
587 /**
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
588 * Returns the chart subtitle provided by <i>settings</i>.
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
589 *
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
590 * @param settings A ChartSettings object.
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
591 *
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
592 * @return the subtitle provided by <i>settings</i> or null if no
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
593 * <i>ChartSection</i> is provided by <i>settings</i>.
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
594 *
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
595 * @throws NullPointerException if <i>settings</i> is null.
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
596 */
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
597 public String getChartSubtitle(ChartSettings settings) {
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
598 ChartSection cs = settings.getChartSection();
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
599 return cs != null ? cs.getSubtitle() : null;
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
600 }
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
601
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
602
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
603 /**
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
604 * Returns a boolean object that determines if the chart grid should be
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
605 * visible or not. This information needs to be provided by <i>settings</i>,
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
606 * otherweise the default is true.
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
607 *
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
608 * @param settings A ChartSettings object.
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
609 *
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
610 * @return true, if the chart grid should be visible otherwise false.
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
611 *
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
612 * @throws NullPointerException if <i>settings</i> is null.
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
613 */
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
614 public boolean isGridVisible(ChartSettings settings) {
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
615 ChartSection cs = settings.getChartSection();
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
616 Boolean displayGrid = cs.getDisplayGrid();
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
617
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
618 return displayGrid != null ? displayGrid : true;
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
619 }
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
620
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
621
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
622 /**
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
623 * Returns a boolean object that determines if the chart legend should be
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
624 * visible or not. This information needs to be provided by <i>settings</i>,
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
625 * otherwise the default is true.
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
626 *
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
627 * @param settings A ChartSettings object.
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
628 *
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
629 * @return true, if the chart legend should be visible otherwise false.
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
630 *
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
631 * @throws NullPointerException if <i>settings</i> is null.
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
632 */
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
633 public boolean isLegendVisible(ChartSettings settings) {
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
634 LegendSection ls = settings.getLegendSection();
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
635 Boolean displayLegend = ls.getVisibility();
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
636
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
637 return displayLegend != null ? displayLegend : true;
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
638 }
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
639
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
640
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
641 /**
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
642 * Returns the legend font size specified in <i>settings</i> or null if no
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
643 * <i>LegendSection</i> is provided by <i>settings</i>.
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
644 *
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
645 * @param settings A ChartSettings object.
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
646 *
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
647 * @return the legend font size or null.
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
648 *
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
649 * @throws NullPointerException if <i>settings</i> is null.
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
650 */
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
651 public Integer getLegendFontSize(ChartSettings settings) {
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
652 LegendSection ls = settings.getLegendSection();
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
653 return ls != null ? ls.getFontSize() : null;
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
654 }
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
655
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
656
2233
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
657 /**
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
658 * Returns the title of a chart. The return value depends on the existence
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
659 * of ChartSettings: if there are ChartSettings set, this method returns the
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
660 * chart title provided by those settings. Otherwise, this method returns
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
661 * getDefaultChartTitle().
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
662 *
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
663 * @return the title of a chart.
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
664 */
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
665 protected String getChartTitle() {
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
666 ChartSettings chartSettings = getChartSettings();
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
667
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
668 if (chartSettings != null) {
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
669 return getChartTitle(chartSettings);
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
670 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
671
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
672 return getDefaultChartTitle();
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
673 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
674
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
675
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
676 /**
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
677 * Returns the subtitle of a chart. The return value depends on the
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
678 * existence of ChartSettings: if there are ChartSettings set, this method
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
679 * returns the chart title provided by those settings. Otherwise, this
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
680 * method returns getDefaultChartSubtitle().
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
681 *
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
682 * @return the subtitle of a chart.
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
683 */
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
684 protected String getChartSubtitle() {
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
685 ChartSettings chartSettings = getChartSettings();
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
686
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
687 if (chartSettings != null) {
7805
8c20f16ab650 Use the updated default subtitle or the 'old' one from chart settings.
Raimund Renkert <rrenkert@intevation.de>
parents: 7088
diff changeset
688 String subTitle = getChartSubtitle(chartSettings);
7877
43f18dc56c5a Fixed subtitle handling and added flowvelocity subtitle.
Raimund Renkert <rrenkert@intevation.de>
parents: 7805
diff changeset
689 if (subTitle == null) {
43f18dc56c5a Fixed subtitle handling and added flowvelocity subtitle.
Raimund Renkert <rrenkert@intevation.de>
parents: 7805
diff changeset
690 return getDefaultChartSubtitle();
43f18dc56c5a Fixed subtitle handling and added flowvelocity subtitle.
Raimund Renkert <rrenkert@intevation.de>
parents: 7805
diff changeset
691 }
7805
8c20f16ab650 Use the updated default subtitle or the 'old' one from chart settings.
Raimund Renkert <rrenkert@intevation.de>
parents: 7088
diff changeset
692 else {
8c20f16ab650 Use the updated default subtitle or the 'old' one from chart settings.
Raimund Renkert <rrenkert@intevation.de>
parents: 7088
diff changeset
693 return subTitle;
8c20f16ab650 Use the updated default subtitle or the 'old' one from chart settings.
Raimund Renkert <rrenkert@intevation.de>
parents: 7088
diff changeset
694 }
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
695 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
696
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
697 return getDefaultChartSubtitle();
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
698 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
699
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
700
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
701 /**
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
702 * This method always returns null. Override it in subclasses that require
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
703 * subtitles.
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
704 *
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
705 * @return null.
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
706 */
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
707 protected String getDefaultChartSubtitle() {
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
708 // Override this method in subclasses
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
709 return null;
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
710 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
711
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
712
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
713 /**
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
714 * This method is used to determine, if the chart's legend is visible or
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
715 * not. If a <i>settings</i> instance is set, this instance determines the
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
716 * visibility otherwise, this method returns true as default if no
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
717 * <i>settings</i> is set.
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
718 *
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
719 * @return true, if the legend should be visible, otherwise false.
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
720 */
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
721 protected boolean isLegendVisible() {
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
722 ChartSettings chartSettings = getChartSettings();
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
723 if (chartSettings != null) {
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
724 return isLegendVisible(chartSettings);
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
725 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
726
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
727 return true;
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
728 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
729
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
730
3618
b7867c03760a Split logo placement property in two (vertical/horizontal).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3617
diff changeset
731 /** Where to place the logo. */
b7867c03760a Split logo placement property in two (vertical/horizontal).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3617
diff changeset
732 protected String logoHPlace() {
3617
05deafdcbf39 sloppy logo placement property implementation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3615
diff changeset
733 ChartSettings chartSettings = getChartSettings();
05deafdcbf39 sloppy logo placement property implementation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3615
diff changeset
734 if (chartSettings != null) {
05deafdcbf39 sloppy logo placement property implementation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3615
diff changeset
735 ChartSection cs = chartSettings.getChartSection();
3618
b7867c03760a Split logo placement property in two (vertical/horizontal).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3617
diff changeset
736 String place = cs.getLogoHPlacement();
b7867c03760a Split logo placement property in two (vertical/horizontal).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3617
diff changeset
737
b7867c03760a Split logo placement property in two (vertical/horizontal).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3617
diff changeset
738 return place;
b7867c03760a Split logo placement property in two (vertical/horizontal).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3617
diff changeset
739 }
3639
695e8005e199 Default horizontal and vertical logo placement to top/center instead of 'none'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3618
diff changeset
740 return "center";
3618
b7867c03760a Split logo placement property in two (vertical/horizontal).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3617
diff changeset
741 }
b7867c03760a Split logo placement property in two (vertical/horizontal).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3617
diff changeset
742
b7867c03760a Split logo placement property in two (vertical/horizontal).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3617
diff changeset
743
b7867c03760a Split logo placement property in two (vertical/horizontal).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3617
diff changeset
744 /** Where to place the logo. */
b7867c03760a Split logo placement property in two (vertical/horizontal).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3617
diff changeset
745 protected String logoVPlace() {
b7867c03760a Split logo placement property in two (vertical/horizontal).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3617
diff changeset
746 ChartSettings chartSettings = getChartSettings();
b7867c03760a Split logo placement property in two (vertical/horizontal).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3617
diff changeset
747 if (chartSettings != null) {
b7867c03760a Split logo placement property in two (vertical/horizontal).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3617
diff changeset
748 ChartSection cs = chartSettings.getChartSection();
b7867c03760a Split logo placement property in two (vertical/horizontal).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3617
diff changeset
749 String place = cs.getLogoVPlacement();
3617
05deafdcbf39 sloppy logo placement property implementation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3615
diff changeset
750
05deafdcbf39 sloppy logo placement property implementation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3615
diff changeset
751 return place;
05deafdcbf39 sloppy logo placement property implementation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3615
diff changeset
752 }
3639
695e8005e199 Default horizontal and vertical logo placement to top/center instead of 'none'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3618
diff changeset
753 return "top";
3617
05deafdcbf39 sloppy logo placement property implementation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3615
diff changeset
754 }
05deafdcbf39 sloppy logo placement property implementation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3615
diff changeset
755
05deafdcbf39 sloppy logo placement property implementation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3615
diff changeset
756
3615
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
757 /** Return the logo id from settings. */
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
758 protected String showLogo(ChartSettings chartSettings) {
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
759 if (chartSettings != null) {
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
760 ChartSection cs = chartSettings.getChartSection();
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
761 String logo = cs.getDisplayLogo();
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
762
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
763 return logo;
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
764 }
3617
05deafdcbf39 sloppy logo placement property implementation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3615
diff changeset
765 return "none";
3615
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
766 }
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
767
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
768
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
769 /**
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
770 * This method is used to determine if a logo should be added to the plot.
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
771 *
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
772 * @return logo name (null if none).
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
773 */
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
774 protected String showLogo() {
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
775 ChartSettings chartSettings = getChartSettings();
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
776 return showLogo(chartSettings);
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
777 }
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
778
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
779
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
780 /**
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
781 * This method is used to determine the font size of the chart's legend. If
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
782 * a <i>settings</i> instance is set, this instance determines the font
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
783 * size, otherwise this method returns 12 as default if no <i>settings</i>
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
784 * is set or if it doesn't provide a legend font size.
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
785 *
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
786 * @return a legend font size.
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
787 */
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
788 protected int getLegendFontSize() {
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
789 Integer fontSize = null;
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
790
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
791 ChartSettings chartSettings = getChartSettings();
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
792 if (chartSettings != null) {
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
793 fontSize = getLegendFontSize(chartSettings);
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
794 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
795
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
796 return fontSize != null ? fontSize : DEFAULT_FONT_SIZE;
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
797 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
798
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
799
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
800 /**
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
801 * This method is used to determine if the resulting chart should display
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
802 * grid lines or not. <b>Note: this method always returns true!</b>
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
803 *
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
804 * @return true, if the chart should display grid lines, otherwise false.
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
805 */
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
806 protected boolean isGridVisible() {
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
807 return true;
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
808 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
809
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
810
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
811 /**
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
812 * Returns the X-Axis label of a chart.
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
813 *
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
814 * @return the X-Axis label of a chart.
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
815 */
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
816 protected String getXAxisLabel() {
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
817 ChartSettings chartSettings = getChartSettings();
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
818 if (chartSettings == null) {
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
819 return getDefaultXAxisLabel();
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
820 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
821
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
822 AxisSection as = chartSettings.getAxisSection("X");
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
823 if (as != null) {
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
824 String label = as.getLabel();
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
825
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
826 if (label != null) {
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
827 return label;
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
828 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
829 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
830
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
831 return getDefaultXAxisLabel();
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
832 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
833
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
834
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
835 /**
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
836 * This method returns the font size for the X axis. If the font size is
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
837 * specified in ChartSettings (if <i>chartSettings</i> is set), this size is
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
838 * returned. Otherwise the default font size 12 is returned.
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
839 *
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
840 * @return the font size for the x axis.
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
841 */
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
842 protected int getXAxisLabelFontSize() {
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
843 ChartSettings chartSettings = getChartSettings();
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
844 if (chartSettings == null) {
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
845 return DEFAULT_FONT_SIZE;
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
846 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
847
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
848 AxisSection as = chartSettings.getAxisSection("X");
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
849 Integer fontSize = as.getFontSize();
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
850
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
851 return fontSize != null ? fontSize : DEFAULT_FONT_SIZE;
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
852 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
853
7068
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7043
diff changeset
854 /**
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7043
diff changeset
855 * Glue between axis names and index.
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7043
diff changeset
856 */
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7043
diff changeset
857 protected abstract String axisIndexToName(int index);
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
858
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
859 /**
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
860 * This method returns the font size for an Y axis. If the font size is
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
861 * specified in ChartSettings (if <i>chartSettings</i> is set), this size is
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
862 * returned. Otherwise the default font size 12 is returned.
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
863 *
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
864 * @return the font size for the x axis.
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
865 */
7068
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7043
diff changeset
866 protected int getYAxisFontSize(int index) {
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
867 ChartSettings chartSettings = getChartSettings();
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
868 if (chartSettings == null) {
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
869 return DEFAULT_FONT_SIZE;
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
870 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
871
7068
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7043
diff changeset
872 AxisSection as = chartSettings.getAxisSection(axisIndexToName(index));
4376
3c8964855270 Avoid NullPointerExceptions if no settings are available
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4276
diff changeset
873 if (as == null) {
3c8964855270 Avoid NullPointerExceptions if no settings are available
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4276
diff changeset
874 return DEFAULT_FONT_SIZE;
3c8964855270 Avoid NullPointerExceptions if no settings are available
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4276
diff changeset
875 }
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
876 Integer fontSize = as.getFontSize();
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
877
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
878 return fontSize != null ? fontSize : DEFAULT_FONT_SIZE;
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
879 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
880
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
881 /**
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
882 * This method returns the export dimension specified in ChartSettings as
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
883 * int array [width,height].
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
884 *
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
885 * @return an int array with [width,height].
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
886 */
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
887 protected int[] getExportDimension() {
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
888 ChartSettings chartSettings = getChartSettings();
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
889 if (chartSettings == null) {
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
890 return new int[] { 600, 400 };
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
891 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
892
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
893 ExportSection export = chartSettings.getExportSection();
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
894 Integer width = export.getWidth();
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
895 Integer height = export.getHeight();
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
896
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
897 if (width != null && height != null) {
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
898 return new int[] { width, height };
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
899 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
900
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
901 return new int[] { 600, 400 };
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
902 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
903
7084
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7079
diff changeset
904 protected abstract String getYAxisLabel(String axisName);
2233
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
905
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
906 /**
2236
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
907 * This method searches for a specific axis in the <i>settings</i> if
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
908 * <i>settings</i> is set. If the axis was found, this method returns the
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
909 * specified axis range if the axis range is fixed. Otherwise, this method
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
910 * returns null.
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
911 *
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
912 * @param axisId The identifier of an axis.
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
913 *
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
914 * @return the specified axis range from <i>settings</i> if the axis is
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
915 * fixed, otherwise null.
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
916 */
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
917 public Range getRangeForAxisFromSettings(String axisId) {
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
918 ChartSettings chartSettings = getChartSettings();
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
919 if (chartSettings == null) {
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
920 return null;
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
921 }
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
922
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
923 AxisSection as = chartSettings.getAxisSection(axisId);
4376
3c8964855270 Avoid NullPointerExceptions if no settings are available
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4276
diff changeset
924
3c8964855270 Avoid NullPointerExceptions if no settings are available
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4276
diff changeset
925 if (as == null) {
3c8964855270 Avoid NullPointerExceptions if no settings are available
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4276
diff changeset
926 return null;
3c8964855270 Avoid NullPointerExceptions if no settings are available
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4276
diff changeset
927 }
3c8964855270 Avoid NullPointerExceptions if no settings are available
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4276
diff changeset
928
2236
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
929 Boolean fixed = as.isFixed();
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
930
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
931 if (fixed != null && fixed) {
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
932 Double upper = as.getUpperRange();
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
933 Double lower = as.getLowerRange();
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
934
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
935 if (upper != null && lower != null) {
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
936 return lower < upper
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
937 ? new Range(lower, upper)
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
938 : new Range(upper, lower);
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
939 }
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
940 }
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
941
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
942 return null;
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
943 }
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
944
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
945
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
946 /**
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
947 * Adds a new AxisDataset which contains <i>dataset</i> at index <i>idx</i>.
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
948 *
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
949 * @param dataset An XYDataset.
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
950 * @param idx The axis index.
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
951 * @param visible Determines, if the dataset should be visible or not.
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
952 */
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
953 public void addAxisDataset(XYDataset dataset, int idx, boolean visible) {
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
954 if (dataset == null || idx < 0) {
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
955 return;
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
956 }
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
957
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
958 AxisDataset axisDataset = getAxisDataset(idx);
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
959
2587
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2422
diff changeset
960 Bounds[] xyBounds = ChartHelper.getBounds(dataset);
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
961
2587
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2422
diff changeset
962 if (xyBounds == null) {
2242
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
963 logger.warn("Skip XYDataset for Axis (invalid ranges): " + idx);
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
964 return;
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
965 }
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
966
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
967 if (visible) {
2242
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
968 if (logger.isDebugEnabled()) {
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
969 logger.debug("Add new AxisDataset at index: " + idx);
2587
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2422
diff changeset
970 logger.debug("X extent: " + xyBounds[0]);
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2422
diff changeset
971 logger.debug("Y extent: " + xyBounds[1]);
2242
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
972 }
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
973
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
974 axisDataset.addDataset(dataset);
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
975 }
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
976
2587
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2422
diff changeset
977 combineXBounds(xyBounds[0], 0);
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2422
diff changeset
978 combineYBounds(xyBounds[1], idx);
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
979 }
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
980
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
981
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
982 /**
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
983 * This method grants access to the AxisDatasets stored in <i>datasets</i>.
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
984 * If no AxisDataset exists for index <i>idx</i>, a new AxisDataset is
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
985 * created using <i>createAxisDataset()</i>.
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
986 *
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
987 * @param idx The index of the desired AxisDataset.
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
988 *
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
989 * @return an existing or new AxisDataset.
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
990 */
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
991 public AxisDataset getAxisDataset(int idx) {
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
992 AxisDataset axisDataset = datasets.get(idx);
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
993
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
994 if (axisDataset == null) {
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
995 axisDataset = createAxisDataset(idx);
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
996 datasets.put(idx, axisDataset);
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
997 }
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
998
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
999 return axisDataset;
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
1000 }
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
1001
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
1002
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
1003 /**
2422
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1004 * Adjust some Stroke/Grid parameters for <i>plot</i>. The chart
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1005 * <i>Settings</i> are applied in this method.
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1006 *
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1007 * @param plot The XYPlot which is adapted.
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1008 */
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1009 protected void adjustPlot(XYPlot plot) {
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1010 Stroke gridStroke = new BasicStroke(
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1011 DEFAULT_GRID_LINE_WIDTH,
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1012 BasicStroke.CAP_BUTT,
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1013 BasicStroke.JOIN_MITER,
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1014 3.0f,
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1015 new float[] { 3.0f },
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1016 0.0f);
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1017
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1018 ChartSettings cs = getChartSettings();
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1019 boolean isGridVisible = cs != null ? isGridVisible(cs) : true;
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1020
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1021 plot.setDomainGridlineStroke(gridStroke);
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1022 plot.setDomainGridlinePaint(DEFAULT_GRID_COLOR);
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1023 plot.setDomainGridlinesVisible(isGridVisible);
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1024
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1025 plot.setRangeGridlineStroke(gridStroke);
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1026 plot.setRangeGridlinePaint(DEFAULT_GRID_COLOR);
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1027 plot.setRangeGridlinesVisible(isGridVisible);
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1028
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1029 plot.setAxisOffset(new RectangleInsets(0d, 0d, 0d, 0d));
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1030 }
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1031
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1032
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1033 /**
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1034 * This helper mehtod is used to extract the current locale from instance
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1035 * vairable <i>context</i>.
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1036 *
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1037 * @return the current locale.
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1038 */
1645
4a8251eae217 Bugfix: #68 Set number format of chart plot axes based on the CallMeta instance for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1104
diff changeset
1039 protected Locale getLocale() {
4a8251eae217 Bugfix: #68 Set number format of chart plot axes based on the CallMeta instance for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1104
diff changeset
1040 CallMeta meta = context.getMeta();
4a8251eae217 Bugfix: #68 Set number format of chart plot axes based on the CallMeta instance for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1104
diff changeset
1041 PreferredLocale[] prefs = meta.getLanguages();
4a8251eae217 Bugfix: #68 Set number format of chart plot axes based on the CallMeta instance for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1104
diff changeset
1042
4a8251eae217 Bugfix: #68 Set number format of chart plot axes based on the CallMeta instance for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1104
diff changeset
1043 int len = prefs != null ? prefs.length : 0;
4a8251eae217 Bugfix: #68 Set number format of chart plot axes based on the CallMeta instance for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1104
diff changeset
1044
4a8251eae217 Bugfix: #68 Set number format of chart plot axes based on the CallMeta instance for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1104
diff changeset
1045 Locale[] locales = new Locale[len];
4a8251eae217 Bugfix: #68 Set number format of chart plot axes based on the CallMeta instance for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1104
diff changeset
1046
4a8251eae217 Bugfix: #68 Set number format of chart plot axes based on the CallMeta instance for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1104
diff changeset
1047 for (int i = 0; i < len; i++) {
4a8251eae217 Bugfix: #68 Set number format of chart plot axes based on the CallMeta instance for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1104
diff changeset
1048 locales[i] = prefs[i].getLocale();
4a8251eae217 Bugfix: #68 Set number format of chart plot axes based on the CallMeta instance for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1104
diff changeset
1049 }
4a8251eae217 Bugfix: #68 Set number format of chart plot axes based on the CallMeta instance for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1104
diff changeset
1050
4a8251eae217 Bugfix: #68 Set number format of chart plot axes based on the CallMeta instance for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1104
diff changeset
1051 return meta.getPreferredLocale(locales);
4a8251eae217 Bugfix: #68 Set number format of chart plot axes based on the CallMeta instance for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1104
diff changeset
1052 }
4a8251eae217 Bugfix: #68 Set number format of chart plot axes based on the CallMeta instance for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1104
diff changeset
1053
4a8251eae217 Bugfix: #68 Set number format of chart plot axes based on the CallMeta instance for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1104
diff changeset
1054
4589
afd817b006b7 Documentation added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4444
diff changeset
1055 /**
afd817b006b7 Documentation added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4444
diff changeset
1056 * Look up \param key in i18n dictionary.
afd817b006b7 Documentation added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4444
diff changeset
1057 * @param key key for which to find i18nd version.
afd817b006b7 Documentation added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4444
diff changeset
1058 * @param def default, returned if lookup failed.
afd817b006b7 Documentation added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4444
diff changeset
1059 * @return value found in i18n dictionary, \param def if no value found.
afd817b006b7 Documentation added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4444
diff changeset
1060 */
7084
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7079
diff changeset
1061 public String msg(String key, String def) {
408
fc3ac59c3c8b Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 364
diff changeset
1062 return Resources.getMsg(context.getMeta(), key, def);
fc3ac59c3c8b Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 364
diff changeset
1063 }
fc3ac59c3c8b Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 364
diff changeset
1064
4589
afd817b006b7 Documentation added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4444
diff changeset
1065 /**
afd817b006b7 Documentation added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4444
diff changeset
1066 * Look up \param key in i18n dictionary.
afd817b006b7 Documentation added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4444
diff changeset
1067 * @param key key for which to find i18nd version.
afd817b006b7 Documentation added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4444
diff changeset
1068 * @return value found in i18n dictionary, key itself if failed.
afd817b006b7 Documentation added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4444
diff changeset
1069 */
7084
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7079
diff changeset
1070 public String msg(String key) {
2407
dce0cc856357 'Bezugslinien': Added axis labels matching the displayed data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2398
diff changeset
1071 return Resources.getMsg(context.getMeta(), key, key);
dce0cc856357 'Bezugslinien': Added axis labels matching the displayed data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2398
diff changeset
1072 }
408
fc3ac59c3c8b Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 364
diff changeset
1073
7084
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7079
diff changeset
1074 public String msg(String key, String def, Object[] args) {
412
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
1075 return Resources.getMsg(context.getMeta(), key, def, args);
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
1076 }
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
1077
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
1078
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
1079 protected String getRiverName() {
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
1080 D4EArtifact flys = (D4EArtifact) master;
412
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
1081
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5864
diff changeset
1082 River river = RiverUtils.getRiver(flys);
1104
9383a4608d9f Use FLYSUtils.getRiver instead of WINFOArtifact.getRiver.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1095
diff changeset
1083 return (river != null) ? river.getName() : "";
412
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
1084 }
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
1085
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
1086
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
1087 protected double[] getRange() {
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
1088 D4EArtifact flys = (D4EArtifact) master;
412
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
1089
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
1090 RangeAccess rangeAccess = new RangeAccess(flys);
4858
56fbdcdb7ff2 ChartGenerator, DurationCurveExporter: Updated to use RangeAccess instead of FLYSUtils.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4589
diff changeset
1091 return rangeAccess.getKmRange();
412
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
1092 }
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
1093
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
1094
423
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1095 /**
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1096 * Returns the size of a chart export as array which has been specified by
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1097 * the incoming request document.
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1098 *
2057
49b7c2b1a6a7 Make use of the export size for charts specified in ChartSettings if a chart export is requested.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2047
diff changeset
1099 * @return the size of a chart as [width, height] or null if no width or
49b7c2b1a6a7 Make use of the export size for charts specified in ChartSettings if a chart export is requested.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2047
diff changeset
1100 * height are given in the request document.
423
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1101 */
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1102 protected int[] getSize() {
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1103 int[] size = new int[2];
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1104
719
035c0095b427 Draw correction curve again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
1105 Element sizeEl = (Element)XMLUtils.xpath(
423
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1106 request,
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1107 XPATH_CHART_SIZE,
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1108 XPathConstants.NODE,
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1109 ArtifactNamespaceContext.INSTANCE);
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1110
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1111 if (sizeEl != null) {
719
035c0095b427 Draw correction curve again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
1112 String uri = ArtifactNamespaceContext.NAMESPACE_URI;
423
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1113
719
035c0095b427 Draw correction curve again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
1114 String w = sizeEl.getAttributeNS(uri, "width");
035c0095b427 Draw correction curve again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
1115 String h = sizeEl.getAttributeNS(uri, "height");
423
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1116
719
035c0095b427 Draw correction curve again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
1117 if (w.length() > 0 && h.length() > 0) {
423
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1118 try {
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1119 size[0] = Integer.parseInt(w);
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1120 size[1] = Integer.parseInt(h);
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1121 }
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1122 catch (NumberFormatException nfe) {
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1123 logger.warn("Wrong values for chart width/height.");
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1124 }
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1125 }
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1126 }
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1127
2057
49b7c2b1a6a7 Make use of the export size for charts specified in ChartSettings if a chart export is requested.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2047
diff changeset
1128 return size[0] > 0 && size[1] > 0 ? size : null;
423
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1129 }
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1130
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1131
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1132 /**
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1133 * This method returns the format specified in the <i>request</i> document
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1134 * or <i>DEFAULT_CHART_FORMAT</i> if no format is specified in
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1135 * <i>request</i>.
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1136 *
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1137 * @return the format used to export this chart.
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1138 */
1735
5966a20fc72c Enabled support for PDF and SVG chart exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1684
diff changeset
1139 protected String getFormat() {
5966a20fc72c Enabled support for PDF and SVG chart exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1684
diff changeset
1140 String format = (String) XMLUtils.xpath(
5966a20fc72c Enabled support for PDF and SVG chart exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1684
diff changeset
1141 request,
5966a20fc72c Enabled support for PDF and SVG chart exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1684
diff changeset
1142 XPATH_CHART_FORMAT,
5966a20fc72c Enabled support for PDF and SVG chart exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1684
diff changeset
1143 XPathConstants.STRING,
5966a20fc72c Enabled support for PDF and SVG chart exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1684
diff changeset
1144 ArtifactNamespaceContext.INSTANCE);
5966a20fc72c Enabled support for PDF and SVG chart exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1684
diff changeset
1145
5966a20fc72c Enabled support for PDF and SVG chart exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1684
diff changeset
1146 return format == null || format.length() == 0
5966a20fc72c Enabled support for PDF and SVG chart exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1684
diff changeset
1147 ? DEFAULT_CHART_FORMAT
5966a20fc72c Enabled support for PDF and SVG chart exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1684
diff changeset
1148 : format;
5966a20fc72c Enabled support for PDF and SVG chart exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1684
diff changeset
1149 }
5966a20fc72c Enabled support for PDF and SVG chart exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1684
diff changeset
1150
5966a20fc72c Enabled support for PDF and SVG chart exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1684
diff changeset
1151
1944
21a4d2c677a1 Changed doOut signature, side effect from blackboard feature (to come).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1768
diff changeset
1152 /**
2395
cd4fb19ab892 Some API changes in ChartGenerator and XYChartGenerator for fetching user specified zoom values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2321
diff changeset
1153 * Returns the X-Axis range as String array from request document.
4276
0aa42c9d58e9 Documentation in ChartGenerator added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4236
diff changeset
1154 * If the (x|y)range elements are not found in request document, return
0aa42c9d58e9 Documentation in ChartGenerator added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4236
diff changeset
1155 * null (i.e. not zoomed).
2395
cd4fb19ab892 Some API changes in ChartGenerator and XYChartGenerator for fetching user specified zoom values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2321
diff changeset
1156 *
4276
0aa42c9d58e9 Documentation in ChartGenerator added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4236
diff changeset
1157 * @return a String array with [lower, upper], null if not in document.
1944
21a4d2c677a1 Changed doOut signature, side effect from blackboard feature (to come).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1768
diff changeset
1158 */
2395
cd4fb19ab892 Some API changes in ChartGenerator and XYChartGenerator for fetching user specified zoom values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2321
diff changeset
1159 protected String[] getDomainAxisRangeFromRequest() {
719
035c0095b427 Draw correction curve again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
1160 Element xrange = (Element)XMLUtils.xpath(
652
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
1161 request,
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
1162 XPATH_CHART_X_RANGE,
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
1163 XPathConstants.NODE,
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
1164 ArtifactNamespaceContext.INSTANCE);
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
1165
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
1166 if (xrange == null) {
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
1167 return null;
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
1168 }
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
1169
719
035c0095b427 Draw correction curve again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
1170 String uri = ArtifactNamespaceContext.NAMESPACE_URI;
652
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
1171
719
035c0095b427 Draw correction curve again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
1172 String lower = xrange.getAttributeNS(uri, "from");
035c0095b427 Draw correction curve again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
1173 String upper = xrange.getAttributeNS(uri, "to");
652
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
1174
2395
cd4fb19ab892 Some API changes in ChartGenerator and XYChartGenerator for fetching user specified zoom values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2321
diff changeset
1175 return new String[] { lower, upper };
652
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
1176 }
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
1177
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
1178
4276
0aa42c9d58e9 Documentation in ChartGenerator added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4236
diff changeset
1179 /** Returns null if the (x|y)range-element was not found in request document.
0aa42c9d58e9 Documentation in ChartGenerator added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4236
diff changeset
1180 * This usally means that the axis are not manually zoomed, i.e. showing
0aa42c9d58e9 Documentation in ChartGenerator added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4236
diff changeset
1181 * full data extent. */
2398
5d8d24984819 New abstract methods in ChartGenerator and moved a method from ChartGenerator to XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2395
diff changeset
1182 protected String[] getValueAxisRangeFromRequest() {
719
035c0095b427 Draw correction curve again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
1183 Element yrange = (Element)XMLUtils.xpath(
652
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
1184 request,
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
1185 XPATH_CHART_Y_RANGE,
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
1186 XPathConstants.NODE,
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
1187 ArtifactNamespaceContext.INSTANCE);
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
1188
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
1189 if (yrange == null) {
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
1190 return null;
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
1191 }
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
1192
4433
5b8919ef601d Backed out changeset e8a4d2fd25cc
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4432
diff changeset
1193
719
035c0095b427 Draw correction curve again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
1194 String uri = ArtifactNamespaceContext.NAMESPACE_URI;
652
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
1195
719
035c0095b427 Draw correction curve again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
1196 String lower = yrange.getAttributeNS(uri, "from");
035c0095b427 Draw correction curve again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
1197 String upper = yrange.getAttributeNS(uri, "to");
652
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
1198
2398
5d8d24984819 New abstract methods in ChartGenerator and moved a method from ChartGenerator to XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2395
diff changeset
1199 return new String[] { lower, upper };
652
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
1200 }
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
1201
8fa4c5c9cd1a Charts are zoomed to a specified view if the attribute document for the chart creation contains an x and/or y range.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 423
diff changeset
1202
423
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1203 /**
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1204 * Returns the default size of a chart export as array.
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1205 *
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1206 * @return the default size of a chart as [width, height].
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1207 */
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1208 protected int[] getDefaultSize() {
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1209 return new int[] { DEFAULT_CHART_WIDTH, DEFAULT_CHART_HEIGHT };
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1210 }
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1211
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1212
1979
a7c437c9547e Added a getSettings() operation to OutGenerator - FLYSArtifactCollection will now evaluate all available Outputs and create initial Settings using OutGenerators if the Settings for an Output is missing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1948
diff changeset
1213 /**
2242
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1214 * Add datasets stored in instance variable <i>datasets</i> to plot.
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1215 * <i>datasets</i> actually stores instances of AxisDataset, so each of this
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1216 * datasets is mapped to a specific axis as well.
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1217 *
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1218 * @param plot plot to add datasets to.
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1219 */
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1220 protected void addDatasets(XYPlot plot) {
3155
74c974b10c75 Output code to trackdown the linecolor problem
Christian Lins <christian.lins@intevation.de>
parents: 3150
diff changeset
1221 logger.debug("addDatasets()");
3160
8c78c707aa2d Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3155
diff changeset
1222
2242
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1223 // AxisDatasets are sorted, but some might be empty.
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1224 // Thus, generate numbering on the fly.
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1225 int axisIndex = 0;
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1226 int datasetIndex = 0;
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1227
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1228 for (Map.Entry<Integer, AxisDataset> entry: datasets.entrySet()) {
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1229 if (!entry.getValue().isEmpty()) {
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1230 // Add axis and range information.
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1231 AxisDataset axisDataset = entry.getValue();
3155
74c974b10c75 Output code to trackdown the linecolor problem
Christian Lins <christian.lins@intevation.de>
parents: 3150
diff changeset
1232 NumberAxis axis = createYAxis(entry.getKey());
2242
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1233
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1234 plot.setRangeAxis(axisIndex, axis);
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1235
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1236 if (axis.getAutoRangeIncludesZero()) {
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1237 axisDataset.setRange(
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1238 Range.expandToInclude(axisDataset.getRange(), 0d));
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1239 }
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1240
2587
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2422
diff changeset
1241 setYBounds(axisIndex, expandPointRange(axisDataset.getRange()));
2242
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1242
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1243 // Add contained datasets, mapping to axis.
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1244 for (XYDataset dataset: axisDataset.getDatasets()) {
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1245 plot.setDataset(datasetIndex, dataset);
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1246 plot.mapDatasetToRangeAxis(datasetIndex, axisIndex);
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1247
2677
57d6670ddda3 Minimal cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2590
diff changeset
1248 applyThemes(plot, dataset,
2242
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1249 datasetIndex,
2677
57d6670ddda3 Minimal cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2590
diff changeset
1250 axisDataset.isArea(dataset));
2242
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1251
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1252 datasetIndex++;
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1253 }
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1254
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1255 axisDataset.setPlotAxisIndex(axisIndex);
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1256 axisIndex++;
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1257 }
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1258 }
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1259 }
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1260
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1261
2677
57d6670ddda3 Minimal cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2590
diff changeset
1262 /**
2242
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1263 * @param idx "index" of dataset/series (first dataset to be drawn has
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1264 * index 0), correlates with renderer index.
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1265 * @param isArea true if the series describes an area and shall be rendered
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1266 * as such.
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1267 */
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1268 protected void applyThemes(
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1269 XYPlot plot,
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1270 XYDataset series,
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1271 int idx,
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1272 boolean isArea
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1273 ) {
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1274 if (isArea) {
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1275 applyAreaTheme(plot, (StyledAreaSeriesCollection) series, idx);
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1276 }
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1277 else {
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1278 applyLineTheme(plot, series, idx);
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1279 }
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1280 }
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1281
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1282
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1283 /**
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1284 * This method applies the themes defined in the series itself. Therefore,
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1285 * <i>StyledXYSeries.applyTheme()</i> is called, which modifies the renderer
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1286 * for the series.
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1287 *
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1288 * @param plot The plot.
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1289 * @param dataset The XYDataset which needs to support Series objects.
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1290 * @param idx The index of the renderer / dataset.
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1291 */
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1292 protected void applyLineTheme(XYPlot plot, XYDataset dataset, int idx) {
2321
991e4a5df323 Enabled styling in timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
1293 logger.debug("Apply LineTheme for dataset at index: " + idx);
991e4a5df323 Enabled styling in timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
1294
2242
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1295 LegendItemCollection lic = new LegendItemCollection();
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1296 LegendItemCollection anno = plot.getFixedLegendItems();
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1297
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1298 Font legendFont = createLegendLabelFont();
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1299
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1300 XYLineAndShapeRenderer renderer = createRenderer(plot, idx);
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1301
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1302 for (int s = 0, num = dataset.getSeriesCount(); s < num; s++) {
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1303 Series series = getSeriesOf(dataset, s);
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1304
2321
991e4a5df323 Enabled styling in timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
1305 if (series instanceof StyledSeries) {
991e4a5df323 Enabled styling in timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
1306 Style style = ((StyledSeries) series).getStyle();
991e4a5df323 Enabled styling in timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
1307 style.applyTheme(renderer, s);
2242
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1308 }
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1309
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1310 // special case: if there is just one single item, we need to enable
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1311 // points for this series, otherwise we would not see anything in
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1312 // the chart area.
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1313 if (series.getItemCount() == 1) {
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1314 renderer.setSeriesShapesVisible(s, true);
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1315 }
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1316
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1317 LegendItem legendItem = renderer.getLegendItem(idx, s);
3169
b6da650b0718 FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3167
diff changeset
1318 if (legendItem.getLabel().endsWith(" ") ||
b6da650b0718 FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3167
diff changeset
1319 legendItem.getLabel().endsWith("interpol")) {
3134
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3088
diff changeset
1320 legendItem = null;
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3088
diff changeset
1321 }
3167
6f1a102ec14a Do not add entries ending with " " to legend.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3160
diff changeset
1322
2242
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1323 if (legendItem != null) {
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1324 legendItem.setLabelFont(legendFont);
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1325 lic.add(legendItem);
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1326 }
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1327 else {
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1328 logger.warn("Could not get LegentItem for renderer: "
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1329 + idx + ", series-idx " + s);
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1330 }
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1331 }
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1332
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1333 if (anno != null) {
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1334 lic.addAll(anno);
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1335 }
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1336
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1337 plot.setFixedLegendItems(lic);
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1338
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1339 plot.setRenderer(idx, renderer);
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1340 }
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1341
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1342
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1343 /**
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1344 * @param plot The plot.
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1345 * @param area A StyledAreaSeriesCollection object.
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1346 * @param idx The index of the dataset.
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1347 */
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1348 protected void applyAreaTheme(
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1349 XYPlot plot,
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1350 StyledAreaSeriesCollection area,
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1351 int idx
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1352 ) {
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1353 LegendItemCollection lic = new LegendItemCollection();
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1354 LegendItemCollection anno = plot.getFixedLegendItems();
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1355
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1356 Font legendFont = createLegendLabelFont();
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1357
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1358 logger.debug("Registering an 'area'renderer at idx: " + idx);
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1359
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1360 StableXYDifferenceRenderer dRenderer =
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1361 new StableXYDifferenceRenderer();
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1362
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1363 if (area.getMode() == StyledAreaSeriesCollection.FILL_MODE.UNDER) {
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1364 dRenderer.setPositivePaint(createTransparentPaint());
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1365 }
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1366
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1367 plot.setRenderer(idx, dRenderer);
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1368
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1369 area.applyTheme(dRenderer);
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1370
3785
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3639
diff changeset
1371 // i18n
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3639
diff changeset
1372 dRenderer.setAreaLabelNumberFormat(Formatter.getFormatter(context.getMeta(), 2, 4));
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3639
diff changeset
1373
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3639
diff changeset
1374 dRenderer.setAreaLabelTemplate(Resources.getMsg(
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3639
diff changeset
1375 context.getMeta(), "area.label.template", "Area=%sm2"));
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3639
diff changeset
1376
2242
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1377 LegendItem legendItem = dRenderer.getLegendItem(idx, 0);
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1378 if (legendItem != null) {
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1379 legendItem.setLabelFont(legendFont);
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1380 lic.add(legendItem);
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1381 }
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1382 else {
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1383 logger.warn("Could not get LegentItem for renderer: "
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1384 + idx + ", series-idx " + 0);
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1385 }
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1386
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1387 if (anno != null) {
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1388 lic.addAll(anno);
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1389 }
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1390
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1391 plot.setFixedLegendItems(lic);
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1392 }
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1393
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1394
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1395 /**
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1396 * Expands a given range if it collapses into one point.
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1397 *
3270
4ac581062c40 Fix various documentation issues.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3257
diff changeset
1398 * @param range Range to be expanded if upper == lower bound.
3248
4eb91fb1e73e Fix weird code with help of new ChartHelper.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3245
diff changeset
1399 *
4eb91fb1e73e Fix weird code with help of new ChartHelper.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3245
diff changeset
1400 * @return Bounds of point plus 5 percent in each direction.
2242
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1401 */
2587
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2422
diff changeset
1402 private Bounds expandPointRange(Range range) {
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2422
diff changeset
1403 if (range == null) {
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2422
diff changeset
1404 return null;
2242
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1405 }
2587
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2422
diff changeset
1406 else if (range.getLowerBound() == range.getUpperBound()) {
3248
4eb91fb1e73e Fix weird code with help of new ChartHelper.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3245
diff changeset
1407 Range expandedRange = ChartHelper.expandRange(range, 5d);
4eb91fb1e73e Fix weird code with help of new ChartHelper.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3245
diff changeset
1408 return new DoubleBounds(expandedRange.getLowerBound(), expandedRange.getUpperBound());
2587
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2422
diff changeset
1409 }
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2422
diff changeset
1410
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2422
diff changeset
1411 return new DoubleBounds(range.getLowerBound(), range.getUpperBound());
2242
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1412 }
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1413
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1414
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1415 /**
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1416 * Creates a new instance of EnhancedLineAndShapeRenderer.
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1417 *
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1418 * @param plot The plot which is set for the new renderer.
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1419 * @param idx This value is not used in the current implementation.
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1420 *
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1421 * @return a new instance of EnhancedLineAndShapeRenderer.
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1422 */
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1423 protected XYLineAndShapeRenderer createRenderer(XYPlot plot, int idx) {
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1424 logger.debug("Create EnhancedLineAndShapeRenderer for idx: " + idx);
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1425
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1426 EnhancedLineAndShapeRenderer r =
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1427 new EnhancedLineAndShapeRenderer(true, false);
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1428
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1429 r.setPlot(plot);
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1430
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1431 return r;
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1432 }
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1433
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1434
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1435 /**
2233
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
1436 * Creates a new instance of <i>IdentifiableNumberAxis</i>.
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
1437 *
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
1438 * @param idx The index of the new axis.
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
1439 * @param label The label of the new axis.
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
1440 *
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
1441 * @return an instance of IdentifiableNumberAxis.
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
1442 */
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
1443 protected NumberAxis createNumberAxis(int idx, String label) {
7068
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7043
diff changeset
1444 return new IdentifiableNumberAxis(axisIndexToName(idx), label);
2233
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
1445 }
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1446
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1447
2236
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1448 /**
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
1449 * Create Y (range) axis for given index.
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
1450 * Shall be overriden by subclasses.
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
1451 */
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
1452 protected NumberAxis createYAxis(int index) {
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
1453
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
1454 Font labelFont = new Font(
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
1455 DEFAULT_FONT_NAME,
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
1456 Font.BOLD,
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
1457 getYAxisFontSize(index));
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
1458
7084
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7079
diff changeset
1459 String axisName = axisIndexToName(index);
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7079
diff changeset
1460
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
1461 IdentifiableNumberAxis axis = new IdentifiableNumberAxis(
7084
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7079
diff changeset
1462 axisName, getYAxisLabel(axisName));
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
1463
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
1464 axis.setAutoRangeIncludesZero(false);
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
1465 axis.setLabelFont(labelFont);
2590
d75b427da50a #522 Modified axes creation: label and tick label fonts will now always be the same.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2587
diff changeset
1466 axis.setTickLabelFont(labelFont);
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
1467
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
1468 return axis;
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
1469 }
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
1470
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
1471
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
1472 /**
2236
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1473 * Creates a new LegendItem with <i>name</i> and font provided by
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1474 * <i>createLegendLabelFont()</i>.
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1475 *
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1476 * @param theme The theme of the chart line.
3270
4ac581062c40 Fix various documentation issues.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3257
diff changeset
1477 * @param name The displayed name of the item.
2236
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1478 *
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1479 * @return a new LegendItem instance.
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1480 */
6905
1b35b2ddfc28 Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6900
diff changeset
1481 public LegendItem createLegendItem(ThemeDocument theme, String name) {
2236
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1482 // OPTIMIZE Pass font, parsed Theme items.
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1483
6908
819481cc9195 Artifacts: ThemeDocument. The bloody part: Removal of the XPaths. Now the theme XML document is scanned once(!) at construction time for field values and the resulting key/value pairs are store in a map.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6906
diff changeset
1484 Color color = theme.parseLineColorField();
819481cc9195 Artifacts: ThemeDocument. The bloody part: Removal of the XPaths. Now the theme XML document is scanned once(!) at construction time for field values and the resulting key/value pairs are store in a map.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6906
diff changeset
1485 if (color == null) {
819481cc9195 Artifacts: ThemeDocument. The bloody part: Removal of the XPaths. Now the theme XML document is scanned once(!) at construction time for field values and the resulting key/value pairs are store in a map.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6906
diff changeset
1486 color = Color.BLACK;
819481cc9195 Artifacts: ThemeDocument. The bloody part: Removal of the XPaths. Now the theme XML document is scanned once(!) at construction time for field values and the resulting key/value pairs are store in a map.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6906
diff changeset
1487 }
819481cc9195 Artifacts: ThemeDocument. The bloody part: Removal of the XPaths. Now the theme XML document is scanned once(!) at construction time for field values and the resulting key/value pairs are store in a map.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6906
diff changeset
1488
2236
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1489 LegendItem legendItem = new LegendItem(name, color);
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1490
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1491 legendItem.setLabelFont(createLegendLabelFont());
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1492 return legendItem;
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1493 }
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1494
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1495
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1496 /**
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1497 * Creates Font (Family and size) to use when creating Legend Items. The
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1498 * font size depends in the return value of <i>getLegendFontSize()</i>.
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1499 *
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1500 * @return a new Font instance with <i>DEFAULT_FONT_NAME</i>.
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1501 */
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1502 protected Font createLegendLabelFont() {
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1503 return new Font(
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1504 DEFAULT_FONT_NAME,
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1505 Font.PLAIN,
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1506 getLegendFontSize()
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1507 );
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1508 }
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1509
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1510
2242
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1511 /**
3184
12440c6b8b66 Refactored legend item aggregation again.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3169
diff changeset
1512 * Create new legend entries, dependent on settings.
12440c6b8b66 Refactored legend item aggregation again.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3169
diff changeset
1513 * @param plot The plot for which to modify the legend.
12440c6b8b66 Refactored legend item aggregation again.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3169
diff changeset
1514 */
12440c6b8b66 Refactored legend item aggregation again.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3169
diff changeset
1515 public void aggregateLegendEntries(XYPlot plot) {
12440c6b8b66 Refactored legend item aggregation again.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3169
diff changeset
1516 int AGGR_THRESHOLD = 0;
12440c6b8b66 Refactored legend item aggregation again.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3169
diff changeset
1517
3296
45af081061e7 Added overview output for sq relation. Currently the overview generator is
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3284
diff changeset
1518 if (getChartSettings() == null) {
45af081061e7 Added overview output for sq relation. Currently the overview generator is
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3284
diff changeset
1519 return;
45af081061e7 Added overview output for sq relation. Currently the overview generator is
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3284
diff changeset
1520 }
3184
12440c6b8b66 Refactored legend item aggregation again.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3169
diff changeset
1521 Integer threshold = getChartSettings().getLegendSection()
12440c6b8b66 Refactored legend item aggregation again.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3169
diff changeset
1522 .getAggregationThreshold();
12440c6b8b66 Refactored legend item aggregation again.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3169
diff changeset
1523
12440c6b8b66 Refactored legend item aggregation again.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3169
diff changeset
1524 AGGR_THRESHOLD = (threshold != null) ? threshold.intValue() : 0;
12440c6b8b66 Refactored legend item aggregation again.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3169
diff changeset
1525
12440c6b8b66 Refactored legend item aggregation again.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3169
diff changeset
1526 LegendProcessor.aggregateLegendEntries(plot, AGGR_THRESHOLD);
12440c6b8b66 Refactored legend item aggregation again.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3169
diff changeset
1527 }
12440c6b8b66 Refactored legend item aggregation again.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3169
diff changeset
1528
12440c6b8b66 Refactored legend item aggregation again.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3169
diff changeset
1529
12440c6b8b66 Refactored legend item aggregation again.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3169
diff changeset
1530 /**
2242
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1531 * Returns a transparently textured paint.
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1532 *
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1533 * @return a transparently textured paint.
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1534 */
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1535 protected static Paint createTransparentPaint() {
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1536 // TODO why not use a transparent color?
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1537 BufferedImage texture = new BufferedImage(
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1538 1, 1, BufferedImage.TYPE_4BYTE_ABGR);
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1539
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1540 return new TexturePaint(
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1541 texture, new Rectangle2D.Double(0d, 0d, 0d, 0d));
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1542 }
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1543
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
1544
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1545 protected void preparePDFContext(CallContext context) {
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1546 int[] dimension = getExportDimension();
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1547
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1548 context.putContextValue("chart.width", dimension[0]);
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1549 context.putContextValue("chart.height", dimension[1]);
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1550 context.putContextValue("chart.marginLeft", 5f);
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1551 context.putContextValue("chart.marginRight", 5f);
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1552 context.putContextValue("chart.marginTop", 5f);
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1553 context.putContextValue("chart.marginBottom", 5f);
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1554 context.putContextValue(
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1555 "chart.page.format",
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1556 ChartExportHelper.DEFAULT_PAGE_SIZE);
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1557 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1558
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1559
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1560 protected void prepareSVGContext(CallContext context) {
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1561 int[] dimension = getExportDimension();
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1562
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1563 context.putContextValue("chart.width", dimension[0]);
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1564 context.putContextValue("chart.height", dimension[1]);
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1565 context.putContextValue(
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1566 "chart.encoding",
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1567 ChartExportHelper.DEFAULT_ENCODING);
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1568 }
4444
47d50572844a Add method to a access the CallContext of a ChartGenerator
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4433
diff changeset
1569
47d50572844a Add method to a access the CallContext of a ChartGenerator
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4433
diff changeset
1570 /**
47d50572844a Add method to a access the CallContext of a ChartGenerator
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4433
diff changeset
1571 * Retuns the call context. May be null if init hasn't been called yet.
47d50572844a Add method to a access the CallContext of a ChartGenerator
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4433
diff changeset
1572 *
47d50572844a Add method to a access the CallContext of a ChartGenerator
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4433
diff changeset
1573 * @return the CallContext instance
47d50572844a Add method to a access the CallContext of a ChartGenerator
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4433
diff changeset
1574 */
47d50572844a Add method to a access the CallContext of a ChartGenerator
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4433
diff changeset
1575 public CallContext getCallContext() {
47d50572844a Add method to a access the CallContext of a ChartGenerator
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4433
diff changeset
1576 return context;
47d50572844a Add method to a access the CallContext of a ChartGenerator
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4433
diff changeset
1577 }
348
635af5381a4d Added an abstract OutGenerator that should be the base class for all generators which create charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1578 }

http://dive4elements.wald.intevation.org