Source for org.jfree.chart.plot.PiePlotState

   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: }