Android Open Source - customhellochartdemo Combo Line Column Chart View






From Project

Back to project page customhellochartdemo.

License

The source code is released under:

Apache License

If you think the Android project customhellochartdemo listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package lecho.lib.hellocharts.view;
/*from  w  ww.jav  a 2 s  . c  o m*/
import lecho.lib.hellocharts.BuildConfig;
import lecho.lib.hellocharts.model.ChartData;
import lecho.lib.hellocharts.model.ColumnChartData;
import lecho.lib.hellocharts.model.ColumnValue;
import lecho.lib.hellocharts.model.ComboLineColumnChartData;
import lecho.lib.hellocharts.model.LineChartData;
import lecho.lib.hellocharts.model.PointValue;
import lecho.lib.hellocharts.model.SelectedValue;
import lecho.lib.hellocharts.provider.ColumnChartDataProvider;
import lecho.lib.hellocharts.provider.ComboLineColumnChartDataProvider;
import lecho.lib.hellocharts.provider.LineChartDataProvider;
import lecho.lib.hellocharts.renderer.ComboLineColumnChartRenderer;
import android.content.Context;
import android.support.v4.view.ViewCompat;
import android.util.AttributeSet;
import android.util.Log;

/**
 * ComboChart, supports ColumnChart combined with LineChart. Lines are always drawn on top.
 * 
 * @author Leszek Wach
 * 
 */
public class ComboLineColumnChartView extends AbstractChartView implements ComboLineColumnChartDataProvider {
  private static final String TAG = "ComboLineColumnChartView";
  protected ComboLineColumnChartData data;
  protected ColumnChartDataProvider columnChartDataProvider = new ComboColumnChartDataProvider();
  protected LineChartDataProvider lineChartDataProvider = new ComboLineChartDataProvider();
  protected ComboLineColumnChartOnValueTouchListener onValueTouchListener = new DummyOnValueTouchListener();

  public ComboLineColumnChartView(Context context) {
    this(context, null, 0);
  }

  public ComboLineColumnChartView(Context context, AttributeSet attrs) {
    this(context, attrs, 0);
  }

