import java.awt.Color;\r
import java.lang.reflect.InvocationTargetException;\r
import java.lang.reflect.Method;\r
+import java.util.Collection;\r
import java.util.Iterator;\r
\r
import javax.measure.quantity.Area;\r
\r
@SuppressWarnings("unchecked")\r
public void setDomain(Iterable<Amount<X>> d) {\r
-\r
- //double low = d.low.doubleValue(xUnit);\r
- //double high = d.high.doubleValue(xUnit);\r
- //double step = (high - low) / 50;\r
- //for (double x = low; x < high; x += step) {\r
- //Amount<X> ax = Amount.valueOf(x, xUnit);\r
+ int skip = 1;\r
+ int sz = 0;\r
+ if ( d instanceof Collection ){\r
+ sz = ((Collection)d).size();\r
+ if ( sz > 200 )\r
+ skip = sz / 200;\r
+ }\r
series.clear();\r
+ int cnt = 0;\r
for( Amount<X> ax: d){\r
try {\r
- Amount<Y> y = (Amount<Y>)f.invoke(source, ax);\r
- add(ax, y);\r
+ if ( cnt % skip == 0 || cnt == sz-1 ){\r
+ Amount<Y> y = (Amount<Y>)f.invoke(source, ax);\r
+ add(ax, y);\r
+ }\r
+ cnt++;\r
} catch (IllegalArgumentException e) {\r
// TODO Auto-generated catch block\r
e.printStackTrace();\r