package com.github.mikephil.charting.formatter; import com.github.mikephil.charting.components.AxisBase; import com.github.mikephil.charting.data.Entry; import com.github.mikephil.charting.utils.ViewPortHandler; import java.text.DecimalFormat; import java.util.Arrays; import java.util.Collection; /** * This formatter is used for passing an array of x-axis labels, on whole x steps. */ public class IndexAxisValueFormatter implements IAxisValueFormatter { private String[] mValues = new String[] {}; private int mValueCount = 0; /** * An empty constructor. * Use `setValues` to set the axis labels. */ public IndexAxisValueFormatter() { } /** * Constructor that specifies axis labels. * * @param values The values string array */ public IndexAxisValueFormatter(String[] values) { if (values != null) setValues(values); } /** * Constructor that specifies axis labels. * * @param values The values string array */ public IndexAxisValueFormatter(Collection<String> values) { if (values != null) setValues(values.toArray(new String[values.size()])); } public String getFormattedValue(float value, AxisBase axis) { int index = Math.round(value); if (index < 0 || index >= mValueCount || index != (int)value) return ""; return mValues[index]; } public String[] getValues() { return mValues; } public void setValues(String[] values) { if (values == null) values = new String[] {}; this.mValues = values; this.mValueCount = values.length; } }