From the Seam Forums:
Using JFreeChart with Seam can be quite useful:
package example.chartprocesser; @Name("chartprocesser") public class ChartProcesserBean { @In EntityManager em; // Entity Manager to access the database byte[] chart; // chart image (.png) as a byte array @Factory(value="chart") public void createChart() { DefaultCategoryDataset ds = this.getData; JFreeChart chart = ChartFactory.createLineChart( "TITLE", "Category Label", "Axis Lable", ds, PlotOrientation.HORIZONTAL, false, false, false ); try{ this.chart = ChartUtilities.encodeAsPNG(chart.createBufferedImage(400, 400)); } catch (IOException e){ e.printStackTrace(); } } private DefaultCategoryDataset getData(){ //get the data and put into DefaultCategoryDataset //Then return it. } }
In your JSF page:
<s:graphicImage value="#{chartprocesser.chart}" />
Brilliant!!! Thanks man!
Hi Elengado,
When I copy your source code and deploy application it display error that couldn’t find library of jfreechart but when I remove @Name(“chartprocesser”) then it didn’t display error.
Can you help me resolve it because I have copied jfreechart and jcommon into java classpath
Sorry, but I don’t do support. Pay the JFreeChart guy for that.
so, what’s the point of this article then? Just to show that you was able to render a jfreechart on Seam?!
Congratulations dude!!!!
ps: lehoa, do you have those two libraries on both EAR project and the WEB project?
Yup, that’s the point. This is a quick reference to how I would do this again without having to sift through irrelevant documentation.