KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sf > jasperreports > mysql > reports > TableStatusDScriptlet


1 package net.sf.jasperreports.mysql.reports;
2
3 import java.awt.Color JavaDoc;
4
5 import net.sf.jasperreports.engine.JRDefaultScriptlet;
6 import net.sf.jasperreports.engine.JRRenderable;
7 import net.sf.jasperreports.engine.JRScriptletException;
8 import net.sf.jasperreports.renderers.JCommonDrawableRenderer;
9
10 import org.jfree.chart.ChartFactory;
11 import org.jfree.chart.JFreeChart;
12 import org.jfree.data.general.DefaultPieDataset;
13
14 /**
15  *
16  */

17 public class TableStatusDScriptlet extends JRDefaultScriptlet
18 {
19
20     /**
21      *
22      */

23     private DefaultPieDataset pieDataset = null;
24     private Long JavaDoc other = null;
25     
26     /**
27      *
28      */

29     public void afterGroupInit(String JavaDoc group) throws JRScriptletException
30     {
31         if ("DatabaseGroup".equals(group))
32         {
33             pieDataset = new DefaultPieDataset();
34             other = null;
35         }
36     }
37
38     /**
39      *
40      */

41     public void afterDetailEval() throws JRScriptletException
42     {
43         String JavaDoc name = (String JavaDoc)getFieldValue("name");
44         Number JavaDoc size = (Number JavaDoc)getFieldValue("rows");
45
46         if (size == null)
47         {
48             size = new Long JavaDoc(0);
49         }
50         
51         if (((Number JavaDoc)getVariableValue("DatabaseGroup_COUNT")).intValue() >= 6)
52         {
53             if (other == null)
54             {
55                 other = new Long JavaDoc(0);
56             }
57             other = new Long JavaDoc(other.longValue() + size.longValue());
58             name = "Other";
59             size = other;
60         }
61         
62         pieDataset.setValue(name, size);
63     }
64
65     /**
66      *
67      */

68     public JRRenderable getChart()
69     {
70         JFreeChart chart =
71             ChartFactory.createPieChart(
72                 "Table rows",
73                 pieDataset,
74                 true,
75                 true,
76                 false
77                 );
78         
79         chart.setBackgroundPaint(Color.white);
80         chart.getPlot().setOutlinePaint(Color.white);
81         
82         return new JCommonDrawableRenderer(chart);
83     }
84
85 }
86
Popular Tags