package be.lukin.android.babble;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import org.achartengine.ChartFactory;
import org.achartengine.chart.BarChart.Type;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
public class LanguagesBarChart extends AbstractChart {
public String getName() {
return "Languages bar chart";
}
public String getDesc() {
return "Description";
}
public Intent execute(Context context) {
Map<String, Double> map = Utils.getLangToDist(context);
Log.i(map.toString());
String[] titles = new String[] { "average edit distance" };
List<double[]> values = new ArrayList<double[]>();
double[] vals1 = new double[map.size()];
List<String> langs = new ArrayList<String>(map.keySet());
Collections.sort(langs);
int[] colors = new int[] { Color.parseColor("#CC0000") };
XYMultipleSeriesRenderer renderer = buildBarRenderer(colors);
renderer.setOrientation(Orientation.HORIZONTAL);
renderer.setXLabels(0);
renderer.setYLabels(map.size());
renderer.setShowLegend(false);
int counter = 0;
double max = 0;
for (String lang : langs) {
if (max < map.get(lang)) {
max = map.get(lang);
}
renderer.addXTextLabel(counter+1, lang);
vals1[counter] = map.get(lang);
counter++;
}
// TODO: set max distance
setChartSettings(renderer, "Title", "Lang", "Performance", 0, map.size() + 1, 0, max, Color.GRAY, Color.LTGRAY);
values.add(vals1);
return ChartFactory.getBarChartIntent(context, buildBarDataset(titles, values), renderer, Type.DEFAULT);
}
}