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

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

package lecho.lib.hellocharts.model;

import java.util.ArrayList;
import java.util.List;

/**
 * Data model for LineChartView.
 */
public class LineChartData extends AbstractChartData {
    public static final float DEFAULT_BASE_VALUE = 0.0f;

    private List lines = new ArrayList();
    private float baseValue = DEFAULT_BASE_VALUE;

    public LineChartData() {

    }

    public LineChartData(List lines) {
        setLines(lines);
    }

    /**
     * Copy constructor to perform deep copy of chart data.
     */
    public LineChartData(LineChartData data) {
        super(data);
        this.baseValue = data.baseValue;

        for (Line line : data.lines) {
            this.lines.add(new Line(line));
        }
    }

    public static LineChartData generateDummyData() {
        final int numValues = 4;
        LineChartData data = new LineChartData();
        List values = new ArrayList(numValues);
        values.add(new PointValue(0, 2));
        values.add(new PointValue(1, 4));
        values.add(new PointValue(2, 3));
        values.add(new PointValue(3, 4));
        Line line = new Line(values);
        List lines = new ArrayList(1);
        lines.add(line);
        data.setLines(lines);
        return data;
    }

    @Override
    public void update(float scale) {
        for (Line line : lines) {
            line.update(scale);
        }
    }

    @Override
    public void finish() {
        for (Line line : lines) {
            line.finish();
        }
    }

    public List getLines() {
        return lines;
    }

    public LineChartData setLines(List lines) {
        if (null == lines) {
            this.lines = new ArrayList();
        } else {
            this.lines = lines;
        }
        return this;
    }

    /**
     * @see #setBaseValue(float)
     */
    public float getBaseValue() {
        return baseValue;
    }

    /**
     * Set value below which values will be drawn as negative, important attribute for drawing filled area charts, by
     * default 0.
     */
    public LineChartData setBaseValue(float baseValue) {
        this.baseValue = baseValue;
        return this;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy