Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/exports/LegendProcessor.java @ 9496:d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
author | gernotbelger |
---|---|
date | Wed, 26 Sep 2018 15:48:05 +0200 |
parents | 5e38e2924c07 |
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:
4047
diff
changeset
|
9 package org.dive4elements.river.exports; |
3183
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
10 |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
11 import java.awt.geom.Line2D; |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
12 import java.util.ArrayList; |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
13 import java.util.HashMap; |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
14 import java.util.Iterator; |
4021
7cc05da7e35c
Add message for 'state.chart.km'
Christian Lins <christian.lins@intevation.de>
parents:
3224
diff
changeset
|
15 import java.util.LinkedHashMap; |
3183
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
16 import java.util.List; |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
17 |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
18 import org.jfree.chart.LegendItem; |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
19 import org.jfree.chart.LegendItemCollection; |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
20 import org.jfree.chart.plot.XYPlot; |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
21 |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
22 /** Class to process Plots legends. */ |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
23 public abstract class LegendProcessor { |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
24 |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
25 /** (Empty) shape for aggregated Legend Items. */ |
9496
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
26 private static final Line2D.Double SPACE = new Line2D.Double(0, 0, 0, 0); |
3183
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
27 |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
28 /** Prevent instantiations. */ |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
29 private LegendProcessor() { |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
30 } |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
31 |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
32 /** |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
33 * Create a hash from a legenditem. |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
34 * This hash can then be used to merge legend items labels. |
9496
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
35 * |
3183
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
36 * @return hash for given legenditem to identify mergeables. |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
37 */ |
9496
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
38 protected static String legendItemHash(final LegendItem li) { |
8856 | 39 // TODO Do proper implementation. |
40 // Ensure that only mergable sets are created. | |
3183
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
41 // getFillPaint() |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
42 // getFillPaintTransformer() |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
43 // getLabel() |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
44 // getLine() |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
45 // getLinePaint() |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
46 // getLineStroke() |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
47 // getOutminePaint() |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
48 // getOutlineStroke() |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
49 // Shape getShape() |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
50 // String getToolTipText() |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
51 // String getURLText() |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
52 // boolean isLineVisible() |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
53 // boolean isShapeFilled() |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
54 // boolean isShapeOutlineVisible() |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
55 // boolean isShapeVisible() |
9496
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
56 final String hash = li.getLinePaint().toString(); |
4046
ca208b2f35a0
LegendProcessor: avoid redundant hashing. removed dead code.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4021
diff
changeset
|
57 // XXX: DEAD CODE // String label = li.getLabel(); |
9496
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
58 /* |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
59 * if (label.startsWith("W (") || label.startsWith("W(")) { |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
60 * hash += "-W-"; |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
61 * } |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
62 * else if (label.startsWith("Q(") || label.startsWith("Q (")) { |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
63 * hash += "-Q-"; |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
64 * } |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
65 */ |
3183
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
66 |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
67 // WQ.java holds example of using regex Matcher/Pattern. |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
68 |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
69 return hash; |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
70 } |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
71 |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
72 /** |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
73 * Create new legend entries, dependent on settings. |
9496
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
74 * |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
75 * @param plot |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
76 * The plot for which to modify the legend. |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
77 * @param threshold |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
78 * How many items are needed for aggregation to |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
79 * be triggered? |
3183
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
80 */ |
9496
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
81 public static void aggregateLegendEntries(final XYPlot plot, final int threshold) { |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
82 final LegendItemCollection old = plot.getLegendItems(); |
3183
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
83 // Find "similar" entries if aggregation is enabled. |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
84 |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
85 int maxListSize = 0; |
9496
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
86 final int AGGR_THRESHOLD = threshold; |
3183
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
87 |
9496
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
88 if (AGGR_THRESHOLD > old.getItemCount() || AGGR_THRESHOLD <= 0) { |
3183
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
89 return; |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
90 } |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
91 |
9496
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
92 final HashMap<String, List<LegendItem>> entries = new LinkedHashMap<>(); |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
93 // for (Iterator<LegendItem> i = old.iterator(); i.hasNext();) { |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
94 |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
95 final Iterator<LegendItem> iterator = old.iterator(); |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
96 while (iterator.hasNext()) { |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
97 final LegendItem item = iterator.next(); |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
98 final String hash = legendItemHash(item); |
3183
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
99 List<LegendItem> itemList = entries.get(hash); |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
100 if (itemList == null) { |
9496
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
101 itemList = new ArrayList<>(); |
4046
ca208b2f35a0
LegendProcessor: avoid redundant hashing. removed dead code.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4021
diff
changeset
|
102 entries.put(hash, itemList); |
3183
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
103 } |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
104 itemList.add(item); |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
105 |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
106 if (itemList.size() > maxListSize) { |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
107 maxListSize = itemList.size(); |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
108 } |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
109 } |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
110 |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
111 if (maxListSize < AGGR_THRESHOLD) { |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
112 // No need to do anything. |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
113 return; |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
114 } |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
115 |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
116 // Run over collected entries, merge their names and create new |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
117 // entry if needed. |
9496
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
118 final LegendItemCollection newLegend = new LegendItemCollection(); |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
119 for (final List<LegendItem> itemList : entries.values()) { |
3183
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
120 if (itemList.size() >= AGGR_THRESHOLD) { |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
121 // Now do merging. |
4046
ca208b2f35a0
LegendProcessor: avoid redundant hashing. removed dead code.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4021
diff
changeset
|
122 // XXX: DEAD CODE // LegendItem item = itemList.get(0); |
8856 | 123 // Unfortunately we cannot clone and just setDescription, |
124 // as this method was added in JFreeChart 1.0.14 | |
125 // (we are at .13). | |
3183
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
126 |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
127 // Remove the shapes of all but the first items, |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
128 // to prevent "overfill" of legenditemblock. |
7254
fe32a7f9655e
Reduce usage of careless 'for (int i = 0; i < x.size(); i++)' pattern.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5994
diff
changeset
|
129 for (int i = 0, I = itemList.size(); i < I; i++) { |
3183
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
130 if (i != 0) { |
9496
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
131 final LegendItem litem = itemList.get(i); |
3183
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
132 |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
133 // Make shape and line really small. |
9496
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
134 final LegendItem merged = new LegendItem("," + litem.getLabel(), litem.getDescription(), litem.getToolTipText(), litem.getURLText(), |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
135 false, SPACE, false, litem.getFillPaint(), false, litem.getOutlinePaint(), litem.getOutlineStroke(), false, SPACE, |
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
136 litem.getLineStroke(), litem.getLinePaint()); |
3183
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
137 newLegend.add(merged); |
9496
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
138 } else { |
3183
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
139 newLegend.add(itemList.get(i)); |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
140 } |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
141 } |
9496
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
142 } else { |
3183
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
143 // Do not merge entries. |
9496
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
144 for (final LegendItem li : itemList) { |
3183
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
145 newLegend.add(li); |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
146 } |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
147 } |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
148 } |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
149 |
9496
d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents:
8856
diff
changeset
|
150 plot.setFixedLegendItems(newLegend); |
3183
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
151 } |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
152 } |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
153 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |