1 44 45 package org.jfree.chart.needle; 46 47 import java.awt.Graphics2D ; 48 import java.awt.geom.GeneralPath ; 49 import java.awt.geom.Point2D ; 50 import java.awt.geom.Rectangle2D ; 51 52 58 public class PointerNeedle extends MeterNeedle { 59 60 61 private static final long serialVersionUID = -4744677345334729606L; 62 63 71 protected void drawNeedle(Graphics2D g2, Rectangle2D plotArea, 72 Point2D rotate, double angle) { 73 74 GeneralPath shape1 = new GeneralPath (); 75 GeneralPath shape2 = new GeneralPath (); 76 float minX = (float) plotArea.getMinX(); 77 float minY = (float) plotArea.getMinY(); 78 float maxX = (float) plotArea.getMaxX(); 79 float maxY = (float) plotArea.getMaxY(); 80 float midX = (float) (minX + (plotArea.getWidth() / 2)); 81 float midY = (float) (minY + (plotArea.getHeight() / 2)); 82 83 shape1.moveTo(minX, midY); 84 shape1.lineTo(midX, minY); 85 shape1.lineTo(maxX, midY); 86 shape1.closePath(); 87 88 shape2.moveTo(minX, midY); 89 shape2.lineTo(midX, maxY); 90 shape2.lineTo(maxX, midY); 91 shape2.closePath(); 92 93 if ((rotate != null) && (angle != 0)) { 94 getTransform().setToRotation(angle, rotate.getX(), rotate.getY()); 96 shape1.transform(getTransform()); 97 shape2.transform(getTransform()); 98 } 99 100 if (getFillPaint() != null) { 101 g2.setPaint(getFillPaint()); 102 g2.fill(shape1); 103 } 104 105 if (getHighlightPaint() != null) { 106 g2.setPaint(getHighlightPaint()); 107 g2.fill(shape2); 108 } 109 110 if (getOutlinePaint() != null) { 111 g2.setStroke(getOutlineStroke()); 112 g2.setPaint(getOutlinePaint()); 113 g2.draw(shape1); 114 g2.draw(shape2); 115 } 116 } 117 118 125 public boolean equals(Object object) { 126 if (object == null) { 127 return false; 128 } 129 if (object == this) { 130 return true; 131 } 132 if (super.equals(object) && object instanceof PointerNeedle) { 133 return true; 134 } 135 return false; 136 } 137 138 } 139 | Popular Tags |