Android Open Source - customhellochartdemo Simple Value Formatter






From Project

Back to project page customhellochartdemo.

License

The source code is released under:

Apache License

If you think the Android project customhellochartdemo listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package lecho.lib.hellocharts.model;
//from   www  .java2 s .  c  o  m
import java.text.DecimalFormat;
import java.text.NumberFormat;

import lecho.lib.hellocharts.util.Utils;

/**
 * Default value formatter. Can be used for axes and for value labels. Method
 * {@link #formatValue(char[], float, char[], int)} is used only if formatter is used for auto-generated axis. Note:
 * Maximum number of characters in formated value should be less or equals 32 so be careful with appended text length.
 * Note2: this formatter skips value formating if label is not null, in that case it will return label, not formatted
 * number value. Note3: only last value from values array is formated, for LineChart that is Y value, for BubbleChart
 * that is Z value.
 * 
 */
public class SimpleValueFormatter implements ValueFormatter {
  protected static final int DEFAULT_DIGITS_NUMBER = 0;
  protected final int digitsNumber;
  protected final char[] appendedText;
  protected final char[] prependedText;
  protected final char separator;
  protected boolean manualDigitsForAutoAxes = false;

  /**
   * Creates formatter with default configuration, 0 number of digits after separator and no text appended to value.
   */
  public SimpleValueFormatter() {
    this(DEFAULT_DIGITS_NUMBER, false, null, null);
  }

  /**
   * Creates formatter with given number of digits after decimal separator.
   */
  public SimpleValueFormatter(int digitsNumber) {
    this(digitsNumber, false, null, null);
  }

  /**
   * Creates formatter with given number of digits after decimal separator and with text prepended and appended to
   * formated value.
   */
  public SimpleValueFormatter(int digitsNumber, boolean manualDigitsForAutoAxes, char[] prependedText,
      char[] appendedText) {
    this.digitsNumber = digitsNumber;
    this.manualDigitsForAutoAxes = manualDigitsForAutoAxes;

    if (null == prependedText) {
      this.prependedText = new char[0];
    } else {
      this.prependedText = prependedText;
    }

    if (null == appendedText) {
      this.appendedText = new char[0];
    } else {
      this.appendedText = appendedText;
    }

    // Get decimal point separator for default locale.
    NumberFormat numberFormat = NumberFormat.getInstance();
    if (numberFormat instanceof DecimalFormat) {
      separator = ((DecimalFormat) numberFormat).getDecimalFormatSymbols().getDecimalSeparator();
    } else {
      separator = '.';
    }
  }

  @Override
  public int formatValue(char[] formattedValue, float[] values, char[] label) {

    return format(formattedValue, values, label, digitsNumber);

  }

  @Override
  public int formatAutoValue(char[] formattedValue, float[] values, int digits) {

    return format(formattedValue, values, null, digits);

  }

  private int format(char[] formattedValue, float[] values, char[] label, int digits) {
    if (manualDigitsForAutoAxes) {
      digits = digitsNumber;
    }

    if (null != label) {
      // If custom label is not null use only name characters as formatted value.
      // Copy label into formatted value array.
      System.arraycopy(label, 0, formattedValue, formattedValue.length - label.length, label.length);
      return label.length;
    }

    if (null == values || values.length == 0) {
      return 0;
    }

    // Manual label is null so format value as number.
    // Format only last value, in most cases that is enough.
    float value = values[values.length - 1];

    final int numChars = Utils.formatFloat(formattedValue, value, formattedValue.length - appendedText.length,
        digits, separator);

    if (prependedText.length > 0) {
      System.arraycopy(prependedText, 0, formattedValue, formattedValue.length - numChars - appendedText.length
          - prependedText.length, prependedText.length);
    }

    if (appendedText.length > 0) {
      System.arraycopy(appendedText, 0, formattedValue, formattedValue.length - appendedText.length,
          appendedText.length);
    }

    return numChars + prependedText.length + appendedText.length;
  }
}




Java Source Code List

