All Downloads are FREE. Search and download functionalities are using the official Maven repository.

lecho.lib.hellocharts.model.AbstractChartData Maven / Gradle / Ivy

package lecho.lib.hellocharts.model;

import android.graphics.Color;
import android.graphics.Typeface;

import lecho.lib.hellocharts.util.ChartUtils;

/**
 * Base class for most chart data models.
 */
public abstract class AbstractChartData implements ChartData {
    public static final int DEFAULT_TEXT_SIZE_SP = 12;
    protected Axis axisXBottom;
    protected Axis axisYLeft;
    protected Axis axisXTop;
    protected Axis axisYRight;
    protected int valueLabelTextColor = Color.WHITE;
    protected int valueLabelTextSize = DEFAULT_TEXT_SIZE_SP;
    protected Typeface valueLabelTypeface;

    /**
     * If true each value label will have background rectangle
     */
    protected boolean isValueLabelBackgroundEnabled = true;

    /**
     * If true and {@link #isValueLabelBackgroundEnabled} is true each label will have background rectangle and that
     * rectangle will be filled with color specified for given value.
     */
    protected boolean isValueLabelBackgrountAuto = true;

    /**
     * If {@link #isValueLabelBackgroundEnabled} is true and {@link #isValueLabelBackgrountAuto} is false each label
     * will have background rectangle and that rectangle will be filled with this color. Helpful if you want all labels
     * to have the same background color.
     */
    protected int valueLabelBackgroundColor = ChartUtils.darkenColor(ChartUtils.DEFAULT_DARKEN_COLOR);

    public AbstractChartData() {

    }

    /**
     * Copy constructor for deep copy.
     *
     * @param data
     */
    public AbstractChartData(AbstractChartData data) {
        if (null != data.axisXBottom) {
            this.axisXBottom = new Axis(data.axisXBottom);
        }
        if (null != data.axisXTop) {
            this.axisXTop = new Axis(data.axisXTop);
        }
        if (null != data.axisYLeft) {
            this.axisYLeft = new Axis(data.axisYLeft);
        }
        if (null != data.axisYRight) {
            this.axisYRight = new Axis(data.axisYRight);
        }
        this.valueLabelTextColor = data.valueLabelTextColor;
        this.valueLabelTextSize = data.valueLabelTextSize;
        this.valueLabelTypeface = data.valueLabelTypeface;
    }

    @Override
    public Axis getAxisXBottom() {
        return axisXBottom;
    }

    @Override
    public void setAxisXBottom(Axis axisX) {
        this.axisXBottom = axisX;
    }

    @Override
    public Axis getAxisYLeft() {
        return axisYLeft;
    }

    @Override
    public void setAxisYLeft(Axis axisY) {
        this.axisYLeft = axisY;
    }

    @Override
    public Axis getAxisXTop() {
        return axisXTop;
    }

    @Override
    public void setAxisXTop(Axis axisX) {
        this.axisXTop = axisX;
    }

    @Override
    public Axis getAxisYRight() {
        return axisYRight;
    }

    @Override
    public void setAxisYRight(Axis axisY) {
        this.axisYRight = axisY;
    }

    @Override
    public int getValueLabelTextColor() {
        return valueLabelTextColor;
    }

    @Override
    public void setValueLabelsTextColor(int valueLabelTextColor) {
        this.valueLabelTextColor = valueLabelTextColor;
    }

    @Override
    public int getValueLabelTextSize() {
        return valueLabelTextSize;
    }

    @Override
    public void setValueLabelTextSize(int valueLabelTextSize) {
        this.valueLabelTextSize = valueLabelTextSize;
    }

    @Override
    public Typeface getValueLabelTypeface() {
        return valueLabelTypeface;
    }

    @Override
    public void setValueLabelTypeface(Typeface typeface) {
        this.valueLabelTypeface = typeface;
    }

    @Override
    public boolean isValueLabelBackgroundEnabled() {
        return isValueLabelBackgroundEnabled;
    }

    @Override
    public void setValueLabelBackgroundEnabled(boolean isValueLabelBackgroundEnabled) {
        this.isValueLabelBackgroundEnabled = isValueLabelBackgroundEnabled;
    }

    @Override
    public boolean isValueLabelBackgroundAuto() {
        return isValueLabelBackgrountAuto;
    }

    @Override
    public void setValueLabelBackgroundAuto(boolean isValueLabelBackgrountAuto) {
        this.isValueLabelBackgrountAuto = isValueLabelBackgrountAuto;
    }

    @Override
    public int getValueLabelBackgroundColor() {
        return valueLabelBackgroundColor;
    }

    @Override
    public void setValueLabelBackgroundColor(int valueLabelBackgroundColor) {
        this.valueLabelBackgroundColor = valueLabelBackgroundColor;
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy