Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/jfree/StripedAreaDatasetRenderer.java @ 9496:d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
author | gernotbelger |
---|---|
date | Wed, 26 Sep 2018 15:48:05 +0200 |
parents | |
children |
rev | line source |
---|---|
9496
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
2 * Software engineering by |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
3 * Björnsen Beratende Ingenieure GmbH |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
5 * |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
6 * This file is Free Software under the GNU AGPL (>=v3) |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
8 * documentation coming with Dive4Elements River for details. |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
9 */ |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
10 package org.dive4elements.river.jfree; |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
11 |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
12 import java.awt.Graphics2D; |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
13 import java.awt.Paint; |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
14 import java.awt.Stroke; |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
15 import java.awt.geom.GeneralPath; |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
16 import java.awt.geom.Rectangle2D; |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
17 |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
18 import org.dive4elements.river.jfree.StripedAreaDataset.Stripe; |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
19 import org.jfree.chart.axis.ValueAxis; |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
20 import org.jfree.chart.plot.CrosshairState; |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
21 import org.jfree.chart.plot.PlotRenderingInfo; |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
22 import org.jfree.chart.plot.XYPlot; |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
23 import org.jfree.chart.renderer.xy.AbstractXYItemRenderer; |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
24 import org.jfree.chart.renderer.xy.XYItemRendererState; |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
25 import org.jfree.data.xy.XYDataset; |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
26 |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
27 /** |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
28 * @author Domenico Nardi Tironi |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
29 */ |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
30 final class StripedAreaDatasetRenderer extends AbstractXYItemRenderer { |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
31 |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
32 private static final long serialVersionUID = 1L; |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
33 |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
34 @Override |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
35 public void drawItem(final Graphics2D g2, final XYItemRendererState state, final Rectangle2D dataArea, final PlotRenderingInfo info, final XYPlot plot, |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
36 final ValueAxis domainAxis, final ValueAxis rangeAxis, final XYDataset dataset, final int series, final int item, |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
37 final CrosshairState crosshairState, final int pass) { |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
38 |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
39 if (item != 0) |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
40 return; |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
41 |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
42 final StripedAreaDataset stripedDataset = (StripedAreaDataset) dataset; |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
43 final Stripe stripe = stripedDataset.getStripe(series); |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
44 |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
45 final double lower = stripe.getLower(); |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
46 final double upper = stripe.getUpper(); |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
47 |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
48 final double transLower = Double.isNaN(lower) ? dataArea.getMaxY() : rangeAxis.valueToJava2D(lower, dataArea, plot.getRangeAxisEdge()); |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
49 final double transUpper = Double.isNaN(upper) ? dataArea.getMinY() : rangeAxis.valueToJava2D(upper, dataArea, plot.getRangeAxisEdge()); |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
50 |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
51 final double transLeft = dataArea.getMinX(); |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
52 final double transRight = dataArea.getMaxX(); |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
53 |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
54 final GeneralPath area = new GeneralPath(); |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
55 |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
56 area.moveTo(transLeft, transLower); |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
57 area.lineTo(transRight, transLower); |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
58 area.lineTo(transRight, transUpper); |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
59 area.lineTo(transLeft, transUpper); |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
60 area.closePath(); |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
61 |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
62 final Paint paint = getItemPaint(series, item); |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
63 final Stroke stroke = getItemStroke(series, item); |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
64 g2.setPaint(paint); |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
65 g2.setStroke(stroke); |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
66 |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
67 g2.fill(area); |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
68 } |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
diff
changeset
|
69 } |