annotate artifacts/src/main/java/org/dive4elements/river/exports/ChartGenerator2.java @ 7079:48e30e2c5db9 generator-refactoring

ChartGenerator2 can be used as ChartInfoGenerator, too.
author Sascha L. Teichmann <teichmann@intevation.de>
date Fri, 20 Sep 2013 17:00:59 +0200
parents 0a337f0005c2
children f0731aa7b735
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.LineStyle;
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
72 import org.dive4elements.river.themes.TextStyle;
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
73 import org.dive4elements.river.themes.ThemeDocument;
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
74
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
75 import org.dive4elements.river.utils.Formatter;
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
76 import org.dive4elements.river.utils.RiverUtils;
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
77
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
78 import org.jfree.chart.ChartRenderingInfo;
3257
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
79 import org.jfree.chart.JFreeChart;
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
80 import org.jfree.chart.LegendItem;
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
81 import org.jfree.chart.LegendItemCollection;
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.axis.NumberAxis;
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.plot.XYPlot;
7079
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
86
3257
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
87 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
88
3409
97ad960f5579 Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents: 3296
diff changeset
89 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
90
3257
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
91 import org.jfree.data.Range;
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.general.Series;
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.data.xy.XYDataset;
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.jfree.ui.RectangleInsets;
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
98 import org.jfree.ui.TextAnchor;
7079
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
99
3257
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
100 import org.w3c.dom.Document;
2aca387333d6 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3250
diff changeset
101 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
102
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 /**
7043
06a9a241faac Factor out annotation handling code
Andre Heinecke <aheinecke@intevation.de>
parents: 7034
diff changeset
104 * Implementation of the OutGenerator interface for charts.
06a9a241faac Factor out annotation handling code
Andre Heinecke <aheinecke@intevation.de>
parents: 7034
diff changeset
105 * 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
106 *
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
107 */
7033
0d91a6598a89 Add a copy of the ChartGenerator class.
Andre Heinecke <aheinecke@intevation.de>
parents: 6908
diff changeset
108 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
109
7033
0d91a6598a89 Add a copy of the ChartGenerator class.
Andre Heinecke <aheinecke@intevation.de>
parents: 6908
diff changeset
110 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
111
7079
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
112 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
113 Boolean.getBoolean("info.rendering.nop.graphics");
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
114
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
115
2234
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 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
117 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
118 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
119 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
120 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
121 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
122 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
123
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
124
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
125 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
126 "/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
127
1735
5966a20fc72c Enabled support for PDF and SVG chart exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1684
diff changeset
128 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
129 "/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
130
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
131 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
132 "/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
133
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
134 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
135 "/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
136
423
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
137
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
138 /** 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
139 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
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 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
142 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
143
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
144 /** 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
145 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
146
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
147 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
148
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
149 /** 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
150 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
151
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
152 /** 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
153 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
154
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
155 /** 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
156 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
157
3212
abc2db630815 Work in generalized annotations for chart generators
Christian Lins <christian.lins@intevation.de>
parents: 3184
diff changeset
158 /** 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
159 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
160
7068
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7043
diff changeset
161 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
162
7077
0a337f0005c2 Extended init() of OutGenerator to take name of the out to serve.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7068
diff changeset
163 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
164
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
165 /**
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 * 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
167 */
7033
0d91a6598a89 Add a copy of the ChartGenerator class.
Andre Heinecke <aheinecke@intevation.de>
parents: 6908
diff changeset
168 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
169 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
170 }
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
171
3212
abc2db630815 Work in generalized annotations for chart generators
Christian Lins <christian.lins@intevation.de>
parents: 3184
diff changeset
172 /**
abc2db630815 Work in generalized annotations for chart generators
Christian Lins <christian.lins@intevation.de>
parents: 3184
diff changeset
173 * 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
174 */
5864
f2e46a668fe6 River artifacts: Renamed FLYSAnnotation to RiverAnnotation.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
175 public void addAnnotations(RiverAnnotation annotation) {
3212
abc2db630815 Work in generalized annotations for chart generators
Christian Lins <christian.lins@intevation.de>
parents: 3184
diff changeset
176 annotations.add(annotation);
abc2db630815 Work in generalized annotations for chart generators
Christian Lins <christian.lins@intevation.de>
parents: 3184
diff changeset
177 }
3245
dd3ddc8ecb14 Remove HYK references/code from ChartGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3242
diff changeset
178
3242
1dca41dba135 Move annotation code to base class ChartGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3227
diff changeset
179 /**
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
180 * 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
181 * 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
182 *
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
183 * @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
184 */
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
185 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
186
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
187
4589
afd817b006b7 Documentation added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4444
diff changeset
188 /** For every outable (i.e. facets), this function is
afd817b006b7 Documentation added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4444
diff changeset
189 * 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
190 @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
191 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
192 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
193 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
194 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
195
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
196
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
197
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
198 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
199
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
200 /**
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
201 * 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
202 *
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
203 * @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
204 */
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
205 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
206
7068
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7043
diff changeset
207 /**
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7043
diff changeset
208 * Returns the default Y-Axis label of a chart.
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7043
diff changeset
209 *
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7043
diff changeset
210 * @return the default Y-Axis label of a chart.
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7043
diff changeset
211 */
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7043
diff changeset
212 protected abstract String getDefaultYAxisLabel(int index);
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7043
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
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
215 /**
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
216 * 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
217 *
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
218 * @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
219 */
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
220 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
221
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
222 /**
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
223 * 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
224 * 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
225 *
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
226 * @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
227 */
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 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
229
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
230
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
231 /**
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
232 * 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
233 *
3270
4ac581062c40 Fix various documentation issues.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3257
diff changeset
234 * @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
235 * @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
236 * <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
237 */
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 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
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
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2422
diff changeset
241 /**
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2422
diff changeset
242 * 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
243 *
3270
4ac581062c40 Fix various documentation issues.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3257
diff changeset
244 * @param bounds A new Bounds.
3284
d9af29a4bb85 Various cosmetic doc fixes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3278
diff changeset
245 * @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
246 * <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
247 */
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2422
diff changeset
248 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
249
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
250
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
251 /**
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
252 * 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
253 *
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
254 * @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
255 *
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
256 * @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
257 */
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
258 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
259
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
260 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
261
5d8d24984819 New abstract methods in ChartGenerator and moved a method from ChartGenerator to XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2395
diff changeset
262 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
263
5d8d24984819 New abstract methods in ChartGenerator and moved a method from ChartGenerator to XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2395
diff changeset
264 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
265
5d8d24984819 New abstract methods in ChartGenerator and moved a method from ChartGenerator to XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2395
diff changeset
266 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
267
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
268
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
269 /**
3409
97ad960f5579 Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents: 3296
diff changeset
270 * 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
271 * 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
272 * 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
273 * 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
274 * 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
275 * 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
276 *
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
277 * @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
278 */
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
279 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
280 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
281
97ad960f5579 Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents: 3296
diff changeset
282 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
283 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
284 }
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
285 }
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
286
3242
1dca41dba135 Move annotation code to base class ChartGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3227
diff changeset
287 /**
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
288 * 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
289 */
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
290 @Override
7079
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
291 public void generate() throws IOException {
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
292
7033
0d91a6598a89 Add a copy of the ChartGenerator class.
Andre Heinecke <aheinecke@intevation.de>
parents: 6908
diff changeset
293 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
294
7079
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
295 if (outName.indexOf("chartinfo") > 0) {
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
296 generateInfo();
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
297 }
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
298 else {
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
299 generateImage();
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 }
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
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
304 /** Generate only meta infos */
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
305 private void generateInfo() throws IOException {
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 logger.debug("ChartInfoGenerator2.generateInfo");
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
308
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
309 JFreeChart chart = generateChart();
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
310
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
311 int[] size = getSize();
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
312 if (size == null) {
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
313 size = getDefaultSize();
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
314 }
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 ChartRenderingInfo info = new ChartRenderingInfo();
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
317
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
318 long startTime = System.currentTimeMillis();
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
319
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
320 if (USE_NOP_GRAPHICS) {
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
321 BufferedImage image =
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
322 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
323
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
324 Graphics2D g2d = image.createGraphics();
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
325 Graphics2D nop = new NOPGraphics2D(g2d);
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 chart.draw(
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
328 nop,
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
329 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
330 null,
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
331 info);
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
332
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
333 nop.dispose();
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
334 }
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
335 else {
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
336 chart.createBufferedImage(
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
337 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
338 }
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
339
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
340 long stopTime = System.currentTimeMillis();
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
341
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
342 if (logger.isDebugEnabled()) {
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
343 logger.debug("Rendering info took: " +
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
344 (stopTime-startTime) + "ms");
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
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
347
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
348 InfoGeneratorHelper helper = new InfoGeneratorHelper(this);
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
349 Document doc = helper.createInfoDocument(chart, info);
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
350
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
351 XMLUtils.toStream(doc, out);
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
352 }
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
353
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
354 /** Generate the diagram as an image. */
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
355 private void generateImage() throws IOException {
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
356 logger.debug("ChartGenerator2.generateImage");
48e30e2c5db9 ChartGenerator2 can be used as ChartInfoGenerator, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
357
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
358 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
359
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
360 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
361 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
362
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
363 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
364 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
365 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
366
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
367 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
368 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
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 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
371 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
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.exportImage(
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_PDF)) {
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
379 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
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.exportPDF(
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_SVG)) {
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
387 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
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.exportSVG(
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 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
395 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
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 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
398 out,
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
399 chart,
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
400 context);
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
401 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
402 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
403
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
404
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
405 @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
406 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
407 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
408
7077
0a337f0005c2 Extended init() of OutGenerator to take name of the out to serve.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7068
diff changeset
409 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
410 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
411 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
412 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
413 }
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
414
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
415
4589
afd817b006b7 Documentation added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4444
diff changeset
416 /** 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
417 @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
418 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
419 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
420 }
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
421
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
422
6422
cc96f7a9f9ef ChartGenerator: Added getter for master artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6101
diff changeset
423 /**
cc96f7a9f9ef ChartGenerator: Added getter for master artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6101
diff changeset
424 * Gets the master artifact.
cc96f7a9f9ef ChartGenerator: Added getter for master artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6101
diff changeset
425 * @return the master artifact.
cc96f7a9f9ef ChartGenerator: Added getter for master artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6101
diff changeset
426 */
cc96f7a9f9ef ChartGenerator: Added getter for master artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6101
diff changeset
427 public Artifact getMaster() {
cc96f7a9f9ef ChartGenerator: Added getter for master artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6101
diff changeset
428 return master;
cc96f7a9f9ef ChartGenerator: Added getter for master artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6101
diff changeset
429 }
cc96f7a9f9ef ChartGenerator: Added getter for master artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6101
diff changeset
430
cc96f7a9f9ef ChartGenerator: Added getter for master artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6101
diff changeset
431
4589
afd817b006b7 Documentation added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4444
diff changeset
432 /** 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
433 @Override
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
434 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
435 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
436 }
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
437
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
438
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
439 @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
440 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
441 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
442 }
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
443
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
444
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
445 /**
2236
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
446 * 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
447 * 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
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 * @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
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 @Override
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
452 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
453 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
454 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
455 }
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
456
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
457 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
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 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
460 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
461 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
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 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
464 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
465 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
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 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
468 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
469 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
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
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
472 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
473 }
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
474
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
475
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
476 /**
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
477 * 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
478 *
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
479 * @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
480 */
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
481 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
482 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
483 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
484 chartSection.setSubtitle(getChartSubtitle());
3613
dd6e25980c91 Fixed typo.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3555
diff changeset
485 chartSection.setDisplayGrid(isGridVisible());
3615
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
486 chartSection.setDisplayLogo(showLogo());
3618
b7867c03760a Split logo placement property in two (vertical/horizontal).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3617
diff changeset
487 chartSection.setLogoVPlacement(logoVPlace());
b7867c03760a Split logo placement property in two (vertical/horizontal).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3617
diff changeset
488 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
489 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
490 }
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
491
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
492
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
493 /**
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
494 * 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
495 *
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
496 * @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
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 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
499 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
500 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
501 legendSection.setFontSize(getLegendFontSize());
3150
40147510e2d7 Initialize legend aggregation threshold.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3134
diff changeset
502 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
503 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
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
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
506
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
507 /**
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
508 * 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
509 * 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
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 * @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
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 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
514 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
515 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
516 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
517 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
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
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
520
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 * 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
523 * 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
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 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
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 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
528 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
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 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
531 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
532
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
533 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
534 }
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
535
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 /**
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
538 * 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
539 *
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
540 * @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
541 */
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
542 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
543 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
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 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
546
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 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
548 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
549 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
550 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
551 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
552
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
553 // 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
554 // 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
555 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
556 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
557
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
558 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
559
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
560 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
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
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
563
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
564 /**
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
565 * 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
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 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
568 * <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
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 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
571 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
572 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
573 }
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
574
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
575 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
576 }
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
577
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
578
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
579 /**
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
580 * 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
581 *
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 * @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
583 *
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 * @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
585 * <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
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 * @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
588 */
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 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
590 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
591 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
592 }
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
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 /**
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 * 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
597 *
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 * @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
599 *
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 * @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
601 * <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
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 * @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
604 */
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 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
606 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
607 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
608 }
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
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 * 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
613 * 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
614 * 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
615 *
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 * @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
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 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
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 * @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
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 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
623 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
624 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
625
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 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
627 }
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
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 * 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
632 * 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
633 * 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
634 *
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 * @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
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 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
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 * @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
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 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
642 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
643 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
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 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
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
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 /**
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 * 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
651 * <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
652 *
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 * @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
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 * @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
656 *
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
657 * @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
658 */
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
659 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
660 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
661 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
662 }
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
663
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
664
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
665 /**
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
666 * 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
667 * 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
668 * 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
669 * getDefaultChartTitle().
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 * @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
672 */
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
673 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
674 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
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 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
677 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
678 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
679
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
680 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
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
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 /**
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
685 * 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
686 * 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
687 * 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
688 * 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
689 *
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
690 * @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
691 */
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
692 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
693 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
694
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
695 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
696 return getChartSubtitle(chartSettings);
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
697 }
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 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
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
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
703 /**
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
704 * 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
705 * subtitles.
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 * @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
708 */
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
709 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
710 // 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
711 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
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
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
715 /**
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
716 * 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
717 * 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
718 * 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
719 * <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
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 * @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
722 */
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
723 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
724 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
725 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
726 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
727 }
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 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
730 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
731
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
732
3618
b7867c03760a Split logo placement property in two (vertical/horizontal).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3617
diff changeset
733 /** Where to place the logo. */
b7867c03760a Split logo placement property in two (vertical/horizontal).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3617
diff changeset
734 protected String logoHPlace() {
3617
05deafdcbf39 sloppy logo placement property implementation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3615
diff changeset
735 ChartSettings chartSettings = getChartSettings();
05deafdcbf39 sloppy logo placement property implementation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3615
diff changeset
736 if (chartSettings != null) {
05deafdcbf39 sloppy logo placement property implementation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3615
diff changeset
737 ChartSection cs = chartSettings.getChartSection();
3618
b7867c03760a Split logo placement property in two (vertical/horizontal).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3617
diff changeset
738 String place = cs.getLogoHPlacement();
b7867c03760a Split logo placement property in two (vertical/horizontal).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3617
diff changeset
739
b7867c03760a Split logo placement property in two (vertical/horizontal).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3617
diff changeset
740 return place;
b7867c03760a Split logo placement property in two (vertical/horizontal).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3617
diff changeset
741 }
3639
695e8005e199 Default horizontal and vertical logo placement to top/center instead of 'none'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3618
diff changeset
742 return "center";
3618
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
b7867c03760a Split logo placement property in two (vertical/horizontal).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3617
diff changeset
745
b7867c03760a Split logo placement property in two (vertical/horizontal).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3617
diff changeset
746 /** Where to place the logo. */
b7867c03760a Split logo placement property in two (vertical/horizontal).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3617
diff changeset
747 protected String logoVPlace() {
b7867c03760a Split logo placement property in two (vertical/horizontal).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3617
diff changeset
748 ChartSettings chartSettings = getChartSettings();
b7867c03760a Split logo placement property in two (vertical/horizontal).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3617
diff changeset
749 if (chartSettings != null) {
b7867c03760a Split logo placement property in two (vertical/horizontal).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3617
diff changeset
750 ChartSection cs = chartSettings.getChartSection();
b7867c03760a Split logo placement property in two (vertical/horizontal).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3617
diff changeset
751 String place = cs.getLogoVPlacement();
3617
05deafdcbf39 sloppy logo placement property implementation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3615
diff changeset
752
05deafdcbf39 sloppy logo placement property implementation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3615
diff changeset
753 return place;
05deafdcbf39 sloppy logo placement property implementation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3615
diff changeset
754 }
3639
695e8005e199 Default horizontal and vertical logo placement to top/center instead of 'none'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3618
diff changeset
755 return "top";
3617
05deafdcbf39 sloppy logo placement property implementation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3615
diff changeset
756 }
05deafdcbf39 sloppy logo placement property implementation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3615
diff changeset
757
05deafdcbf39 sloppy logo placement property implementation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3615
diff changeset
758
3615
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
759 /** Return the logo id from settings. */
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
760 protected String showLogo(ChartSettings chartSettings) {
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
761 if (chartSettings != null) {
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
762 ChartSection cs = chartSettings.getChartSection();
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
763 String logo = cs.getDisplayLogo();
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
764
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
765 return logo;
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
766 }
3617
05deafdcbf39 sloppy logo placement property implementation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3615
diff changeset
767 return "none";
3615
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
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 * 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
773 *
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
774 * @return logo name (null if none).
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
775 */
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
776 protected String showLogo() {
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
777 ChartSettings chartSettings = getChartSettings();
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
778 return showLogo(chartSettings);
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
779 }
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
780
f84854eba0b3 Preparations for logo inclusion in charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
781
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
782 /**
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
783 * 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
784 * 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
785 * 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
786 * 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
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 * @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
789 */
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
790 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
791 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
792
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
793 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
794 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
795 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
796 }
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 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
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
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
802 /**
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
803 * 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
804 * 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
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 * @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
807 */
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
808 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
809 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
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
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 * 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
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 * @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
817 */
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
818 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
819 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
820 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
821 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
822 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
823
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
824 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
825 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
826 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
827
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
828 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
829 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
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 }
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 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
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
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
837 /**
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
838 * 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
839 * 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
840 * 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
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 * @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
843 */
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
844 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
845 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
846 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
847 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
848 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
849
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
850 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
851 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
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 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
854 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
855
7068
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 * Glue between axis names and index.
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7043
diff changeset
858 */
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7043
diff changeset
859 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
860
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
861 /**
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
862 * 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
863 * 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
864 * 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
865 *
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
866 * @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
867 */
7068
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7043
diff changeset
868 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
869 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
870 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
871 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
872 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
873
7068
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7043
diff changeset
874 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
875 if (as == null) {
3c8964855270 Avoid NullPointerExceptions if no settings are available
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4276
diff changeset
876 return DEFAULT_FONT_SIZE;
3c8964855270 Avoid NullPointerExceptions if no settings are available
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4276
diff changeset
877 }
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
878 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
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 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
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
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
883 /**
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
884 * 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
885 * 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
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 * @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
888 */
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
889 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
890 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
891 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
892 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
893 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
894
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
895 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
896 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
897 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
898
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
899 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
900 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
901 }
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 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
904 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
905
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
906
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
907 /**
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
908 * Returns the Y-Axis label of a chart at position <i>pos</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
909 *
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
910 * @return the Y-Axis label of a chart at position <i>0</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
911 */
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
912 protected String getYAxisLabel(int pos) {
7068
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7043
diff changeset
913 return "TODO lalal";
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7043
diff changeset
914 /*
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
915 ChartSettings chartSettings = getChartSettings();
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
916 if (chartSettings == null) {
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
917 return getDefaultYAxisLabel(pos);
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
918 }
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
919
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
920 YAxisWalker walker = getYAxisWalker();
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
921 AxisSection as = chartSettings.getAxisSection(walker.getId(pos));
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
922 if (as != null) {
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
923 String label = as.getLabel();
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
924
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
925 if (label != null) {
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
926 return label;
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
927 }
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
928 }
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
929
7068
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7043
diff changeset
930 return getDefaultYAxisLabel(pos);*/
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
931 }
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
932
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
933
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
934 /**
2236
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
935 * 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
936 * <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
937 * 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
938 * 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
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 * @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
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 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
943 * 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
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 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
946 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
947 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
948 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
949 }
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
950
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
951 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
952
3c8964855270 Avoid NullPointerExceptions if no settings are available
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4276
diff changeset
953 if (as == null) {
3c8964855270 Avoid NullPointerExceptions if no settings are available
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4276
diff changeset
954 return null;
3c8964855270 Avoid NullPointerExceptions if no settings are available
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4276
diff changeset
955 }
3c8964855270 Avoid NullPointerExceptions if no settings are available
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4276
diff changeset
956
2236
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
957 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
958
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
959 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
960 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
961 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
962
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
963 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
964 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
965 ? 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
966 : 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
967 }
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
968 }
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
969
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
970 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
971 }
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
972
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
973
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
974 /**
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
975 * 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
976 *
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
977 * @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
978 * @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
979 * @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
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 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
982 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
983 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
984 }
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
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 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
987
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
988 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
989
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
990 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
991 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
992 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
993 }
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
994
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
995 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
996 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
997 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
998 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
999 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
1000 }
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
1001
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
1002 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
1003 }
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
1004
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
1005 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
1006 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
1007 }
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
1008
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
1009
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
1010 /**
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
1011 * 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
1012 * 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
1013 * 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
1014 *
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
1015 * @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
1016 *
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
1017 * @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
1018 */
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
1019 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
1020 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
1021
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
1022 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
1023 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
1024 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
1025 }
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
1026
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
1027 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
1028 }
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
1029
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
1030
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
1031 /**
2422
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1032 * 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
1033 * <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
1034 *
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1035 * @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
1036 */
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1037 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
1038 Stroke gridStroke = new BasicStroke(
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1039 DEFAULT_GRID_LINE_WIDTH,
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1040 BasicStroke.CAP_BUTT,
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1041 BasicStroke.JOIN_MITER,
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1042 3.0f,
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1043 new float[] { 3.0f },
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1044 0.0f);
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1045
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1046 ChartSettings cs = getChartSettings();
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1047 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
1048
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1049 plot.setDomainGridlineStroke(gridStroke);
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1050 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
1051 plot.setDomainGridlinesVisible(isGridVisible);
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1052
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1053 plot.setRangeGridlineStroke(gridStroke);
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1054 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
1055 plot.setRangeGridlinesVisible(isGridVisible);
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1056
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1057 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
1058 }
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1059
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1060
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2407
diff changeset
1061 /**
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1062 * 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
1063 * 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
1064 *
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1065 * @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
1066 */
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
1067 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
1068 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
1069 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
1070
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
1071 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
1072
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
1073 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
1074
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
1075 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
1076 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
1077 }
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
1078
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
1079 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
1080 }
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
1081
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
1082
4589
afd817b006b7 Documentation added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4444
diff changeset
1083 /**
afd817b006b7 Documentation added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4444
diff changeset
1084 * Look up \param key in i18n dictionary.
afd817b006b7 Documentation added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4444
diff changeset
1085 * @param key key for which to find i18nd version.
afd817b006b7 Documentation added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4444
diff changeset
1086 * @param def default, returned if lookup failed.
afd817b006b7 Documentation added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4444
diff changeset
1087 * @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
1088 */
408
fc3ac59c3c8b Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 364
diff changeset
1089 protected String msg(String key, String def) {
fc3ac59c3c8b Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 364
diff changeset
1090 return Resources.getMsg(context.getMeta(), key, def);
fc3ac59c3c8b Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 364
diff changeset
1091 }
fc3ac59c3c8b Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 364
diff changeset
1092
4589
afd817b006b7 Documentation added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4444
diff changeset
1093 /**
afd817b006b7 Documentation added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4444
diff changeset
1094 * Look up \param key in i18n dictionary.
afd817b006b7 Documentation added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4444
diff changeset
1095 * @param key key for which to find i18nd version.
afd817b006b7 Documentation added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4444
diff changeset
1096 * @return value found in i18n dictionary, key itself if failed.
afd817b006b7 Documentation added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4444
diff changeset
1097 */
2407
dce0cc856357 'Bezugslinien': Added axis labels matching the displayed data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2398
diff changeset
1098 protected String msg(String key) {
dce0cc856357 'Bezugslinien': Added axis labels matching the displayed data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2398
diff changeset
1099 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
1100 }
408
fc3ac59c3c8b Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 364
diff changeset
1101
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
1102 protected String msg(String key, String def, Object[] 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
1103 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
1104 }
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
1105
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
1106
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
1107 protected String getRiverName() {
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
1108 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
1109
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5864
diff changeset
1110 River river = RiverUtils.getRiver(flys);
1104
9383a4608d9f Use FLYSUtils.getRiver instead of WINFOArtifact.getRiver.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1095
diff changeset
1111 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
1112 }
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
1113
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
1114
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
1115 protected double[] getRange() {
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
1116 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
1117
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
1118 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
1119 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
1120 }
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
1121
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
1122
423
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1123 /**
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1124 * 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
1125 * 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
1126 *
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
1127 * @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
1128 * 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
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 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
1131 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
1132
719
035c0095b427 Draw correction curve again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
1133 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
1134 request,
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1135 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
1136 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
1137 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
1138
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1139 if (sizeEl != null) {
719
035c0095b427 Draw correction curve again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
1140 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
1141
719
035c0095b427 Draw correction curve again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
1142 String w = sizeEl.getAttributeNS(uri, "width");
035c0095b427 Draw correction curve again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
1143 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
1144
719
035c0095b427 Draw correction curve again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
1145 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
1146 try {
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1147 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
1148 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
1149 }
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1150 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
1151 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
1152 }
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1153 }
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1154 }
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1155
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
1156 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
1157 }
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1158
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1159
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1160 /**
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1161 * 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
1162 * 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
1163 * <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
1164 *
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1165 * @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
1166 */
1735
5966a20fc72c Enabled support for PDF and SVG chart exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1684
diff changeset
1167 protected String getFormat() {
5966a20fc72c Enabled support for PDF and SVG chart exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1684
diff changeset
1168 String format = (String) XMLUtils.xpath(
5966a20fc72c Enabled support for PDF and SVG chart exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1684
diff changeset
1169 request,
5966a20fc72c Enabled support for PDF and SVG chart exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1684
diff changeset
1170 XPATH_CHART_FORMAT,
5966a20fc72c Enabled support for PDF and SVG chart exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1684
diff changeset
1171 XPathConstants.STRING,
5966a20fc72c Enabled support for PDF and SVG chart exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1684
diff changeset
1172 ArtifactNamespaceContext.INSTANCE);
5966a20fc72c Enabled support for PDF and SVG chart exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1684
diff changeset
1173
5966a20fc72c Enabled support for PDF and SVG chart exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1684
diff changeset
1174 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
1175 ? DEFAULT_CHART_FORMAT
5966a20fc72c Enabled support for PDF and SVG chart exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1684
diff changeset
1176 : format;
5966a20fc72c Enabled support for PDF and SVG chart exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1684
diff changeset
1177 }
5966a20fc72c Enabled support for PDF and SVG chart exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1684
diff changeset
1178
5966a20fc72c Enabled support for PDF and SVG chart exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1684
diff changeset
1179
1944
21a4d2c677a1 Changed doOut signature, side effect from blackboard feature (to come).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1768
diff changeset
1180 /**
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
1181 * 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
1182 * 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
1183 * 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
1184 *
4276
0aa42c9d58e9 Documentation in ChartGenerator added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4236
diff changeset
1185 * @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
1186 */
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
1187 protected String[] getDomainAxisRangeFromRequest() {
719
035c0095b427 Draw correction curve again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
1188 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
1189 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
1190 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
1191 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
1192 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
1193
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
1194 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
1195 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
1196 }
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
1197
719
035c0095b427 Draw correction curve again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
1198 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
1199
719
035c0095b427 Draw correction curve again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
1200 String lower = xrange.getAttributeNS(uri, "from");
035c0095b427 Draw correction curve again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
1201 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
1202
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
1203 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
1204 }
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
1205
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
1206
4276
0aa42c9d58e9 Documentation in ChartGenerator added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4236
diff changeset
1207 /** 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
1208 * 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
1209 * 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
1210 protected String[] getValueAxisRangeFromRequest() {
719
035c0095b427 Draw correction curve again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
1211 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
1212 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
1213 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
1214 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
1215 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
1216
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
1217 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
1218 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
1219 }
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
1220
4433
5b8919ef601d Backed out changeset e8a4d2fd25cc
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4432
diff changeset
1221
719
035c0095b427 Draw correction curve again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
1222 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
1223
719
035c0095b427 Draw correction curve again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
1224 String lower = yrange.getAttributeNS(uri, "from");
035c0095b427 Draw correction curve again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
1225 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
1226
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
1227 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
1228 }
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
1229
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
1230
423
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1231 /**
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1232 * 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
1233 *
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1234 * @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
1235 */
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1236 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
1237 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
1238 }
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1239
bab867fb37e8 Charts are generated using the size defined in the incoming request document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 412
diff changeset
1240
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
1241 /**
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 * 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
1243 * <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
1244 * 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
1245 *
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 * @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
1247 */
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
1248 protected void addDatasets(XYPlot plot) {
3155
74c974b10c75 Output code to trackdown the linecolor problem
Christian Lins <christian.lins@intevation.de>
parents: 3150
diff changeset
1249 logger.debug("addDatasets()");
3160
8c78c707aa2d Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3155
diff changeset
1250
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 // 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
1252 // 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
1253 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
1254 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
1255
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 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
1257 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
1258 // 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
1259 AxisDataset axisDataset = entry.getValue();
3155
74c974b10c75 Output code to trackdown the linecolor problem
Christian Lins <christian.lins@intevation.de>
parents: 3150
diff changeset
1260 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
1261
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
1262 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
1263
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 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
1265 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
1266 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
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
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
1269 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
1270
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 // 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
1272 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
1273 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
1274 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
1275
2677
57d6670ddda3 Minimal cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2590
diff changeset
1276 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
1277 datasetIndex,
2677
57d6670ddda3 Minimal cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2590
diff changeset
1278 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
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 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
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 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
1284 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
1285 }
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 }
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
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
2677
57d6670ddda3 Minimal cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2590
diff changeset
1290 /**
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
1291 * @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
1292 * 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
1293 * @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
1294 * 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
1295 */
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 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
1297 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
1298 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
1299 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
1300 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
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 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
1303 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
1304 }
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
1305 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
1306 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
1307 }
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
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 /**
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 * 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
1313 * <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
1314 * 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
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 * @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
1317 * @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
1318 * @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
1319 */
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
1320 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
1321 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
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 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
1324 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
1325
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 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
1327
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 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
1329
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 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
1331 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
1332
2321
991e4a5df323 Enabled styling in timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
1333 if (series instanceof StyledSeries) {
991e4a5df323 Enabled styling in timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
1334 Style style = ((StyledSeries) series).getStyle();
991e4a5df323 Enabled styling in timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
1335 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
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
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 // 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
1339 // 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
1340 // 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
1341 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
1342 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
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
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 LegendItem legendItem = renderer.getLegendItem(idx, s);
3169
b6da650b0718 FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3167
diff changeset
1346 if (legendItem.getLabel().endsWith(" ") ||
b6da650b0718 FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3167
diff changeset
1347 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
1348 legendItem = null;
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3088
diff changeset
1349 }
3167
6f1a102ec14a Do not add entries ending with " " to legend.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3160
diff changeset
1350
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
1351 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
1352 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
1353 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
1354 }
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 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
1356 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
1357 + 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
1358 }
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
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 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
1362 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
1363 }
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
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 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
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, 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
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
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
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
1371 /**
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
1372 * @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
1373 * @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
1374 * @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
1375 */
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
1376 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
1377 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
1378 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
1379 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
1380 ) {
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 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
1382 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
1383
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 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
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 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
1387
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 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
1389 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
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 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
1392 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
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 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
1396
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 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
1398
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
1399 // 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
1400 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
1401
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3639
diff changeset
1402 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
1403 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
1404
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 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
1406 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
1407 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
1408 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
1409 }
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
1410 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
1411 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
1412 + 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
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 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
1416 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
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
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 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
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
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 /**
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 * 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
1425 *
3270
4ac581062c40 Fix various documentation issues.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3257
diff changeset
1426 * @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
1427 *
4eb91fb1e73e Fix weird code with help of new ChartHelper.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3245
diff changeset
1428 * @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
1429 */
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
1430 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
1431 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
1432 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
1433 }
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
1434 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
1435 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
1436 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
1437 }
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2422
diff changeset
1438
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2422
diff changeset
1439 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
1440 }
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
1441
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
1442
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
1443 /**
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
1444 * 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
1445 *
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
1446 * @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
1447 * @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
1448 *
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
1449 * @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
1450 */
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
1451 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
1452 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
1453
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
1454 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
1455 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
1456
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
1457 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
1458
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
1459 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
1460 }
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
1461
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
1462
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
1463 /**
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
1464 * 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
1465 *
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
1466 * @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
1467 * @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
1468 *
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
1469 * @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
1470 */
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2141
diff changeset
1471 protected NumberAxis createNumberAxis(int idx, String label) {
7068
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7043
diff changeset
1472 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
1473 }
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1474
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1475
2236
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1476 /**
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
1477 * 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
1478 * 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
1479 */
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
1480 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
1481
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
1482 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
1483 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
1484 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
1485 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
1486
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
1487 IdentifiableNumberAxis axis = new IdentifiableNumberAxis(
7068
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7043
diff changeset
1488 axisIndexToName(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
1489 getYAxisLabel(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
1490
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
1491 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
1492 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
1493 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
1494
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
1495 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
1496 }
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
1497
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
1498
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
1499 /**
2236
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1500 * 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
1501 * <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
1502 *
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1503 * @param theme The theme of the chart line.
3270
4ac581062c40 Fix various documentation issues.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3257
diff changeset
1504 * @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
1505 *
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1506 * @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
1507 */
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
1508 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
1509 // 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
1510
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
1511 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
1512 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
1513 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
1514 }
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
1515
2236
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1516 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
1517
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1518 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
1519 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
1520 }
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1521
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1522
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1523 /**
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1524 * 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
1525 * 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
1526 *
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1527 * @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
1528 */
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1529 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
1530 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
1531 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
1532 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
1533 getLegendFontSize()
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1534 );
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1535 }
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1536
c2b15d9c0f43 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2234
diff changeset
1537
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
1538 /**
3184
12440c6b8b66 Refactored legend item aggregation again.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3169
diff changeset
1539 * Create new legend entries, dependent on settings.
12440c6b8b66 Refactored legend item aggregation again.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3169
diff changeset
1540 * @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
1541 */
12440c6b8b66 Refactored legend item aggregation again.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3169
diff changeset
1542 public void aggregateLegendEntries(XYPlot plot) {
12440c6b8b66 Refactored legend item aggregation again.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3169
diff changeset
1543 int AGGR_THRESHOLD = 0;
12440c6b8b66 Refactored legend item aggregation again.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3169
diff changeset
1544
3296
45af081061e7 Added overview output for sq relation. Currently the overview generator is
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3284
diff changeset
1545 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
1546 return;
45af081061e7 Added overview output for sq relation. Currently the overview generator is
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3284
diff changeset
1547 }
3184
12440c6b8b66 Refactored legend item aggregation again.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3169
diff changeset
1548 Integer threshold = getChartSettings().getLegendSection()
12440c6b8b66 Refactored legend item aggregation again.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3169
diff changeset
1549 .getAggregationThreshold();
12440c6b8b66 Refactored legend item aggregation again.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3169
diff changeset
1550
12440c6b8b66 Refactored legend item aggregation again.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3169
diff changeset
1551 AGGR_THRESHOLD = (threshold != null) ? threshold.intValue() : 0;
12440c6b8b66 Refactored legend item aggregation again.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3169
diff changeset
1552
12440c6b8b66 Refactored legend item aggregation again.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3169
diff changeset
1553 LegendProcessor.aggregateLegendEntries(plot, AGGR_THRESHOLD);
12440c6b8b66 Refactored legend item aggregation again.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3169
diff changeset
1554 }
12440c6b8b66 Refactored legend item aggregation again.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3169
diff changeset
1555
12440c6b8b66 Refactored legend item aggregation again.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3169
diff changeset
1556
12440c6b8b66 Refactored legend item aggregation again.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3169
diff changeset
1557 /**
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
1558 * 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
1559 *
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
1560 * @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
1561 */
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
1562 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
1563 // 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
1564 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
1565 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
1566
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
1567 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
1568 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
1569 }
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
1570
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
1571
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1572 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
1573 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
1574
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1575 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
1576 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
1577 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
1578 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
1579 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
1580 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
1581 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
1582 "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
1583 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
1584 }
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1585
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1586
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1587 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
1588 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
1589
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
1590 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
1591 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
1592 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
1593 "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
1594 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
1595 }
4444
47d50572844a Add method to a access the CallContext of a ChartGenerator
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4433
diff changeset
1596
47d50572844a Add method to a access the CallContext of a ChartGenerator
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4433
diff changeset
1597 /**
47d50572844a Add method to a access the CallContext of a ChartGenerator
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4433
diff changeset
1598 * 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
1599 *
47d50572844a Add method to a access the CallContext of a ChartGenerator
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4433
diff changeset
1600 * @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
1601 */
47d50572844a Add method to a access the CallContext of a ChartGenerator
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4433
diff changeset
1602 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
1603 return context;
47d50572844a Add method to a access the CallContext of a ChartGenerator
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4433
diff changeset
1604 }
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
1605 }

http://dive4elements.wald.intevation.org