view flys-artifacts/src/main/java/de/intevation/flys/jfree/StyledXYSeries.java @ 4740:fb135e1dfa35

Added 'type' attribute to <dc:variable/> element. If an optional 'type' attribute is given the result of the XPATH expression is interpreted as this type. Valid values are 'number', 'bool', 'node' and 'nodeset'. All other defaults to 'string' which also is the default if nor type is given.
author Sascha L. Teichmann <teichmann@intevation.de>
date Wed, 02 Jan 2013 15:31:53 +0100
parents 0f7abd95c6e2
children
line wrap: on
line source
package de.intevation.flys.jfree;

import java.util.List;

import org.apache.log4j.Logger;

import org.w3c.dom.Document;

import org.jfree.data.xy.XYDataItem;
import org.jfree.data.xy.XYSeries;

/**
 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
 */
public class StyledXYSeries extends XYSeries implements StyledSeries, HasLabel {

    private static final Logger logger = Logger.getLogger(StyledXYSeries.class);

    protected Style style;

    /** If this Series is to be labelled, use this String as label. */
    protected String label;


    public StyledXYSeries(String key, Document theme) {
        this(key, true, theme);
        this.label = key.toString();
    }


    public StyledXYSeries(String key, Document theme, XYSeries unstyledSeries) {
        this(key, theme);
        add(unstyledSeries);
    }


    /**
     * @param sorted whether or not to sort the points. Sorting will move NANs
     *               to one extrema which can cause problems in certain
     *               algorithms.
     */
    public StyledXYSeries(String key, boolean sorted, Document theme) {
        super(key, sorted);
        setStyle(new XYStyle(theme));
        this.label = key.toString();
    }


    @Override
    public void setStyle(Style style) {
        this.style = style;
    }


    @Override
    public Style getStyle() {
        return style;
    }


    @Override
    public String getLabel() {
        return label;
    }

    @Override
    public void setLabel(String label) {
        this.label = label;
    }

    protected void add(XYSeries series) {
        List<XYDataItem> items = series.getItems();
        add(items);
    }

    protected void add(List<XYDataItem> items) {
        for(XYDataItem item : items) {
            add(item.getXValue(), item.getYValue());
        }
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org