1 package net.sf.jasperreports.mysql.reports; 2 3 import java.awt.Color ; 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 17 public class TableStatusCScriptlet extends JRDefaultScriptlet 18 { 19 20 23 private DefaultPieDataset pieDataset = null; 24 private Long other = null; 25 26 29 public void afterGroupInit(String group) throws JRScriptletException 30 { 31 if ("DatabaseGroup".equals(group)) 32 { 33 pieDataset = new DefaultPieDataset(); 34 other = null; 35 } 36 } 37 38 41 public void afterDetailEval() throws JRScriptletException 42 { 43 String name = (String )getFieldValue("name"); 44 Number size = (Number )getFieldValue("data_length"); 45 46 if (size == null) 47 { 48 size = new Long (0); 49 } 50 51 if (((Number )getVariableValue("DatabaseGroup_COUNT")).intValue() >= 6) 52 { 53 if (other == null) 54 { 55 other = new Long (0); 56 } 57 other = new Long (other.longValue() + size.longValue()); 58 name = "Other"; 59 size = other; 60 } 61 62 pieDataset.setValue(name, size); 63 } 64 65 68 public JRRenderable getChart() 69 { 70 JFreeChart chart = 71 ChartFactory.createPieChart( 72 "Table size", 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 |