1 23 24 package de.progra.charting.render; 25 26 import java.awt.geom.Line2D ; 27 import java.awt.geom.Point2D ; 28 import java.awt.geom.Area ; 29 import de.progra.charting.CoordSystem; 30 import java.awt.geom.AffineTransform ; 31 import de.progra.charting.PointToPixelTranslator; 32 import java.awt.Graphics2D ; 33 import java.awt.Color ; 34 import de.progra.charting.model.ChartDataModel; 35 36 41 public class LineChartRenderer extends AbstractChartRenderer { 42 43 48 public LineChartRenderer(CoordSystem cs, ChartDataModel model) { 49 super(cs, model); 50 } 51 52 55 public void renderChart(Graphics2D g) { 56 ChartDataModel m = getChartDataModel(); 57 RowColorModel rcm = getRowColorModel(); 58 AffineTransform yaxis1 = getTransform(CoordSystem.FIRST_YAXIS); 59 60 int datasetcount = m.getDataSetNumber(); 61 Point2D val; 62 Point2D paint = null; 63 Point2D oldpaint = null; 64 boolean numericalcolumns = m.isColumnNumeric(); 65 float modelVal = 0f; 66 for(int set = 0; set < datasetcount; set++) { 68 for(int value = 0; value < m.getDataSetLength(set); value++) { 69 modelVal = m.getValueAt(set, value).floatValue(); 70 71 if(modelVal != modelVal || modelVal == Float.NEGATIVE_INFINITY || modelVal == Float.POSITIVE_INFINITY) { 72 oldpaint = null; 74 continue; 75 } 76 77 if(numericalcolumns) 78 val = new Point2D.Float (((Number )m.getColumnValueAt(set, value)).floatValue(), 79 modelVal); 80 else 81 val = new Point2D.Float ((float)value, 82 modelVal); 83 84 oldpaint = paint; 86 87 if(yaxis1.transform(val, null) != null) { 88 paint = yaxis1.transform(val, null); 89 } 91 else 92 continue; 93 94 g.setColor(rcm.getColor(set)); 95 96 if(oldpaint != null) { 97 g.drawLine((int)oldpaint.getX(), (int)oldpaint.getY(), 98 (int)paint.getX(), (int)paint.getY()); 99 } 100 } 101 oldpaint = null; 102 paint = null; 103 } 104 } 105 } 106 | Popular Tags |