Revision 46104 trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/programming/CreateChartPanelFunction.java
CreateChartPanelFunction.java | ||
---|---|---|
3 | 3 |
import java.awt.Dimension; |
4 | 4 |
import java.util.ArrayList; |
5 | 5 |
import java.util.HashMap; |
6 |
import java.util.Iterator; |
|
6 | 7 |
import java.util.List; |
7 | 8 |
import java.util.Objects; |
8 | 9 |
import javax.json.JsonArray; |
... | ... | |
11 | 12 |
import org.apache.commons.lang3.Range; |
12 | 13 |
import org.apache.commons.lang3.StringUtils; |
13 | 14 |
import org.apache.commons.lang3.math.NumberUtils; |
15 |
import org.gvsig.expressionevaluator.ExpressionRuntimeException; |
|
14 | 16 |
import org.gvsig.expressionevaluator.Function; |
15 | 17 |
import org.gvsig.expressionevaluator.Interpreter; |
16 | 18 |
import org.gvsig.expressionevaluator.spi.AbstractFunction; |
... | ... | |
57 | 59 |
if (!(obj instanceof JsonObject)) { |
58 | 60 |
obj = JsonUtils.toJsonObject(obj); |
59 | 61 |
} |
60 |
Object obj1 = getObject(args, 1); |
|
61 |
GetItemWithSize dataset = null; |
|
62 |
if ((obj1 instanceof GetItemWithSize)) { |
|
63 |
dataset = ((GetItemWithSize) obj1); |
|
62 |
|
|
63 |
Iterable dataset = null; |
|
64 |
if (args.length>0) { |
|
65 |
Object obj1 = getObject(args, 1); |
|
66 |
if ((obj1 instanceof GetItemWithSize)) { |
|
67 |
GetItemWithSize values = (GetItemWithSize) obj1; |
|
68 |
dataset = new Iterable() { |
|
69 |
@Override |
|
70 |
public Iterator iterator() { |
|
71 |
return new Iterator() { |
|
72 |
int n = 0; |
|
73 |
@Override |
|
74 |
public boolean hasNext() { |
|
75 |
return n < values.size(); |
|
76 |
} |
|
77 |
|
|
78 |
@Override |
|
79 |
public Object next() { |
|
80 |
return values.get(n++); |
|
81 |
} |
|
82 |
}; |
|
83 |
} |
|
84 |
}; |
|
85 |
} else if (obj1 instanceof Iterable) { |
|
86 |
dataset = (Iterable) obj1; |
|
87 |
} else { |
|
88 |
throw new ExpressionRuntimeException("dataset type not supported"); |
|
89 |
} |
|
64 | 90 |
} |
65 | 91 |
|
66 | 92 |
JsonObject jsonobj = ((JsonObject) obj); |
... | ... | |
69 | 95 |
|
70 | 96 |
} |
71 | 97 |
|
72 |
public ChartPanel createGraph(JsonObject json, GetItemWithSize<GetItemByKey> dataset) {
|
|
98 |
public ChartPanel createGraph(JsonObject json, Iterable<GetItemByKey> dataset) {
|
|
73 | 99 |
String chartType = json.getString("chartType").toLowerCase(); |
74 | 100 |
switch (chartType) { |
75 | 101 |
case "boxandwhisker": { |
... | ... | |
77 | 103 |
HashMap<String, HashMap<String, List<Number>>> tree = new HashMap<String, HashMap<String, List<Number>>>(); |
78 | 104 |
String field1 = json.getString("field1"); |
79 | 105 |
String field2 = json.getString("field2"); |
80 |
for (int i = 0; i < dataset.size(); i++) { |
|
81 |
GetItemByKey element = dataset.get(i); |
|
106 |
for (GetItemByKey element : dataset) { |
|
82 | 107 |
String rowValue = Objects.toString(element.get(field1), null); |
83 | 108 |
String colValue = Objects.toString(element.get(field2), null); |
84 | 109 |
double elementValue = NumberUtils.toDouble(Objects.toString(element.get(valueField), null)); |
... | ... | |
139 | 164 |
String valueField = json.getString("valueField"); |
140 | 165 |
String field1 = json.getString("field1"); |
141 | 166 |
String field2 = json.getString("field2"); |
142 |
for (int i = 0; i < dataset.size(); i++) { |
|
143 |
GetItemByKey element = dataset.get(i); |
|
167 |
for (GetItemByKey element : dataset) { |
|
144 | 168 |
|
145 | 169 |
try { |
146 | 170 |
ds.addValue(NumberUtils.toDouble(Objects.toString(element.get(valueField), null), Double.NaN), |
Also available in: Unified diff