package com.stanleycen.facebookanalytics;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
import com.stanleycen.facebookanalytics.graph.Line;
import com.stanleycen.facebookanalytics.graph.LineGraph;
import java.util.ArrayList;
/**
* Created by scen on 8/31/13.
*/
public class CardLineChart implements CardItem {
public final String title;
private int viewType;
private ArrayList<Line> lines;
private LineGraph.LabelFormatter xFormatter;
private LineGraph.LabelFormatter yFormatter;
private float minY = Float.MAX_VALUE;
private float maxY = Float.MAX_VALUE;
private int numHorizontalGrids = 5;
private int numVerticalGrids = 6;
private boolean shouldCacheToBitmap;
public int getViewType() {
return viewType;
}
public CardLineChart(int viewType, String title) {
this.viewType = viewType;
this.title = title;
}
@Override
public boolean isEnabled() {
return false;
}
@Override
public View getView(LayoutInflater inflater, View convertView, int position, final Context context) {
View v = convertView;
CardLineChartHolder holder = new CardLineChartHolder();
if (v == null) {
v = (View) inflater.inflate(R.layout.card_line_chart, null);
holder.title = (TextView) v.findViewById(R.id.title);
holder.lineChart = (LineGraph) v.findViewById(R.id.linechart);
v.setTag(holder);
} else {
holder = (CardLineChartHolder) v.getTag();
}
holder.lineChart.setLines(lines);
holder.lineChart.setNumVerticalGrids(getNumVerticalGrids());
holder.lineChart.setNumHorizontalGrids(getNumHorizontalGrids());
holder.lineChart.setXlabelFormatter(getxFormatter());
holder.lineChart.setYlabelFormatter(getyFormatter());
holder.lineChart.setShouldCacheToBitmap(isShouldCacheToBitmap());
if (minY != Float.MAX_VALUE) {
holder.lineChart.setRangeY(minY, maxY);
}
holder.title.setText(this.title);
return v;
}
public ArrayList<Line> getLines() {
return lines;
}
public void setLines(ArrayList<Line> lines) {
this.lines = lines;
}
public LineGraph.LabelFormatter getxFormatter() {
return xFormatter;
}
public void setxFormatter(LineGraph.LabelFormatter xFormatter) {
this.xFormatter = xFormatter;
}
public LineGraph.LabelFormatter getyFormatter() {
return yFormatter;
}
public void setyFormatter(LineGraph.LabelFormatter yFormatter) {
this.yFormatter = yFormatter;
}
public void setRangeY(float min, float max) {
this.minY = min;
this.maxY = max;
}
public int getNumHorizontalGrids() {
return numHorizontalGrids;
}
public void setNumHorizontalGrids(int numHorizontalGrids) {
this.numHorizontalGrids = numHorizontalGrids;
}
public int getNumVerticalGrids() {
return numVerticalGrids;
}
public void setNumVerticalGrids(int numVerticalGrids) {
this.numVerticalGrids = numVerticalGrids;
}
public boolean isShouldCacheToBitmap() {
return shouldCacheToBitmap;
}
public void setShouldCacheToBitmap(boolean shouldCacheToBitmap) {
this.shouldCacheToBitmap = shouldCacheToBitmap;
}
private class CardLineChartHolder {
TextView title;
LineGraph lineChart;
}
}