package com.num.graph;
import java.util.Date;
import org.achartengine.ChartFactory;
import org.achartengine.GraphicalView;
import org.achartengine.chart.PointStyle;
import org.achartengine.chart.BarChart.Type;
import org.achartengine.model.CategorySeries;
import org.achartengine.model.TimeSeries;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.model.XYSeries;
import org.achartengine.renderer.SimpleSeriesRenderer;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer;
import android.content.Context;
import android.graphics.Color;
import android.graphics.Typeface;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;
import com.num.R;
import com.num.Values;
import com.num.database.DatabasePicker;
import com.num.models.GraphData;
import com.num.models.GraphPoint;
public abstract class ChartView extends LinearLayout{
Values values;
DatabasePicker picker;
Context context;
private LayoutInflater mInflater;
private LinearLayout mBarView;
protected XYMultipleSeriesDataset dataset;
protected XYMultipleSeriesRenderer renderer;
protected GraphicalView mChartView;
protected GraphData data;
public ChartView(Context _context, AttributeSet _attrs) {
super(_context, _attrs);
context = _context;
mInflater = (LayoutInflater) _context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mBarView = (LinearLayout) mInflater.inflate(R.layout.cell_view_graph, null);
addView(mBarView);
renderer = new XYMultipleSeriesRenderer();
dataset = new XYMultipleSeriesDataset();
}
public void setPicker(DatabasePicker picker) {
this.picker = picker;
}
public void constructGraph() {
makeUnClickable();
customizeUI();
mBarView.addView(mChartView, new LayoutParams(LayoutParams.FILL_PARENT,
250));
repaint();
}
public void updateGraph() {
data = picker.getGraphDataWithoutOutliers();
renderer.setYAxisMax(data.getyMax()*1.2);
renderer.setChartTitle(data.getxAxisTitle());
}
protected void repaint() {
mChartView.repaint();
}
protected void makeUnClickable() {
renderer.setPanEnabled(false,false);
renderer.setZoomEnabled(false, false);
renderer.setClickEnabled(false);
renderer.setShowGridX(true);
renderer.setInScroll(true);
renderer.setShowLegend(false);
}
protected void customizeUI() {
renderer.setMargins(new int[] {0, 35, -10, 0});
renderer.setYAxisMax(0);
renderer.setYTitle(picker.getYAxisLabel());
renderer.setYAxisMin(0.0);
renderer.setLabelsTextSize(14);
renderer.setPointSize(0);
renderer.setApplyBackgroundColor(true);
renderer.setBackgroundColor(getResources().getColor(R.color.black));
renderer.setLabelsColor(getResources().getColor(R.color.text_primary));
renderer.setMarginsColor(getResources().getColor(R.color.black));
renderer.setGridColor(getResources().getColor(R.color.dark_blue));
renderer.setAxesColor(getResources().getColor(R.color.dark_blue));
renderer.setChartTitleTextSize(20);
renderer.setTextTypeface("Bold", Typeface.NORMAL);
renderer.setSelectableBuffer(100);
}
}