/*
* Ext GWT 2.2.4 - Ext for GWT
* Copyright(c) 2007-2010, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
package com.extjs.gxt.charts.client.model;
import com.extjs.gxt.charts.client.model.axis.XAxis;
import com.extjs.gxt.charts.client.model.charts.ChartConfig;
import com.extjs.gxt.charts.client.model.charts.LineChart;
import com.extjs.gxt.ui.client.data.ModelData;
/**
* <code>DataProvider</code> implementation for line charts.
*/
public class LineDataProvider extends PieDataProvider {
public LineDataProvider(String valueProperty) {
super(valueProperty);
}
public LineDataProvider(String valueProperty, String labelProperty, String textProperty) {
super(valueProperty, labelProperty, textProperty);
}
public LineDataProvider(String valueProperty, String labelProperty) {
super(valueProperty, labelProperty);
}
@Override
public void populateData(ChartConfig config) {
LineChart chart = (LineChart) config;
chart.getValues().clear();
XAxis xAxis = null;
if (labelProperty != null || labelProvider != null) {
xAxis = chart.getModel().getXAxis();
if (xAxis == null) {
xAxis = new XAxis();
chart.getModel().setXAxis(xAxis);
}
xAxis.getLabels().getLabels().clear();
}
boolean first = true;
for (ModelData m : store.getModels()) {
Number n = getValue(m);
if (n == null) {
chart.addNullValue();
} else {
chart.addValues(n);
maxYValue = first ? n.doubleValue() : Math.max(maxYValue, n.doubleValue());
minYValue = first ? n.doubleValue() : Math.min(minYValue, n.doubleValue());
first = false;
}
if (xAxis != null) {
xAxis.addLabels(getLabel(m));
}
}
}
}