view gnv-artifacts/src/main/java/de/intevation/gnv/chart/AbstractHistogram.java @ 629:d08b9ba148c5

Implemented logic to adjust number of bins corresponding to user input. gnv-artifacts/trunk@706 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 24 Feb 2010 14:30:52 +0000
parents 65f09139e9b3
children 79401c871da4
line wrap: on
line source
package de.intevation.gnv.chart;

import java.util.Locale;

import org.apache.log4j.Logger;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartTheme;
import org.jfree.chart.JFreeChart;

import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;

import org.jfree.chart.renderer.xy.XYBarRenderer;

/**
 * @author Ingo Weinzierl (ingo.weinzierl@intevation.de)
 */
public abstract class AbstractHistogram
implements            Chart
{
    private Logger logger = Logger.getLogger(AbstractHistogram.class);

    protected JFreeChart  chart;
    protected ChartLabels labels;
    protected ChartTheme  theme;
    protected Object[]    data;

    protected Locale     locale;


    public AbstractHistogram(
        ChartLabels labels, Object[] data, ChartTheme theme
    ) {
        this.labels = labels;
        this.data   = data;
        this.theme  = theme;
    }


    public JFreeChart generateChart() {

        if (chart != null)
            return chart;

        chart = ChartFactory.createHistogram(
            labels.getTitle(),
            labels.getDomainAxisLabel(),
            labels.getRangeAxisLabel(),
            null,
            PlotOrientation.VERTICAL,
            true,
            false,
            false);

        applyDatasets();

        theme.apply(chart);
        adjustPlot();

        return chart;
    }


    protected void adjustPlot() {
        XYPlot plot = (XYPlot) chart.getPlot();
        XYBarRenderer renderer = (XYBarRenderer) plot.getRenderer();

        renderer.setShadowVisible(false);
        renderer.setSeriesVisibleInLegend(0, false);
    }


    protected abstract void applyDatasets();
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org