Frames | No Frames |
1: /* =========================================================== 2: * JFreeChart : a free chart library for the Java(tm) platform 3: * =========================================================== 4: * 5: * (C) Copyright 2000-2005, by Object Refinery Limited and Contributors. 6: * 7: * Project Info: http://www.jfree.org/jfreechart/index.html 8: * 9: * This library is free software; you can redistribute it and/or modify it 10: * under the terms of the GNU Lesser General Public License as published by 11: * the Free Software Foundation; either version 2.1 of the License, or 12: * (at your option) any later version. 13: * 14: * This library is distributed in the hope that it will be useful, but 15: * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 16: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 17: * License for more details. 18: * 19: * You should have received a copy of the GNU Lesser General Public 20: * License along with this library; if not, write to the Free Software 21: * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 22: * USA. 23: * 24: * [Java is a trademark or registered trademark of Sun Microsystems, Inc. 25: * in the United States and other countries.] 26: * 27: * ----------------- 28: * PiePlotState.java 29: * ----------------- 30: * (C) Copyright 2004, by Object Refinery Limited. 31: * 32: * Original Author: David Gilbert (for Object Refinery Limited); 33: * Contributor(s): -; 34: * 35: * $Id: PiePlotState.java,v 1.3.2.1 2005/10/25 20:52:08 mungady Exp $ 36: * 37: * Changes 38: * ------- 39: * 06-Mar-2004 : Version 1 (DG); 40: * 41: */ 42: 43: package org.jfree.chart.plot; 44: 45: import java.awt.geom.Rectangle2D; 46: 47: import org.jfree.chart.renderer.RendererState; 48: 49: /** 50: * A renderer state. 51: */ 52: public class PiePlotState extends RendererState { 53: 54: /** The number of passes required by the renderer. */ 55: private int passesRequired; 56: 57: /** The total of the values in the dataset. */ 58: private double total; 59: 60: /** The latest angle. */ 61: private double latestAngle; 62: 63: /** The exploded pie area. */ 64: private Rectangle2D explodedPieArea; 65: 66: /** The pie area. */ 67: private Rectangle2D pieArea; 68: 69: /** The center of the pie in Java 2D coordinates. */ 70: private double pieCenterX; 71: 72: /** The center of the pie in Java 2D coordinates. */ 73: private double pieCenterY; 74: 75: /** The vertical pie radius. */ 76: private double pieHRadius; 77: 78: /** The horizontal pie radius. */ 79: private double pieWRadius; 80: 81: /** The link area. */ 82: private Rectangle2D linkArea; 83: 84: /** 85: * Creates a new object for recording temporary state information for a 86: * renderer. 87: * 88: * @param info the plot rendering info. 89: */ 90: public PiePlotState(PlotRenderingInfo info) { 91: super(info); 92: this.passesRequired = 1; 93: this.total = 0.0; 94: } 95: 96: /** 97: * Returns the number of passes required by the renderer. 98: * 99: * @return The number of passes. 100: */ 101: public int getPassesRequired() { 102: return this.passesRequired; 103: } 104: 105: /** 106: * Sets the number of passes required by the renderer. 107: * 108: * @param passes the passes. 109: */ 110: public void setPassesRequired(int passes) { 111: this.passesRequired = passes; 112: } 113: 114: /** 115: * Returns the total of the values in the dataset. 116: * 117: * @return The total. 118: */ 119: public double getTotal() { 120: return this.total; 121: } 122: 123: /** 124: * Sets the total. 125: * 126: * @param total the total. 127: */ 128: public void setTotal(double total) { 129: this.total = total; 130: } 131: 132: /** 133: * Returns the latest angle. 134: * 135: * @return The latest angle. 136: */ 137: public double getLatestAngle() { 138: return this.latestAngle; 139: } 140: 141: /** 142: * Sets the latest angle. 143: * 144: * @param angle the angle. 145: */ 146: public void setLatestAngle(double angle) { 147: this.latestAngle = angle; 148: } 149: 150: /** 151: * Returns the pie area. 152: * 153: * @return The pie area. 154: */ 155: public Rectangle2D getPieArea() { 156: return this.pieArea; 157: } 158: 159: /** 160: * Sets the pie area. 161: * 162: * @param area the area. 163: */ 164: public void setPieArea(Rectangle2D area) { 165: this.pieArea = area; 166: } 167: 168: /** 169: * Returns the exploded pie area. 170: * 171: * @return The exploded pie area. 172: */ 173: public Rectangle2D getExplodedPieArea() { 174: return this.explodedPieArea; 175: } 176: 177: /** 178: * Sets the exploded pie area. 179: * 180: * @param area the area. 181: */ 182: public void setExplodedPieArea(Rectangle2D area) { 183: this.explodedPieArea = area; 184: } 185: 186: /** 187: * Returns the x-coordinate of the center of the pie chart. 188: * 189: * @return The x-coordinate (in Java2D space). 190: */ 191: public double getPieCenterX() { 192: return this.pieCenterX; 193: } 194: 195: /** 196: * Sets the x-coordinate of the center of the pie chart. 197: * 198: * @param x the x-coordinate (in Java2D space). 199: */ 200: public void setPieCenterX(double x) { 201: this.pieCenterX = x; 202: } 203: 204: /** 205: * Returns the y-coordinate (in Java2D space) of the center of the pie 206: * chart. For the {@link PiePlot3D} class, we derive this from the top of 207: * the pie. 208: * 209: * @return The y-coordinate (in Java2D space). 210: */ 211: public double getPieCenterY() { 212: return this.pieCenterY; 213: } 214: 215: /** 216: * Sets the y-coordinate of the center of the pie chart. This method is 217: * used by the plot and typically is not called directly by applications. 218: * 219: * @param y the y-coordinate (in Java2D space). 220: */ 221: public void setPieCenterY(double y) { 222: this.pieCenterY = y; 223: } 224: 225: /** 226: * Returns the link area. This defines the "dog-leg" point for the label 227: * linking lines. 228: * 229: * @return The link area. 230: */ 231: public Rectangle2D getLinkArea() { 232: return this.linkArea; 233: } 234: 235: /** 236: * Sets the label link area. This defines the "dog-leg" point for the 237: * label linking lines. 238: * 239: * @param area the area. 240: */ 241: public void setLinkArea(Rectangle2D area) { 242: this.linkArea = area; 243: } 244: 245: /** 246: * Returns the vertical pie radius. 247: * 248: * @return The radius. 249: */ 250: public double getPieHRadius() { 251: return this.pieHRadius; 252: } 253: 254: /** 255: * Sets the vertical pie radius. 256: * 257: * @param radius the radius. 258: */ 259: public void setPieHRadius(double radius) { 260: this.pieHRadius = radius; 261: } 262: 263: /** 264: * Returns the horizontal pie radius. 265: * 266: * @return The radius. 267: */ 268: public double getPieWRadius() { 269: return this.pieWRadius; 270: } 271: 272: /** 273: * Sets the horizontal pie radius. 274: * 275: * @param radius the radius. 276: */ 277: public void setPieWRadius(double radius) { 278: this.pieWRadius = radius; 279: } 280: 281: }