annotate artifacts/src/main/java/org/dive4elements/river/jfree/StyledAreaSeriesCollection.java @ 9602:6b2496d71936

Reimplemented baseline for tkh. Extended area-dataset to be able to draw baseline.
author gernotbelger
date Tue, 12 Feb 2019 14:08:16 +0100
parents ef5754ba5573
children
rev   line source
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
6 * documentation coming with Dive4Elements River for details.
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4686
diff changeset
9 package org.dive4elements.river.jfree;
2074
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
3227
ed07dd55f487 Fixed various bugs (package declarations, moved classes to correct places).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3076
diff changeset
11 import java.awt.BasicStroke;
2074
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12 import java.awt.Color;
8910
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
13 import java.awt.Paint;
2074
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14 import java.awt.Stroke;
8910
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
15 import java.awt.TexturePaint;
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
16 import java.awt.geom.Ellipse2D;
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
17 import java.awt.geom.Rectangle2D;
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
18 import java.awt.image.BufferedImage;
2074
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19
9496
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
20 import org.apache.log4j.Logger;
9555
ef5754ba5573 Implemented legend aggregation based on type of themes.
gernotbelger
parents: 9496
diff changeset
21 import org.dive4elements.artifactdatabase.state.Facet;
9496
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
22 import org.dive4elements.artifacts.CallMeta;
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
23 import org.dive4elements.river.artifacts.resources.Resources;
9555
ef5754ba5573 Implemented legend aggregation based on type of themes.
gernotbelger
parents: 9496
diff changeset
24 import org.dive4elements.river.exports.LegendAggregator;
9496
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
25 import org.dive4elements.river.java2d.ShapeUtils;
9182
77eb4553245b Fixed: waterlevels could not show a band any more
gernotbelger
parents: 8913
diff changeset
26 import org.dive4elements.river.themes.ThemeDocument;
9496
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
27 import org.dive4elements.river.utils.Formatter;
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
28 import org.jfree.chart.LegendItem;
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
29 import org.jfree.chart.plot.XYPlot;
3227
ed07dd55f487 Fixed various bugs (package declarations, moved classes to correct places).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3076
diff changeset
30 import org.jfree.data.xy.XYSeriesCollection;
2074
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32 /**
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33 * One or more dataseries to draw a polygon (either "open up/downwards", or
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34 * the area between two curves), a theme-document and further display options.
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35 * The theme-document will later "style" the graphical representation.
3076
5642a83420f2 FLYS artifacts: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2667
diff changeset
36 * The display options can be used to control the z-order and the axis of the
2074
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37 * dataset.
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38 */
9496
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
39 // FIXME: bad abstraction: the only purpose of this derivation is to apply specific styles. This should rather be solved
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
40 // similar to the XYSTyle.
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
41 public class StyledAreaSeriesCollection extends XYSeriesCollection implements StyledXYDataset {
3889
940cd2ef149f Area transparency fix
Christian Lins <christian.lins@intevation.de>
parents: 3442
diff changeset
42 private static final long serialVersionUID = 5274940965666948237L;
940cd2ef149f Area transparency fix
Christian Lins <christian.lins@intevation.de>
parents: 3442
diff changeset
43
9496
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
44 private static final Logger log = Logger.getLogger(StyledAreaSeriesCollection.class);
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
45
2074
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46 /** Mode, how to draw/which areas to fill. */
9496
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
47 public enum FILL_MODE {
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
48 UNDER, ABOVE, BETWEEN
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
49 }
2074
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
50
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51 /** MODE in use. */
8885
e5f688820951 Some minor changes on chart: allow area-themes to consider range; allow for axis-margins
gernotbelger
parents: 8856
diff changeset
52 private FILL_MODE mode;
2074
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
53
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 7119
diff changeset
54 /** Theme-document with attributes about actual visual representation. */
9182
77eb4553245b Fixed: waterlevels could not show a band any more
gernotbelger
parents: 8913
diff changeset
55 private final ThemeDocument theme;
2074
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
56
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
57 /**
9555
ef5754ba5573 Implemented legend aggregation based on type of themes.
gernotbelger
parents: 9496
diff changeset
58 * A 'type' that allows to categorize themes by it. Tyically this is simply the facet-name of the originating
ef5754ba5573 Implemented legend aggregation based on type of themes.
gernotbelger
parents: 9496
diff changeset
59 * {@link Facet}.
ef5754ba5573 Implemented legend aggregation based on type of themes.
gernotbelger
parents: 9496
diff changeset
60 */
ef5754ba5573 Implemented legend aggregation based on type of themes.
gernotbelger
parents: 9496
diff changeset
61 private final String themeType;
ef5754ba5573 Implemented legend aggregation based on type of themes.
gernotbelger
parents: 9496
diff changeset
62
ef5754ba5573 Implemented legend aggregation based on type of themes.
gernotbelger
parents: 9496
diff changeset
63 /**
9496
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
64 * @param theme
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
65 * the theme-document.
9555
ef5754ba5573 Implemented legend aggregation based on type of themes.
gernotbelger
parents: 9496
diff changeset
66 * @param string
2074
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
67 */
9555
ef5754ba5573 Implemented legend aggregation based on type of themes.
gernotbelger
parents: 9496
diff changeset
68 public StyledAreaSeriesCollection(final String themeType, final ThemeDocument theme) {
ef5754ba5573 Implemented legend aggregation based on type of themes.
gernotbelger
parents: 9496
diff changeset
69 this.themeType = themeType;
2074
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
70 this.theme = theme;
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
71 this.mode = FILL_MODE.BETWEEN;
9182
77eb4553245b Fixed: waterlevels could not show a band any more
gernotbelger
parents: 8913
diff changeset
72 }
2074
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
73
9555
ef5754ba5573 Implemented legend aggregation based on type of themes.
gernotbelger
parents: 9496
diff changeset
74 public String getThemeType() {
ef5754ba5573 Implemented legend aggregation based on type of themes.
gernotbelger
parents: 9496
diff changeset
75 return this.themeType;
ef5754ba5573 Implemented legend aggregation based on type of themes.
gernotbelger
parents: 9496
diff changeset
76 }
ef5754ba5573 Implemented legend aggregation based on type of themes.
gernotbelger
parents: 9496
diff changeset
77
2074
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
78 /** Gets the Fill mode. */
9496
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
79 private FILL_MODE getMode() {
2074
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80 return this.mode;
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81 }
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
82
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
83 /** Sets the Fill mode. */
9182
77eb4553245b Fixed: waterlevels could not show a band any more
gernotbelger
parents: 8913
diff changeset
84 public void setMode(final FILL_MODE fMode) {
2074
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
85 this.mode = fMode;
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
86 }
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
87
9496
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
88 @Override
9555
ef5754ba5573 Implemented legend aggregation based on type of themes.
gernotbelger
parents: 9496
diff changeset
89 public void applyTheme(final CallMeta callMeta, final XYPlot plot, final LegendAggregator legendBuilder, final int datasetIndex) {
9496
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
90
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
91 log.debug("Registering an 'area'renderer at idx: " + datasetIndex);
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
92
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
93 final StableXYDifferenceRenderer dRenderer = new StableXYDifferenceRenderer();
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
94
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
95 if (getMode() == StyledAreaSeriesCollection.FILL_MODE.UNDER) {
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
96 dRenderer.setPositivePaint(createTransparentPaint());
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
97 }
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
98
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
99 plot.setRenderer(datasetIndex, dRenderer);
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
100
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
101 applyTheme(dRenderer);
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
102
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
103 // i18n
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
104 dRenderer.setAreaLabelNumberFormat(Formatter.getFormatter(callMeta, 2, 4));
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
105
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
106 dRenderer.setAreaLabelTemplate(Resources.getMsg(callMeta, "area.label.template", "Area=%sm2"));
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
107
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
108 final LegendItem legendItem = dRenderer.getLegendItem(datasetIndex, 0);
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
109 if (legendItem != null) {
9555
ef5754ba5573 Implemented legend aggregation based on type of themes.
gernotbelger
parents: 9496
diff changeset
110 legendBuilder.addLegendItem(this.themeType, legendItem);
9496
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
111 } else {
9555
ef5754ba5573 Implemented legend aggregation based on type of themes.
gernotbelger
parents: 9496
diff changeset
112 log.warn("Could not get LegengItem for renderer: " + datasetIndex + ", series-idx " + 0);
9496
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
113 }
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
114 }
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
115
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
116 /**
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
117 * Returns a transparently textured paint.
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
118 *
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
119 * @return a transparently textured paint.
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
120 */
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
121 private static Paint createTransparentPaint() {
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
122 // TODO why not use a transparent color?
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
123 final BufferedImage texture = new BufferedImage(1, 1, BufferedImage.TYPE_4BYTE_ABGR);
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
124
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
125 return new TexturePaint(texture, new Rectangle2D.Double(0d, 0d, 0d, 0d));
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
126 }
2074
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
127
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
128 /**
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
129 * Applies line color, size and type attributes to renderer, also
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
130 * whether to draw lines and/or points.
9496
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
131 *
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
132 * @param renderer
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
133 * Renderer to apply theme to.
3395
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3227
diff changeset
134 * @return \param renderer
2074
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
135 */
9496
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
136 private StableXYDifferenceRenderer applyTheme(final StableXYDifferenceRenderer renderer) {
2074
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
137 applyFillColor(renderer);
9182
77eb4553245b Fixed: waterlevels could not show a band any more
gernotbelger
parents: 8913
diff changeset
138 applyShowBorder(renderer);
77eb4553245b Fixed: waterlevels could not show a band any more
gernotbelger
parents: 8913
diff changeset
139 applyShowArea(renderer);
2074
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
140 applyOutlineColor(renderer);
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
141 applyOutlineStyle(renderer);
8885
e5f688820951 Some minor changes on chart: allow area-themes to consider range; allow for axis-margins
gernotbelger
parents: 8856
diff changeset
142 applyShowLine(renderer);
7119
988dde49ae65 Fix area label rendering.
Andre Heinecke <aheinecke@intevation.de>
parents: 6908
diff changeset
143 applyShowAreaLabel(renderer);
9186
eec4df8165a1 Implemented 'ShowLineLabel' for area themes.
gernotbelger
parents: 9182
diff changeset
144 applyShowLineLabel(renderer);
8910
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
145 applyPointStyle(renderer);
9186
eec4df8165a1 Implemented 'ShowLineLabel' for area themes.
gernotbelger
parents: 9182
diff changeset
146 applyShowMinimumMaximum(renderer);
9602
6b2496d71936 Reimplemented baseline for tkh. Extended area-dataset to be able to draw baseline.
gernotbelger
parents: 9555
diff changeset
147 applyBaseLineStyle(renderer);
9182
77eb4553245b Fixed: waterlevels could not show a band any more
gernotbelger
parents: 8913
diff changeset
148 if (this.mode == FILL_MODE.UNDER) {
9496
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
149 renderer.setAreaCalculationMode(StableXYDifferenceRenderer.CALCULATE_NEGATIVE_AREA);
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
150 } else if (this.mode == FILL_MODE.ABOVE) {
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
151 renderer.setAreaCalculationMode(StableXYDifferenceRenderer.CALCULATE_POSITIVE_AREA);
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
152 } else {
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
153 renderer.setAreaCalculationMode(StableXYDifferenceRenderer.CALCULATE_ALL_AREA);
2666
6da7e064ae90 Allow basic and styled area labels, yet on static position within plot.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2074
diff changeset
154 }
2667
b75681c09ef8 Respect area label bg text style, draw label roughly at centroid of polygons (sofar, better but not yet good).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2666
diff changeset
155
b75681c09ef8 Respect area label bg text style, draw label roughly at centroid of polygons (sofar, better but not yet good).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2666
diff changeset
156 // Apply text style.
9182
77eb4553245b Fixed: waterlevels could not show a band any more
gernotbelger
parents: 8913
diff changeset
157 this.theme.parseComplexTextStyle().apply(renderer);
2074
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
158 return renderer;
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
159 }
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
160
9186
eec4df8165a1 Implemented 'ShowLineLabel' for area themes.
gernotbelger
parents: 9182
diff changeset
161 private void applyShowMinimumMaximum(final StableXYDifferenceRenderer renderer) {
eec4df8165a1 Implemented 'ShowLineLabel' for area themes.
gernotbelger
parents: 9182
diff changeset
162
eec4df8165a1 Implemented 'ShowLineLabel' for area themes.
gernotbelger
parents: 9182
diff changeset
163 // TODO: nice to have
eec4df8165a1 Implemented 'ShowLineLabel' for area themes.
gernotbelger
parents: 9182
diff changeset
164
eec4df8165a1 Implemented 'ShowLineLabel' for area themes.
gernotbelger
parents: 9182
diff changeset
165 // final boolean minimumVisible = this.theme.parseShowMinimum();
eec4df8165a1 Implemented 'ShowLineLabel' for area themes.
gernotbelger
parents: 9182
diff changeset
166 // renderer.setIsMinimumShapeVisible(minimumVisible);
eec4df8165a1 Implemented 'ShowLineLabel' for area themes.
gernotbelger
parents: 9182
diff changeset
167 //
eec4df8165a1 Implemented 'ShowLineLabel' for area themes.
gernotbelger
parents: 9182
diff changeset
168 // final boolean maximumVisible = this.theme.parseShowMaximum();
eec4df8165a1 Implemented 'ShowLineLabel' for area themes.
gernotbelger
parents: 9182
diff changeset
169 // renderer.setIsMaximumShapeVisible(maximumVisible);
eec4df8165a1 Implemented 'ShowLineLabel' for area themes.
gernotbelger
parents: 9182
diff changeset
170 }
eec4df8165a1 Implemented 'ShowLineLabel' for area themes.
gernotbelger
parents: 9182
diff changeset
171
9602
6b2496d71936 Reimplemented baseline for tkh. Extended area-dataset to be able to draw baseline.
gernotbelger
parents: 9555
diff changeset
172 private void applyBaseLineStyle(final StableXYDifferenceRenderer renderer) {
6b2496d71936 Reimplemented baseline for tkh. Extended area-dataset to be able to draw baseline.
gernotbelger
parents: 9555
diff changeset
173 final Color c = this.theme.parseBaseLineColor();
6b2496d71936 Reimplemented baseline for tkh. Extended area-dataset to be able to draw baseline.
gernotbelger
parents: 9555
diff changeset
174 renderer.setBaseLineColor(c);
6b2496d71936 Reimplemented baseline for tkh. Extended area-dataset to be able to draw baseline.
gernotbelger
parents: 9555
diff changeset
175 }
6b2496d71936 Reimplemented baseline for tkh. Extended area-dataset to be able to draw baseline.
gernotbelger
parents: 9555
diff changeset
176
8910
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
177 private void applyFillColor(final StableXYDifferenceRenderer renderer) {
3889
940cd2ef149f Area transparency fix
Christian Lins <christian.lins@intevation.de>
parents: 3442
diff changeset
178
8910
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
179 Paint paint = parseFillPaint();
9182
77eb4553245b Fixed: waterlevels could not show a band any more
gernotbelger
parents: 8913
diff changeset
180
2074
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
181 if (paint != null && this.getMode() == FILL_MODE.ABOVE) {
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
182 renderer.setPositivePaint(paint);
9496
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
183 renderer.setNegativePaint(new Color(0, 0, 0, 0));
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
184 } else if (paint != null && this.getMode() == FILL_MODE.UNDER) {
2074
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
185 renderer.setNegativePaint(paint);
9496
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
186 renderer.setPositivePaint(new Color(0, 0, 0, 0));
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
187 } else {
3889
940cd2ef149f Area transparency fix
Christian Lins <christian.lins@intevation.de>
parents: 3442
diff changeset
188 if (paint == null)
940cd2ef149f Area transparency fix
Christian Lins <christian.lins@intevation.de>
parents: 3442
diff changeset
189 paint = new Color(177, 117, 102);
9182
77eb4553245b Fixed: waterlevels could not show a band any more
gernotbelger
parents: 8913
diff changeset
190
2074
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
191 renderer.setPositivePaint(paint);
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
192 renderer.setNegativePaint(paint);
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
193 }
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
194 }
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
195
8910
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
196 private Paint parseFillPaint() {
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
197 final Color paint = this.theme.parseAreaBackgroundColor();
9182
77eb4553245b Fixed: waterlevels could not show a band any more
gernotbelger
parents: 8913
diff changeset
198 final int transparency = this.theme.parseAreaTransparency();
77eb4553245b Fixed: waterlevels could not show a band any more
gernotbelger
parents: 8913
diff changeset
199
9496
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
200 final Color alphaPaint = ShapeUtils.withAlpha(paint, transparency);
9182
77eb4553245b Fixed: waterlevels could not show a band any more
gernotbelger
parents: 8913
diff changeset
201
8910
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
202 final AreaFillPattern pattern = this.theme.parseAreaBackgroundPattern();
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
203
9496
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
204 if (pattern == null || pattern == AreaFillPattern.patternFill)
8910
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
205 return alphaPaint;
9182
77eb4553245b Fixed: waterlevels could not show a band any more
gernotbelger
parents: 8913
diff changeset
206
8910
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
207 final BufferedImage image = pattern.getImage(alphaPaint);
9182
77eb4553245b Fixed: waterlevels could not show a band any more
gernotbelger
parents: 8913
diff changeset
208
9496
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
209 final Rectangle2D anchor = new Rectangle2D.Double(0, 0, image.getWidth(), image.getHeight());
8910
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
210 return new TexturePaint(image, anchor);
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
211 }
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
212
9182
77eb4553245b Fixed: waterlevels could not show a band any more
gernotbelger
parents: 8913
diff changeset
213 private void applyShowBorder(final StableXYDifferenceRenderer renderer) {
77eb4553245b Fixed: waterlevels could not show a band any more
gernotbelger
parents: 8913
diff changeset
214 final boolean show = this.theme.parseAreaShowBorder();
2074
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
215 renderer.setDrawOutline(show);
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
216 }
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
217
9182
77eb4553245b Fixed: waterlevels could not show a band any more
gernotbelger
parents: 8913
diff changeset
218 private void applyShowArea(final StableXYDifferenceRenderer renderer) {
3395
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3227
diff changeset
219
9182
77eb4553245b Fixed: waterlevels could not show a band any more
gernotbelger
parents: 8913
diff changeset
220 final boolean showArea = this.theme.parseShowArea();
77eb4553245b Fixed: waterlevels could not show a band any more
gernotbelger
parents: 8913
diff changeset
221 renderer.setDrawArea(showArea);
77eb4553245b Fixed: waterlevels could not show a band any more
gernotbelger
parents: 8913
diff changeset
222 }
77eb4553245b Fixed: waterlevels could not show a band any more
gernotbelger
parents: 8913
diff changeset
223
77eb4553245b Fixed: waterlevels could not show a band any more
gernotbelger
parents: 8913
diff changeset
224 private void applyShowLine(final StableXYDifferenceRenderer renderer) {
8910
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
225 /* FIXME: strange: this will enable/disable showing the 'point' shapes at each vertex. */
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
226 /* FIXME: this will also now be overridden by the option 'showpoints' */
9182
77eb4553245b Fixed: waterlevels could not show a band any more
gernotbelger
parents: 8913
diff changeset
227 final boolean show = this.theme.parseShowLine();
2074
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
228 renderer.setShapesVisible(show);
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
229 }
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
230
9182
77eb4553245b Fixed: waterlevels could not show a band any more
gernotbelger
parents: 8913
diff changeset
231 private void applyOutlineColor(final StableXYDifferenceRenderer renderer) {
77eb4553245b Fixed: waterlevels could not show a band any more
gernotbelger
parents: 8913
diff changeset
232 final Color c = this.theme.parseLineColorField();
2074
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
233 renderer.setOutlinePaint(c);
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
234 }
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
235
9182
77eb4553245b Fixed: waterlevels could not show a band any more
gernotbelger
parents: 8913
diff changeset
236 private void applyShowAreaLabel(final StableXYDifferenceRenderer renderer) {
9186
eec4df8165a1 Implemented 'ShowLineLabel' for area themes.
gernotbelger
parents: 9182
diff changeset
237 renderer.setShowAreaLabel(this.theme.parseShowAreaLabel());
eec4df8165a1 Implemented 'ShowLineLabel' for area themes.
gernotbelger
parents: 9182
diff changeset
238 }
eec4df8165a1 Implemented 'ShowLineLabel' for area themes.
gernotbelger
parents: 9182
diff changeset
239
eec4df8165a1 Implemented 'ShowLineLabel' for area themes.
gernotbelger
parents: 9182
diff changeset
240 private void applyShowLineLabel(final StableXYDifferenceRenderer renderer) {
eec4df8165a1 Implemented 'ShowLineLabel' for area themes.
gernotbelger
parents: 9182
diff changeset
241 // REMARK: using 'showlinelabel' to activate labeling the line with the title of the theme. This is the same behaviour
eec4df8165a1 Implemented 'ShowLineLabel' for area themes.
gernotbelger
parents: 9182
diff changeset
242 // as for line-themes.
eec4df8165a1 Implemented 'ShowLineLabel' for area themes.
gernotbelger
parents: 9182
diff changeset
243 final boolean showLabelLine = this.theme.parseShowLineLabel();
eec4df8165a1 Implemented 'ShowLineLabel' for area themes.
gernotbelger
parents: 9182
diff changeset
244 renderer.setShowTitleLabel(showLabelLine);
2666
6da7e064ae90 Allow basic and styled area labels, yet on static position within plot.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2074
diff changeset
245 }
6da7e064ae90 Allow basic and styled area labels, yet on static position within plot.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2074
diff changeset
246
9182
77eb4553245b Fixed: waterlevels could not show a band any more
gernotbelger
parents: 8913
diff changeset
247 private void applyOutlineStyle(final StableXYDifferenceRenderer renderer) {
77eb4553245b Fixed: waterlevels could not show a band any more
gernotbelger
parents: 8913
diff changeset
248 final float[] dashes = this.theme.parseLineStyle();
9496
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
249 final int size = this.theme.parseLineWidth();
2074
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
250
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
251 Stroke stroke = null;
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
252
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
253 if (dashes.length <= 1) {
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
254 stroke = new BasicStroke(Integer.valueOf(size));
9496
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
255 } else {
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
256 stroke = new BasicStroke(Integer.valueOf(size), BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 1.0f, dashes, 0.0f);
2074
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
257 }
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
258
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
259 renderer.setOutlineStroke(stroke);
a026d005accd Moved JFreeChart specific classes to de.intevation.flys.jfree and added required imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
260 }
8885
e5f688820951 Some minor changes on chart: allow area-themes to consider range; allow for axis-margins
gernotbelger
parents: 8856
diff changeset
261
8910
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
262 private void applyPointStyle(final StableXYDifferenceRenderer renderer) {
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
263
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
264 final boolean showPoints = this.theme.parseShowPoints();
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
265 renderer.setShapesVisible(showPoints);
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
266
9496
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
267 if (showPoints) {
9182
77eb4553245b Fixed: waterlevels could not show a band any more
gernotbelger
parents: 8913
diff changeset
268 final int size = this.theme.parsePointWidth();
9496
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9186
diff changeset
269 final int dim = 2 * size;
8910
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
270
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
271 final Ellipse2D pointShape = new Ellipse2D.Double(-size, -size, dim, dim);
9182
77eb4553245b Fixed: waterlevels could not show a band any more
gernotbelger
parents: 8913
diff changeset
272 final Color pointColor = this.theme.parsePointColor();
8910
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
273
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
274 renderer.setSeriesPaint(0, pointColor);
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
275 renderer.setSeriesPaint(1, pointColor);
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
276
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
277 renderer.setSeriesShape(0, pointShape);
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
278 renderer.setSeriesShape(1, pointShape);
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
279 }
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
280 }
d9c89651bd67 Area chart layers may now have an 'arebgpattern'. Real pattern yet to be defined.
gernotbelger
parents: 8885
diff changeset
281
8885
e5f688820951 Some minor changes on chart: allow area-themes to consider range; allow for axis-margins
gernotbelger
parents: 8856
diff changeset
282 public boolean shouldCalculateRange() {
9182
77eb4553245b Fixed: waterlevels could not show a band any more
gernotbelger
parents: 8913
diff changeset
283 return this.theme.parseCalculateRange();
8885
e5f688820951 Some minor changes on chart: allow area-themes to consider range; allow for axis-margins
gernotbelger
parents: 8856
diff changeset
284 }
9555
ef5754ba5573 Implemented legend aggregation based on type of themes.
gernotbelger
parents: 9496
diff changeset
285
ef5754ba5573 Implemented legend aggregation based on type of themes.
gernotbelger
parents: 9496
diff changeset
286 @Override
ef5754ba5573 Implemented legend aggregation based on type of themes.
gernotbelger
parents: 9496
diff changeset
287 public void applyAggregatedLegendTheme(final LegendItem item, final ThemeDocument legendTheme) {
ef5754ba5573 Implemented legend aggregation based on type of themes.
gernotbelger
parents: 9496
diff changeset
288 /* not implemented */
ef5754ba5573 Implemented legend aggregation based on type of themes.
gernotbelger
parents: 9496
diff changeset
289 }
ef5754ba5573 Implemented legend aggregation based on type of themes.
gernotbelger
parents: 9496
diff changeset
290 }

http://dive4elements.wald.intevation.org