001 /* =========================================================== 002 * JFreeChart : a free chart library for the Java(tm) platform 003 * =========================================================== 004 * 005 * (C) Copyright 2000-2005, by Object Refinery Limited and Contributors. 006 * 007 * Project Info: http://www.jfree.org/jfreechart/index.html 008 * 009 * This library is free software; you can redistribute it and/or modify it 010 * under the terms of the GNU Lesser General Public License as published by 011 * the Free Software Foundation; either version 2.1 of the License, or 012 * (at your option) any later version. 013 * 014 * This library is distributed in the hope that it will be useful, but 015 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 016 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 017 * License for more details. 018 * 019 * You should have received a copy of the GNU Lesser General Public 020 * License along with this library; if not, write to the Free Software 021 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 022 * USA. 023 * 024 * [Java is a trademark or registered trademark of Sun Microsystems, Inc. 025 * in the United States and other countries.] 026 * 027 * ----------------------- 028 * CategoryItemEntity.java 029 * ----------------------- 030 * (C) Copyright 2002-2005, by Object Refinery Limited and Contributors. 031 * 032 * Original Author: David Gilbert (for Object Refinery Limited); 033 * Contributor(s): Richard Atkinson; 034 * Christian W. Zuckschwerdt; 035 * 036 * $Id: CategoryItemEntity.java,v 1.5.2.1 2005/10/25 20:41:59 mungady Exp $ 037 * 038 * Changes: 039 * -------- 040 * 23-May-2002 : Version 1 (DG); 041 * 12-Jun-2002 : Added Javadoc comments (DG); 042 * 26-Jun-2002 : Added getImageMapAreaTag() method (DG); 043 * 05-Aug-2002 : Added new constructor to populate URLText 044 * Moved getImageMapAreaTag() to ChartEntity (superclass) (RA); 045 * 03-Oct-2002 : Fixed errors reported by Checkstyle (DG); 046 * 30-Jul-2003 : Added CategoryDataset reference (CZ); 047 * 20-May-2004 : Added equals() and clone() methods, and implemented 048 * Serializable (DG); 049 * 11-Jan-2005 : Removed deprecated code in preparation for 1.0.0 release (DG); 050 * 051 */ 052 053 package org.jfree.chart.entity; 054 055 import java.awt.Shape; 056 import java.io.Serializable; 057 058 import org.jfree.data.category.CategoryDataset; 059 import org.jfree.util.ObjectUtilities; 060 061 /** 062 * A chart entity that represents one item within a category plot. 063 */ 064 public class CategoryItemEntity extends ChartEntity 065 implements Cloneable, Serializable { 066 067 /** For serialization. */ 068 private static final long serialVersionUID = -8657249457902337349L; 069 070 /** The dataset. */ 071 private transient CategoryDataset dataset; 072 073 /** The series (zero-based index). */ 074 private int series; 075 076 /** The category. */ 077 private Object category; 078 079 /** The category index. */ 080 private int categoryIndex; 081 082 /** 083 * Creates a new category item entity. 084 * 085 * @param area the area. 086 * @param toolTipText the tool tip text. 087 * @param urlText the URL text for HTML image maps. 088 * @param dataset the dataset. 089 * @param series the series (zero-based index). 090 * @param category the category. 091 * @param categoryIndex the category index. 092 */ 093 public CategoryItemEntity(Shape area, String toolTipText, String urlText, 094 CategoryDataset dataset, 095 int series, Object category, int categoryIndex) { 096 097 super(area, toolTipText, urlText); 098 this.dataset = dataset; 099 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 }