Mercurial > dive4elements > river
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 | 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 | 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 | 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 | 161 private void applyShowMinimumMaximum(final StableXYDifferenceRenderer renderer) { |
162 | |
163 // TODO: nice to have | |
164 | |
165 // final boolean minimumVisible = this.theme.parseShowMinimum(); | |
166 // renderer.setIsMinimumShapeVisible(minimumVisible); | |
167 // | |
168 // final boolean maximumVisible = this.theme.parseShowMaximum(); | |
169 // renderer.setIsMaximumShapeVisible(maximumVisible); | |
170 } | |
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 | 237 renderer.setShowAreaLabel(this.theme.parseShowAreaLabel()); |
238 } | |
239 | |
240 private void applyShowLineLabel(final StableXYDifferenceRenderer renderer) { | |
241 // REMARK: using 'showlinelabel' to activate labeling the line with the title of the theme. This is the same behaviour | |
242 // as for line-themes. | |
243 final boolean showLabelLine = this.theme.parseShowLineLabel(); | |
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 } |