/* * Ext GWT - Ext for GWT * Copyright(c) 2007-2009, 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.BarChart; import com.extjs.gxt.charts.client.model.charts.ChartConfig; import com.extjs.gxt.charts.client.model.charts.BarChart.Bar; import com.extjs.gxt.ui.client.data.ModelData; /** * <code>DataProvider</code> implementation for bar charts. */ public class BarDataProvider extends PieDataProvider { public BarDataProvider(String valueProperty) { super(valueProperty); } public BarDataProvider(String valueProperty, String labelProperty, String textProperty) { super(valueProperty, labelProperty, textProperty); } public BarDataProvider(String valueProperty, String labelProperty) { super(valueProperty, labelProperty); } @Override public void populateData(ChartConfig config) { BarChart chart = (BarChart) config; chart.getValues().clear(); XAxis xAxis = null; if (labelProperty != null) { xAxis = chart.getModel().getXAxis(); if (xAxis == null) { xAxis = new XAxis(); chart.getModel().setXAxis(xAxis); } xAxis.getLabels().getLabels().clear(); } for (ModelData m : store.getModels()) { Object v = m.get(valueProperty); Number n = v instanceof String ? Double.parseDouble((String) v) : (Number) v; chart.addBars(new Bar(n)); minYValue = Math.min(minYValue, n.doubleValue()); maxYValue = Math.max(maxYValue, n.doubleValue()); if (xAxis != null) xAxis.addLabels(getLabel(m, valueProperty)); } } }