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: * XYItemEntity.java
029: * -----------------
030: * (C) Copyright 2002-2005, by Object Refinery Limited.
031: *
032: * Original Author: David Gilbert (for Object Refinery Limited);
033: * Contributor(s): Richard Atkinson;
034: * Christian W. Zuckschwerdt;
035: *
036: * $Id: XYItemEntity.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 accessor methods and 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-Jun-2003 : Added XYDataset 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:
057: import org.jfree.data.xy.XYDataset;
058:
059: /**
060: * A chart entity that represents one item within an
061: * {@link org.jfree.chart.plot.XYPlot}.
062: */
063: public class XYItemEntity extends ChartEntity {
064:
065: /** For serialization. */
066: private static final long serialVersionUID = -3870862224880283771L;
067:
068: /** The dataset. */
069: private transient XYDataset dataset;
070:
071: /** The series. */
072: private int series;
073:
074: /** The item. */
075: private int item;
076:
077: /**
078: * Creates a new entity.
079: *
080: * @param area the area.
081: * @param dataset the dataset.
082: * @param series the series (zero-based index).
083: * @param item the item (zero-based index).
084: * @param toolTipText the tool tip text.
085: * @param urlText the URL text for HTML image maps.
086: */
087: public XYItemEntity(Shape area, XYDataset dataset, int series,
088: int item, String toolTipText, String urlText) {
089: super (area, toolTipText, urlText);
090: this .dataset = dataset;
091: this .series = series;
092: this .item = item;
093: }
094:
095: /**
096: * Returns the dataset this entity refers to.
097: *
098: * @return The dataset.
099: */
100: public XYDataset getDataset() {
101: return this .dataset;
102: }
103:
104: /**
105: * Sets the dataset this entity refers to.
106: *
107: * @param dataset the dataset.
108: */
109: public void setDataset(XYDataset dataset) {
110: this .dataset = dataset;
111: }
112:
113: /**
114: * Returns the series index.
115: *
116: * @return The series index.
117: */
118: public int getSeriesIndex() {
119: return this .series;
120: }
121:
122: /**
123: * Sets the series index.
124: *
125: * @param series the series index (zero-based).
126: */
127: public void setSeriesIndex(int series) {
128: this .series = series;
129: }
130:
131: /**
132: * Returns the item index.
133: *
134: * @return The item index.
135: */
136: public int getItem() {
137: return this .item;
138: }
139:
140: /**
141: * Sets the item index.
142: *
143: * @param item the item index (zero-based).
144: */
145: public void setItem(int item) {
146: this .item = item;
147: }
148:
149: /**
150: * Tests the entity for equality with an arbitrary object.
151: *
152: * @param obj the object (<code>null</code> permitted).
153: *
154: * @return A boolean.
155: */
156: public boolean equals(Object obj) {
157: if (obj == this ) {
158: return true;
159: }
160: if (obj instanceof XYItemEntity && super .equals(obj)) {
161: XYItemEntity ie = (XYItemEntity) obj;
162: if (this .series != ie.series) {
163: return false;
164: }
165: if (this .item != ie.item) {
166: return false;
167: }
168: return true;
169: }
170: return false;
171: }
172:
173: /**
174: * Returns a string representation of this instance, useful for debugging
175: * purposes.
176: *
177: * @return A string.
178: */
179: public String toString() {
180: return "XYItemEntity: series = " + getSeriesIndex()
181: + ", item = " + getItem() + ", dataset = "
182: + getDataset();
183: }
184:
185: }
|