package com.example.kwh;
import java.util.ArrayList;
import java.util.List;
import org.achartengine.ChartFactory;
import org.achartengine.chart.PointStyle;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.model.XYSeries;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Menu;
public class Graph {
Bundle kwhData;
public Intent getIntent(Context context, double [] kwh_cst, double [] kwh_yrs, int kwh_len){
XYMultipleSeriesDataset dataset = createData(kwh_cst, kwh_yrs, kwh_len);
XYMultipleSeriesRenderer render = renderGraph();
Intent intent = ChartFactory.getLineChartIntent(context, dataset, render, "See KWH!");
return intent;
}
public void addXYSeries(XYMultipleSeriesDataset dataset, String[] titles, List<double[]> xValues,
List<double[]> yValues, int scale) {
int length = titles.length;
for (int i = 0; i < length; i++) {
XYSeries series = new XYSeries(titles[i], scale);
double[] xV = xValues.get(i);
double[] yV = yValues.get(i);
int seriesLength = xV.length;
for (int k = 0; k < seriesLength; k++) {
series.add(xV[k], yV[k]);
}
dataset.addSeries(series);
}
}
public XYMultipleSeriesDataset buildDataset(String[] titles, List<double[]> xValues,
List<double[]> yValues) {
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
addXYSeries(dataset, titles, xValues, yValues, 0);
return dataset;
}
public XYMultipleSeriesDataset createData(double [] kwh_c, double [] kwh_y, int kwh_len){
List<double[]> xVals = new ArrayList<double[]>();
xVals.add(kwh_y);
//look into this more List<double[]>
List<double[]> yVals = new ArrayList<double[]>();
// double[] kwhDataSet = kwhData.getDoubleArray("kwh_data");
yVals.add( kwh_c );
//titles [] had elements "series1" and "series2"
//but was modified because we only have one series
// in this test
String[] titles = new String[]{"series1"};
return buildDataset(titles, xVals, yVals);
}
public XYMultipleSeriesRenderer renderGraph(){
XYMultipleSeriesRenderer r = new XYMultipleSeriesRenderer();
String [] desc = new String[] {"Title", "Xaxsis", "Yaxsis"};
int [] margins = new int[] {40,30,30,30};
r.setXAxisMin(2000);
r.setXAxisMax(2020);
r.setYAxisMin(0.0);
r.setYAxisMax(30.0);
r.setChartTitle(desc[0]);
r.setXTitle(desc[1]);
r.setYTitle(desc[2]);
r.setAxisTitleTextSize(20);
r.setChartTitleTextSize(25);
r.setLabelsTextSize(10);
r.setLegendTextSize(15);
r.setXRoundedLabels(true);
r.setMargins(margins);
r.setPointSize(5);
r.setGridColor(Color.DKGRAY);
r.setShowGrid(true);
r.setAxesColor(Color.BLACK);
r.setExternalZoomEnabled(true);
int[] colors = new int[] { Color.BLUE, Color.GREEN };
PointStyle[] styles = new PointStyle[] { PointStyle.CIRCLE, PointStyle.DIAMOND };
//var i was changed from 2 to 1
//because we only have one series
for (int i = 0; i < 1; i++) {
XYSeriesRenderer s = new XYSeriesRenderer();
s.setColor(colors[i]);
s.setPointStyle(styles[i]);
r.addSeriesRenderer(s);
}
return r;
}
}