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
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 7254
diff changeset
39 // TODO Do proper implementation.
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 7254
diff changeset
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
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 7254
diff changeset
123 // Unfortunately we cannot clone and just setDescription,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 7254
diff changeset
124 // as this method was added in JFreeChart 1.0.14
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 7254
diff changeset
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 :

http://dive4elements.wald.intevation.org