grafix.graficos.comparativo.ConstrutorGraficoComparativos.java Source code

Java tutorial

Introduction

Here is the source code for grafix.graficos.comparativo.ConstrutorGraficoComparativos.java

Source

/*
  Copyright (C) 2001-2012, Joao Medeiros, Paulo Vilela (grafix2.com)
      
  Este arquivo  parte do programa Grafix2.com
      
  Grafix2.com  um software livre; voc pode redistribui-lo e/ou 
  modifica-lo dentro dos termos da Licena Pblica Geral GNU como 
  publicada pela Fundao do Software Livre (FSF); na verso 2 da 
  Licena.
    
  Este programa  distribuido na esperana que possa ser til, 
  mas SEM NENHUMA GARANTIA; sem uma garantia implicita de ADEQUAO a qualquer
  MERCADO ou APLICAO EM PARTICULAR. Veja a
  Licena Pblica Geral GNU para maiores detalhes.
    
  Voc deve ter recebido uma cpia da Licena Pblica Geral GNU
  junto com este programa, se no, veja uma cpia em
  <http://www.gnu.org/licenses/>
      
 */

package grafix.graficos.comparativo;

import java.awt.geom.GeneralPath;
import java.util.Vector;
import org.jfree.chart.*;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.data.time.*;
import org.jfree.data.xy.XYDataset;

public class ConstrutorGraficoComparativos {

    private Vector<IndiceComparativo> indices;

    public ConstrutorGraficoComparativos(Vector<IndiceComparativo> indices) {
        this.indices = indices;
    }

    public JFreeChart criarJFreeChart() {
        XYDataset dataset = criarDataset();
        JFreeChart chart = criarChart(dataset);
        return chart;
    }

    private static JFreeChart criarChart(XYDataset dataset) {
        JFreeChart chart = ChartFactory.createTimeSeriesChart("Comparativo da Evoluo de Papis", "Perodo",
                "Evoluo (%)", dataset, true, true, false);
        XYPlot plot = (XYPlot) chart.getPlot();
        XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) plot.getRenderer();
        GeneralPath zigzag = new GeneralPath();
        zigzag.moveTo(-6.0f, 0.0f);
        zigzag.lineTo(-3.0f, 6.0f);
        zigzag.lineTo(3.0f, -6.0f);
        zigzag.lineTo(6.0f, 0.0f);
        renderer.setLegendLine(zigzag);
        return chart;

    }

    private XYDataset criarDataset() {
        TimeSeriesCollection tc = new TimeSeriesCollection();
        for (IndiceComparativo elem : indices) {
            TimeSeries tSerie = elem.getTimeSeries();
            tc.addSeries(tSerie);
        }
        return tc;
    }
}