Package com.extjs.gxt.charts.client.model

Source Code of com.extjs.gxt.charts.client.model.PieDataProvider

/*
* 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.charts.ChartConfig;
import com.extjs.gxt.charts.client.model.charts.PieChart;
import com.extjs.gxt.charts.client.model.charts.PieChart.Slice;
import com.extjs.gxt.ui.client.data.ModelData;
import com.extjs.gxt.ui.client.data.ModelStringProvider;

/**
* <code>DataProvider</code> implementation for pie charts.
*/
public class PieDataProvider extends DataProvider {

  protected String valueProperty;

  /**
   * Creates a new pie data provider.
   *
   * @param valueProperty the property name which contains the value
   */
  public PieDataProvider(String valueProperty) {
    this.valueProperty = valueProperty;
  }

  public PieDataProvider(String valueProperty, String labelProperty) {
    this.valueProperty = valueProperty;
    this.labelProperty = labelProperty;
  }

  public PieDataProvider(String valueProperty, String labelProperty, String textProperty) {
    this.valueProperty = valueProperty;
    this.labelProperty = labelProperty;
    this.textProperty = textProperty;
  }

  /**
   * Returns the label property.
   *
   * @return the label property
   */
  public String getLabelProperty() {
    return labelProperty;
  }

  /**
   * Returns the model label provider.
   *
   * @return the label provider
   */
  public ModelStringProvider<ModelData> getLabelProvider() {
    return labelProvider;
  }

  /**
   * Returns the model text provider.
   *
   * @return the model text provider
   */
  public ModelStringProvider<ModelData> getTextProvider() {
    return textProvider;
  }

  /**
   * Returns the value property.
   *
   * @return the value property
   */
  public String getValueProperty() {
    return valueProperty;
  }

  @Override
  public void populateData(ChartConfig config) {
    PieChart chart = (PieChart) config;
    chart.getValues().clear();

    for (ModelData m : store.getModels()) {
      Object v = m.get(valueProperty);
      Number n = v instanceof String ? Double.parseDouble((String) v) : (Number) v;
      chart.addSlices(new Slice(n, getLabel(m, valueProperty), getText(m, valueProperty)));
    }
  }

  /**
   * Sets the label property. Works when models contains a property with the
   * label value, an alternative is to use a label provider (
   * {@link #setLabelProvider(ModelStringProvider)}.
   *
   * @param labelProperty the label property
   */
  public void setLabelProperty(String labelProperty) {
    this.labelProperty = labelProperty;
  }

  /**
   * Sets the label provider.
   *
   * @param labelProvider the label provider
   */
  public void setLabelProvider(ModelStringProvider<ModelData> labelProvider) {
    this.labelProvider = labelProvider;
  }

  public void setTextProvider(ModelStringProvider<ModelData> textProvider) {
    this.textProvider = textProvider;
  }

  public void setValueProperty(String valueProperty) {
    this.valueProperty = valueProperty;
  }

}
TOP

Related Classes of com.extjs.gxt.charts.client.model.PieDataProvider

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.