  public ComboLineColumnChartView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    chartRenderer = new ComboLineColumnChartRenderer(context, this, columnChartDataProvider, lineChartDataProvider);
    setComboLineColumnChartData(ComboLineColumnChartData.generateDummyData());
  }

  @Override
  public ComboLineColumnChartData getComboLineColumnChartData() {
    return data;
  }

  @Override
  public void setComboLineColumnChartData(ComboLineColumnChartData data) {
    if (BuildConfig.DEBUG) {
      Log.d(TAG, "Setting data for ComboLineColumnChartView");
    }

    if (null == data) {
      this.data = null;// generateDummyData();
    } else {
      this.data = data;
    }

    axesRenderer.initAxesAttributes();
    chartRenderer.initDataAttributes();
    chartRenderer.initMaxViewport();
    chartRenderer.initCurrentViewport();

    ViewCompat.postInvalidateOnAnimation(ComboLineColumnChartView.this);
  }

  @Override
  public ChartData getChartData() {
    return data;
  }

  @Override
  public void callTouchListener() {
    SelectedValue selectedValue = chartRenderer.getSelectedValue();

    if (selectedValue.isSet()) {

      if (ComboLineColumnChartRenderer.TYPE_COLUMN == selectedValue.getThirdIndex()) {

        ColumnValue value = data.getColumnChartData().getColumns().get(selectedValue.getFirstIndex())
            .getValues().get(selectedValue.getSecondIndex());
        onValueTouchListener.onColumnValueTouched(selectedValue.getFirstIndex(),
            selectedValue.getSecondIndex(), value);

      } else if (ComboLineColumnChartRenderer.TYPE_LINE == selectedValue.getThirdIndex()) {

        PointValue value = data.getLineChartData().getLines().get(selectedValue.getFirstIndex()).getValues()
            .get(selectedValue.getSecondIndex());
        onValueTouchListener.onPointValueTouched(selectedValue.getFirstIndex(), selectedValue.getSecondIndex(),
            value);

      } else {
        throw new IllegalArgumentException("Invalid selected value type " + selectedValue.getThirdIndex());
      }
    } else {
      onValueTouchListener.onNothingTouched();
    }
  }

  public ComboLineColumnChartOnValueTouchListener getOnValueTouchListener() {
    return onValueTouchListener;
  }

  public void setOnValueTouchListener(ComboLineColumnChartOnValueTouchListener touchListener) {
    if (null == touchListener) {
      this.onValueTouchListener = new DummyOnValueTouchListener();
    } else {
      this.onValueTouchListener = touchListener;
    }
  }

  public interface ComboLineColumnChartOnValueTouchListener {
    public void onColumnValueTouched(int selectedLine, int selectedValue, ColumnValue value);

    public void onPointValueTouched(int selectedLine, int selectedValue, PointValue value);

    public void onNothingTouched();
  }

  private static class DummyOnValueTouchListener implements ComboLineColumnChartOnValueTouchListener {

    @Override
    public void onNothingTouched() {
    }

    @Override
    public void onColumnValueTouched(int selectedLine, int selectedValue, ColumnValue value) {

    }

    @Override
    public void onPointValueTouched(int selectedLine, int selectedValue, PointValue value) {

    }
  }

  private class ComboLineChartDataProvider implements LineChartDataProvider {

    @Override
    public LineChartData getLineChartData() {
      return ComboLineColumnChartView.this.data.getLineChartData();
    }

    @Override
    public void setLineChartData(LineChartData data) {
      ComboLineColumnChartView.this.data.setLineChartData(data);

    }

  }

  private class ComboColumnChartDataProvider implements ColumnChartDataProvider {

    @Override
    public ColumnChartData getColumnChartData() {
      return ComboLineColumnChartView.this.data.getColumnChartData();
    }

    @Override
    public void setColumnChartData(ColumnChartData data) {
      ComboLineColumnChartView.this.data.setColumnChartData(data);

    }

  }

}




Java Source Code List