lecho.lib.hellocharts.ChartComputator.java
lecho.lib.hellocharts.DummyChartAnimationListener.java
lecho.lib.hellocharts.DummyVieportChangeListener.java
lecho.lib.hellocharts.PreviewChartComputator.java
lecho.lib.hellocharts.ViewportChangeListener.java
lecho.lib.hellocharts.animation.ChartAnimationListener.java
lecho.lib.hellocharts.animation.ChartDataAnimatorV14.java
lecho.lib.hellocharts.animation.ChartDataAnimatorV8.java
lecho.lib.hellocharts.animation.ChartDataAnimator.java
lecho.lib.hellocharts.animation.ChartViewportAnimatorV14.java
lecho.lib.hellocharts.animation.ChartViewportAnimatorV8.java
lecho.lib.hellocharts.animation.ChartViewportAnimator.java
lecho.lib.hellocharts.animation.PieChartRotationAnimatorV14.java
lecho.lib.hellocharts.animation.PieChartRotationAnimatorV8.java
lecho.lib.hellocharts.animation.PieChartRotationAnimator.java
lecho.lib.hellocharts.gesture.ChartScroller.java
lecho.lib.hellocharts.gesture.ChartTouchHandler.java
lecho.lib.hellocharts.gesture.ChartZoomer.java
lecho.lib.hellocharts.gesture.ContainerScrollType.java
lecho.lib.hellocharts.gesture.PieChartTouchHandler.java
lecho.lib.hellocharts.gesture.PreviewChartTouchHandler.java
lecho.lib.hellocharts.gesture.ZoomType.java
lecho.lib.hellocharts.gesture.ZoomerCompat.java
lecho.lib.hellocharts.model.AbstractChartData.java
lecho.lib.hellocharts.model.ArcValue.java
lecho.lib.hellocharts.model.AxisValue.java
lecho.lib.hellocharts.model.Axis.java
lecho.lib.hellocharts.model.BubbleChartData.java
lecho.lib.hellocharts.model.BubbleValue.java
lecho.lib.hellocharts.model.ChartData.java
lecho.lib.hellocharts.model.ColumnChartData.java
lecho.lib.hellocharts.model.ColumnValue.java
lecho.lib.hellocharts.model.Column.java
lecho.lib.hellocharts.model.ComboLineColumnChartData.java
lecho.lib.hellocharts.model.LineChartData.java
lecho.lib.hellocharts.model.Line.java
lecho.lib.hellocharts.model.PieChartData.java
lecho.lib.hellocharts.model.PointValue.java
lecho.lib.hellocharts.model.SelectedValue.java
lecho.lib.hellocharts.model.SimpleValueFormatter.java
lecho.lib.hellocharts.model.ValueFormatter.java
lecho.lib.hellocharts.model.ValueShape.java
lecho.lib.hellocharts.model.Viewport.java
lecho.lib.hellocharts.provider.BubbleChartDataProvider.java
lecho.lib.hellocharts.provider.ColumnChartDataProvider.java
lecho.lib.hellocharts.provider.ComboLineColumnChartDataProvider.java
lecho.lib.hellocharts.provider.LineChartDataProvider.java
lecho.lib.hellocharts.provider.PieChartDataProvider.java
lecho.lib.hellocharts.renderer.AbstractChartRenderer.java
lecho.lib.hellocharts.renderer.AxesRenderer.java
lecho.lib.hellocharts.renderer.BubbleChartRenderer.java
lecho.lib.hellocharts.renderer.ChartRenderer.java
lecho.lib.hellocharts.renderer.ColumnChartRenderer.java
lecho.lib.hellocharts.renderer.ComboLineColumnChartRenderer.java
lecho.lib.hellocharts.renderer.LineChartRenderer.java
lecho.lib.hellocharts.renderer.PieChartRenderer.java
lecho.lib.hellocharts.renderer.PreviewColumnChartRenderer.java
lecho.lib.hellocharts.renderer.PreviewLineChartRenderer.java
lecho.lib.hellocharts.samples.AboutActivity.java
lecho.lib.hellocharts.samples.BrokenLineChartActivity.java
lecho.lib.hellocharts.samples.BrokenLineView.java
lecho.lib.hellocharts.samples.BubbleChartActivity.java
lecho.lib.hellocharts.samples.ColumnChartActivity.java
lecho.lib.hellocharts.samples.ComboLineColumnChartActivity.java
lecho.lib.hellocharts.samples.GoodBadChartActivity.java
lecho.lib.hellocharts.samples.LineChartActivity.java
lecho.lib.hellocharts.samples.LineColumnDependencyActivity.java
lecho.lib.hellocharts.samples.MainActivity.java
lecho.lib.hellocharts.samples.PieChartActivity.java
lecho.lib.hellocharts.samples.PreviewColumnChartActivity.java
lecho.lib.hellocharts.samples.PreviewLineChartActivity.java
lecho.lib.hellocharts.samples.SpeedChartActivity.java
lecho.lib.hellocharts.samples.TempoChartActivity.java
lecho.lib.hellocharts.samples.ViewPagerChartsActivity.java
lecho.lib.hellocharts.util.AxisAutoValues.java
lecho.lib.hellocharts.util.Utils.java
lecho.lib.hellocharts.view.AbstractChartView.java
lecho.lib.hellocharts.view.BubbleChartView.java
lecho.lib.hellocharts.view.Chart.java
lecho.lib.hellocharts.view.ColumnChartView.java
lecho.lib.hellocharts.view.ComboLineColumnChartView.java
lecho.lib.hellocharts.view.LineChartView.java
lecho.lib.hellocharts.view.PieChartView.java
lecho.lib.hellocharts.view.PreviewColumnChartView.java
lecho.lib.hellocharts.view.PreviewLineChartView.java
lecho.lib.hellocharts.view.hack.HackyDrawerLayout.java
lecho.lib.hellocharts.view.hack.HackyViewPager.java