1 28 package net.sf.jasperreports.charts.xml; 29 30 import net.sf.jasperreports.charts.design.JRDesignMeterPlot; 31 import net.sf.jasperreports.engine.JRChart; 32 import net.sf.jasperreports.engine.JRException; 33 import net.sf.jasperreports.engine.xml.JRBaseFactory; 34 import net.sf.jasperreports.engine.xml.JRXmlConstants; 35 36 import org.xml.sax.Attributes ; 37 38 39 43 public class JRMeterPlotFactory extends JRBaseFactory 44 { 45 public static final String ATTRIBUTE_shape = "shape"; 46 public static final String ATTRIBUTE_angle = "angle"; 47 public static final String ATTRIBUTE_units = "units"; 48 public static final String ATTRIBUTE_tickInterval = "tickInterval"; 49 public static final String ATTRIBUTE_meterColor = "meterColor"; 50 public static final String ATTRIBUTE_needleColor = "needleColor"; 51 public static final String ATTRIBUTE_tickColor = "tickColor"; 52 53 56 public Object createObject(Attributes atts) throws JRException 57 { 58 JRChart chart = (JRChart)digester.peek(); 59 JRDesignMeterPlot meterPlot = (JRDesignMeterPlot)chart.getPlot(); 60 61 String shapeAttr = atts.getValue(ATTRIBUTE_shape); 62 Byte shape = (Byte )JRXmlConstants.getMeterShapeMap().get(shapeAttr); 63 if (shape == null) 64 { 65 throw new JRException("Invalid meter shape: " + shapeAttr); 66 } 67 else 68 { 69 meterPlot.setShape(shape.byteValue()); 70 } 71 72 String angle = atts.getValue(ATTRIBUTE_angle); 73 if (angle != null && angle.length() > 0) 74 { 75 meterPlot.setMeterAngle(Integer.parseInt(angle)); 76 } 77 78 String units = atts.getValue(ATTRIBUTE_units); 79 if (units != null && units.length() > 0) 80 { 81 meterPlot.setUnits(units); 82 } 83 84 String tickInterval = atts.getValue(ATTRIBUTE_tickInterval); 85 if (tickInterval != null && tickInterval.length() > 0) 86 { 87 meterPlot.setTickInterval(Double.parseDouble(tickInterval)); 88 } 89 90 String meterColor = atts.getValue(ATTRIBUTE_meterColor); 91 if (meterColor != null && meterColor.length() > 0) 92 { 93 meterPlot.setMeterBackgroundColor(JRXmlConstants.getColor(meterColor, null)); 94 } 95 96 String needleColor = atts.getValue(ATTRIBUTE_needleColor); 97 if (needleColor != null && needleColor.length() > 0) 98 { 99 meterPlot.setNeedleColor(JRXmlConstants.getColor(needleColor, null)); 100 } 101 102 String tickColor = atts.getValue(ATTRIBUTE_tickColor); 103 if (tickColor != null && tickColor.length() > 0) 104 { 105 meterPlot.setTickColor(JRXmlConstants.getColor(tickColor, null)); 106 } 107 108 return meterPlot; 109 } 110 } 111 | Popular Tags |