lecho.lib.hellocharts.ChartComputator.java
lecho.lib.hellocharts.DummyChartAnimationListener.java
lecho.lib.hellocharts.DummyVieportChangeListener.java
lecho.lib.hellocharts.PreviewChartComputator.java
lecho.lib.hellocharts.ViewportChangeListener.java
lecho.lib.hellocharts.animation.ChartAnimationListener.java
lecho.lib.hellocharts.animation.ChartDataAnimatorV14.java
lecho.lib.hellocharts.animation.ChartDataAnimatorV8.java
lecho.lib.hellocharts.animation.ChartDataAnimator.java
lecho.lib.hellocharts.animation.ChartViewportAnimatorV14.java
lecho.lib.hellocharts.animation.ChartViewportAnimatorV8.java
lecho.lib.hellocharts.animation.ChartViewportAnimator.java
lecho.lib.hellocharts.animation.PieChartRotationAnimatorV14.java
lecho.lib.hellocharts.animation.PieChartRotationAnimatorV8.java
lecho.lib.hellocharts.animation.PieChartRotationAnimator.java
lecho.lib.hellocharts.gesture.ChartScroller.java
lecho.lib.hellocharts.gesture.ChartTouchHandler.java
lecho.lib.hellocharts.gesture.ChartZoomer.java
lecho.lib.hellocharts.gesture.ContainerScrollType.java
lecho.lib.hellocharts.gesture.PieChartTouchHandler.java
lecho.lib.hellocharts.gesture.PreviewChartTouchHandler.java
lecho.lib.hellocharts.gesture.ZoomType.java
lecho.lib.hellocharts.gesture.ZoomerCompat.java
lecho.lib.hellocharts.model.AbstractChartData.java
lecho.lib.hellocharts.model.ArcValue.java
lecho.lib.hellocharts.model.AxisValue.java
lecho.lib.hellocharts.model.Axis.java
lecho.lib.hellocharts.model.BubbleChartData.java
lecho.lib.hellocharts.model.BubbleValue.java
lecho.lib.hellocharts.model.ChartData.java
lecho.lib.hellocharts.model.ColumnChartData.java
lecho.lib.hellocharts.model.ColumnValue.java
lecho.lib.hellocharts.model.Column.java
lecho.lib.hellocharts.model.ComboLineColumnChartData.java
lecho.lib.hellocharts.model.LineChartData.java
lecho.lib.hellocharts.model.Line.java
lecho.lib.hellocharts.model.PieChartData.java
lecho.lib.hellocharts.model.PointValue.java
lecho.lib.hellocharts.model.SelectedValue.java
lecho.lib.hellocharts.model.SimpleValueFormatter.java
lecho.lib.hellocharts.model.ValueFormatter.java
lecho.lib.hellocharts.model.ValueShape.java
lecho.lib.hellocharts.model.Viewport.java
lecho.lib.hellocharts.provider.BubbleChartDataProvider.java
lecho.lib.hellocharts.provider.ColumnChartDataProvider.java
lecho.lib.hellocharts.provider.ComboLineColumnChartDataProvider.java
lecho.lib.hellocharts.provider.LineChartDataProvider.java
lecho.lib.hellocharts.provider.PieChartDataProvider.java
lecho.lib.hellocharts.renderer.AbstractChartRenderer.java
lecho.lib.hellocharts.renderer.AxesRenderer.java
lecho.lib.hellocharts.renderer.BubbleChartRenderer.java
lecho.lib.hellocharts.renderer.ChartRenderer.java
lecho.lib.hellocharts.renderer.ColumnChartRenderer.java
lecho.lib.hellocharts.renderer.ComboLineColumnChartRenderer.java
lecho.lib.hellocharts.renderer.LineChartRenderer.java
lecho.lib.hellocharts.renderer.PieChartRenderer.java
lecho.lib.hellocharts.renderer.PreviewColumnChartRenderer.java
lecho.lib.hellocharts.renderer.PreviewLineChartRenderer.java
lecho.lib.hellocharts.samples.AboutActivity.java
lecho.lib.hellocharts.samples.BrokenLineChartActivity.java
lecho.lib.hellocharts.samples.BrokenLineView.java
lecho.lib.hellocharts.samples.BubbleChartActivity.java
lecho.lib.hellocharts.samples.ColumnChartActivity.java
lecho.lib.hellocharts.samples.ComboLineColumnChartActivity.java
lecho.lib.hellocharts.samples.GoodBadChartActivity.java
lecho.lib.hellocharts.samples.LineChartActivity.java
lecho.lib.hellocharts.samples.LineColumnDependencyActivity.java
lecho.lib.hellocharts.samples.MainActivity.java
lecho.lib.hellocharts.samples.PieChartActivity.java
lecho.lib.hellocharts.samples.PreviewColumnChartActivity.java
lecho.lib.hellocharts.samples.PreviewLineChartActivity.java
lecho.lib.hellocharts.samples.SpeedChartActivity.java
lecho.lib.hellocharts.samples.TempoChartActivity.java
lecho.lib.hellocharts.samples.ViewPagerChartsActivity.java
lecho.lib.hellocharts.util.AxisAutoValues.java
lecho.lib.hellocharts.util.Utils.java
lecho.lib.hellocharts.view.AbstractChartView.java
lecho.lib.hellocharts.view.BubbleChartView.java
lecho.lib.hellocharts.view.Chart.java
lecho.lib.hellocharts.view.ColumnChartView.java
lecho.lib.hellocharts.view.ComboLineColumnChartView.java
lecho.lib.hellocharts.view.LineChartView.java
lecho.lib.hellocharts.view.PieChartView.java
lecho.lib.hellocharts.view.PreviewColumnChartView.java
lecho.lib.hellocharts.view.PreviewLineChartView.java
lecho.lib.hellocharts.view.hack.HackyDrawerLayout.java
lecho.lib.hellocharts.view.hack.HackyViewPager.java