Galera… olha como fica estranho quanto tento imprimir um gráfico do JFreechart com JSF + Richfaces… ele ta ficando avermelhado … ta mto esquisito… Qdo gero em JPEG na máquina fica OK
olha como eu gerei isso… Sai caçando código ai na net e cheguei nessa solução…
Meu ManagedBean
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package MngBeans;
import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Iterator;
import javax.imageio.ImageIO;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartRenderingInfo;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.entity.StandardEntityCollection;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
/**
*
* @author Vinicius
*/
public class EstatisticaGraphPainter {
private ArrayList<Aproveitamento> p;
/** Creates a new instance of EstatisticaGraphPainter */
public EstatisticaGraphPainter() {
//TESTE****************************
p = new ArrayList();
p.add(new Aproveitamento(90.0, "Jan"));
p.add(new Aproveitamento(50.0, "Fev"));
p.add(new Aproveitamento(78.0, "Mar"));
p.add(new Aproveitamento(88.0, "Abr"));
p.add(new Aproveitamento(96.0, "Mai"));
p.add(new Aproveitamento(10.0, "Jun"));
p.add(new Aproveitamento(50.0, "Jul"));
p.add(new Aproveitamento(86.0, "Ago"));
p.add(new Aproveitamento(99.0, "Set"));
p.add(new Aproveitamento(50.0, "Out"));
p.add(new Aproveitamento(30.0, "Novembro"));
p.add(new Aproveitamento(55.0, "Dez"));
}
public void getChartImage(OutputStream out, Object data) throws Exception {
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
BufferedImage pageImage = gerarGraficoBarraVertical3D("Aproveitamento", "Meses", "Aproveitamento", p);
//ChartUtilities.writeImageMap(new PrintWriter(out), "chart", info, true);
ImageIO.write(pageImage, "jpeg", out);
}
public static BufferedImage gerarGraficoBarraVertical3D(String tituloGrafico, String tituloEixoX, String tituloEixoY, ArrayList<Aproveitamento> arrayValores) throws Exception {
BufferedImage buf = null;
try {
DefaultCategoryDataset defaultCategoryDataset = new DefaultCategoryDataset();
Iterator iterator = arrayValores.iterator();
while (iterator.hasNext()) {
Aproveitamento modelo = (Aproveitamento) iterator.next();
defaultCategoryDataset.addValue(modelo.getAproveitamento(), "Aproveitamento", modelo.getMes());
}
JFreeChart chart = ChartFactory.createLineChart(tituloGrafico, tituloEixoX,
tituloEixoY, defaultCategoryDataset, PlotOrientation.VERTICAL,
true, false, false);
chart.setBorderVisible(true);
chart.setBorderPaint(Color.black);
buf = chart.createBufferedImage(800, 400);
} catch (Exception e) {
throw new Exception(e);
}
return buf;
}
}
Tag MediaOutpu do a4jsf
[/code]
<a4j:mediaOutput element=“img” cacheable=“false” session=“true” usemap="#chart"
createContent="#{EstatisticaGraphPainter.getChartImage}"
mimeType=“image/jpeg” />
[code]