Mercurial > dive4elements > river
annotate flys-artifacts/src/main/java/de/intevation/flys/exports/LegendProcessor.java @ 3256:17ca0a43027a
Removed trailing whitespace
flys-artifacts/trunk@4890 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Sat, 07 Jul 2012 09:23:33 +0000 |
parents | 075f1ba25758 |
children | 7cc05da7e35c |
rev | line source |
---|---|
3183
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.exports; |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
2 |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
3 import java.awt.geom.Line2D; |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
4 |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
5 import java.util.ArrayList; |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
6 import java.util.HashMap; |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
7 import java.util.Iterator; |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
8 import java.util.List; |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
9 import java.util.LinkedHashMap; |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
10 import java.util.Map; |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
11 |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
12 import org.jfree.chart.JFreeChart; |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
13 import org.jfree.chart.LegendItem; |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
14 import org.jfree.chart.LegendItemCollection; |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
15 import org.jfree.chart.plot.XYPlot; |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
16 |
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 /** Class to process Plots legends. */ |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
19 public abstract class LegendProcessor { |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
20 |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
21 /** (Empty) shape for aggregated Legend Items. */ |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
22 private static final Line2D.Double SPACE = new Line2D.Double(0,0,0,0); |
3189
89dc2db3a202
Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3183
diff
changeset
|
23 |
3183
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 /** Prevent instantiations. */ |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
26 private LegendProcessor() { |
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 |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
29 |
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 * Create a hash from a legenditem. |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
32 * This hash can then be used to merge legend items labels. |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
33 * @return hash for given legenditem to identify mergeables. |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
34 */ |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
35 protected static String legendItemHash(LegendItem li) { |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
36 // TODO Do proper implementation. Ensure that only mergable sets are created. |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
37 // getFillPaint() |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
38 // getFillPaintTransformer() |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
39 // getLabel() |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
40 // getLine() |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
41 // getLinePaint() |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
42 // getLineStroke() |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
43 // getOutminePaint() |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
44 // getOutlineStroke() |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
45 // Shape getShape() |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
46 // String getToolTipText() |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
47 // String getURLText() |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
48 // boolean isLineVisible() |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
49 // boolean isShapeFilled() |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
50 // boolean isShapeOutlineVisible() |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
51 // boolean isShapeVisible() |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
52 String hash = li.getLinePaint().toString(); |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
53 String label = li.getLabel(); |
3224
075f1ba25758
issue654
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3189
diff
changeset
|
54 /*if (label.startsWith("W (") || label.startsWith("W(")) { |
3183
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
55 hash += "-W-"; |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
56 } |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
57 else if (label.startsWith("Q(") || label.startsWith("Q (")) { |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
58 hash += "-Q-"; |
3224
075f1ba25758
issue654
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3189
diff
changeset
|
59 }*/ |
3183
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
60 |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
61 // WQ.java holds example of using regex Matcher/Pattern. |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
62 |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
63 return hash; |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
64 } |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
65 |
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 /** |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
68 * Create new legend entries, dependent on settings. |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
69 * @param plot The plot for which to modify the legend. |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
70 * @param threshold How many items are needed for aggregation to |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
71 * be triggered? |
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 public static void aggregateLegendEntries(XYPlot plot, int threshold) { |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
74 LegendItemCollection old = plot.getLegendItems(); |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
75 // Find "similar" entries if aggregation is enabled. |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
76 |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
77 int maxListSize = 0; |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
78 int AGGR_THRESHOLD = threshold; |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
79 |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
80 if (AGGR_THRESHOLD > old.getItemCount() || AGGR_THRESHOLD <= 0){ |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
81 return; |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
82 } |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
83 |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
84 HashMap<String, List<LegendItem>> entries = new LinkedHashMap<String, List<LegendItem>>(); |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
85 for (Iterator i = old.iterator(); i.hasNext();) { |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
86 LegendItem item = (LegendItem) i.next(); |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
87 String hash = legendItemHash(item); |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
88 List<LegendItem> itemList = entries.get(hash); |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
89 if (itemList == null) { |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
90 itemList = new ArrayList<LegendItem>(); |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
91 } |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
92 itemList.add(item); |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
93 |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
94 if (itemList.size() > maxListSize) { |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
95 maxListSize = itemList.size(); |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
96 } |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
97 |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
98 entries.put(legendItemHash(item), itemList); |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
99 } |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
100 |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
101 if (maxListSize < AGGR_THRESHOLD) { |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
102 // No need to do anything. |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
103 return; |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
104 } |
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 // Run over collected entries, merge their names and create new |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
107 // entry if needed. |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
108 LegendItemCollection newLegend = new LegendItemCollection(); |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
109 for (Map.Entry<String, List<LegendItem>> cursor: entries.entrySet()) { |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
110 List<LegendItem> itemList = cursor.getValue(); |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
111 if (itemList.size() >= AGGR_THRESHOLD) { |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
112 // Now do merging. |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
113 LegendItem item = (LegendItem) itemList.get(0); |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
114 // Unfortunately we cannot clone and just setDescription, as this |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
115 // method was added in JFreeChart 1.0.14 (we are at .13). |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
116 |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
117 // Remove the shapes of all but the first items, |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
118 // to prevent "overfill" of legenditemblock. |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
119 for (int i = 0; i < itemList.size(); i++) { |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
120 if (i != 0) { |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
121 LegendItem litem = itemList.get(i); |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
122 |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
123 // Make shape and line really small. |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
124 LegendItem merged = new LegendItem( |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
125 "," + litem.getLabel(), litem.getDescription(), litem.getToolTipText(), |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
126 litem.getURLText(), false, SPACE, |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
127 false, litem.getFillPaint(), false, |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
128 litem.getOutlinePaint(), litem.getOutlineStroke(), false, |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
129 SPACE, litem.getLineStroke(), litem.getLinePaint()); |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
130 newLegend.add(merged); |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
131 } |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
132 else { |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
133 newLegend.add(itemList.get(i)); |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
134 } |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
135 } |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
136 } |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
137 else { |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
138 // Do not merge entries. |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
139 for (LegendItem li: itemList) { |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
140 newLegend.add(li); |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
141 } |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
142 } |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
143 } |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
144 |
05c84d65988a
Extracted legenditemaggregation from xychartgenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
145 plot.setFixedLegendItems (newLegend); |
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 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |