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: * CategoryItemEntity.java 29: * ----------------------- 30: * (C) Copyright 2002-2005, by Object Refinery Limited and Contributors. 31: * 32: * Original Author: David Gilbert (for Object Refinery Limited); 33: * Contributor(s): Richard Atkinson; 34: * Christian W. Zuckschwerdt; 35: * 36: * $Id: CategoryItemEntity.java,v 1.5.2.1 2005/10/25 20:41:59 mungady Exp $ 37: * 38: * Changes: 39: * -------- 40: * 23-May-2002 : Version 1 (DG); 41: * 12-Jun-2002 : Added Javadoc comments (DG); 42: * 26-Jun-2002 : Added getImageMapAreaTag() method (DG); 43: * 05-Aug-2002 : Added new constructor to populate URLText 44: * Moved getImageMapAreaTag() to ChartEntity (superclass) (RA); 45: * 03-Oct-2002 : Fixed errors reported by Checkstyle (DG); 46: * 30-Jul-2003 : Added CategoryDataset reference (CZ); 47: * 20-May-2004 : Added equals() and clone() methods, and implemented 48: * Serializable (DG); 49: * 11-Jan-2005 : Removed deprecated code in preparation for 1.0.0 release (DG); 50: * 51: */ 52: 53: package org.jfree.chart.entity; 54: 55: import java.awt.Shape; 56: import java.io.Serializable; 57: 58: import org.jfree.data.category.CategoryDataset; 59: import org.jfree.util.ObjectUtilities; 60: 61: /** 62: * A chart entity that represents one item within a category plot. 63: */ 64: public class CategoryItemEntity extends ChartEntity 65: implements Cloneable, Serializable { 66: 67: /** For serialization. */ 68: private static final long serialVersionUID = -8657249457902337349L; 69: 70: /** The dataset. */ 71: private transient CategoryDataset dataset; 72: 73: /** The series (zero-based index). */ 74: private int series; 75: 76: /** The category. */ 77: private Object category; 78: 79: /** The category index. */ 80: private int categoryIndex; 81: 82: /** 83: * Creates a new category item entity. 84: * 85: * @param area the area. 86: * @param toolTipText the tool tip text. 87: * @param urlText the URL text for HTML image maps. 88: * @param dataset the dataset. 89: * @param series the series (zero-based index). 90: * @param category the category. 91: * @param categoryIndex the category index. 92: */ 93: public CategoryItemEntity(Shape area, String toolTipText, String urlText, 94: CategoryDataset dataset, 95: int series, Object category, int categoryIndex) { 96: 97: super(area, toolTipText, urlText); 98: this.dataset = dataset; 99: this.series = series; 100: this.category = category; 101: this.categoryIndex = categoryIndex; 102: 103: } 104: 105: /** 106: * Returns the datset this entity refers to. 107: * 108: * @return The dataset (possibly <code>null</code>). 109: */ 110: public CategoryDataset getDataset() { 111: return this.dataset; 112: } 113: 114: /** 115: * Sets the datset this entity refers to. 116: * 117: * @param dataset the dataset (<code>null</code> permited). 118: */ 119: public void setDataset(CategoryDataset dataset) { 120: this.dataset = dataset; 121: } 122: 123: /** 124: * Returns the series index. 125: * 126: * @return The series index. 127: */ 128: public int getSeries() { 129: return this.series; 130: } 131: 132: /** 133: * Sets the series index. 134: * 135: * @param series the series index (zero-based). 136: */ 137: public void setSeries(int series) { 138: this.series = series; 139: } 140: 141: /** 142: * Returns the category. 143: * 144: * @return The category (possibly <code>null</code>). 145: */ 146: public Object getCategory() { 147: return this.category; 148: } 149: 150: /** 151: * Sets the category. 152: * 153: * @param category the category (<code>null</code> permitted). 154: */ 155: public void setCategory(Object category) { 156: this.category = category; 157: } 158: 159: /** 160: * Returns the category index. 161: * 162: * @return The index. 163: */ 164: public int getCategoryIndex() { 165: return this.categoryIndex; 166: } 167: 168: /** 169: * Sets the category index. 170: * 171: * @param index the category index. 172: */ 173: public void setCategoryIndex(int index) { 174: this.categoryIndex = index; 175: } 176: 177: /** 178: * Returns a string representing this object (useful for debugging 179: * purposes). 180: * 181: * @return A string. 182: */ 183: public String toString() { 184: return "Category Item: series=" + this.series 185: + ", category=" + this.category.toString(); 186: } 187: 188: /** 189: * Tests the entity for equality with an arbitrary object. 190: * 191: * @param obj the object (<code>null</code> permitted). 192: * 193: * @return A boolean. 194: */ 195: public boolean equals(Object obj) { 196: if (obj == this) { 197: return true; 198: } 199: if (obj instanceof CategoryItemEntity && super.equals(obj)) { 200: CategoryItemEntity cie = (CategoryItemEntity) obj; 201: if (this.categoryIndex != cie.categoryIndex) { 202: return false; 203: } 204: if (this.series != cie.series) { 205: return false; 206: } 207: if (!ObjectUtilities.equal(this.category, cie.category)) { 208: return false; 209: } 210: return true; 211: } 212: return false; 213: } 214: 215: }