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

View differences:

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