/* =========================================================== * JFreeChart : a free chart library for the Java(tm) platform * =========================================================== * * (C) Copyright 2000-2013, by Object Refinery Limited and Contributors. * * Project Info: http://www.jfree.org/jfreechart/index.html * * This library is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public * License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, * USA. * * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. * Other names may be trademarks of their respective owners.] * * ----------------- * XYItemEntity.java * ----------------- * (C) Copyright 2002-2013, by Object Refinery Limited. * * Original Author: David Gilbert (for Object Refinery Limited); * Contributor(s): Richard Atkinson; * Christian W. Zuckschwerdt; * * Changes: * -------- * 23-May-2002 : Version 1 (DG); * 12-Jun-2002 : Added accessor methods and Javadoc comments (DG); * 26-Jun-2002 : Added getImageMapAreaTag() method (DG); * 05-Aug-2002 : Added new constructor to populate URLText * Moved getImageMapAreaTag() to ChartEntity (superclass) (RA); * 03-Oct-2002 : Fixed errors reported by Checkstyle (DG); * 30-Jun-2003 : Added XYDataset reference (CZ); * 20-May-2004 : Added equals() and clone() methods and implemented * Serializable (DG); * 11-Jan-2005 : Removed deprecated code in preparation for 1.0.0 release (DG); * */ package org.jfree.chart.entity; import java.awt.Shape; import org.jfree.data.extension.DatasetCursor; import org.jfree.data.extension.impl.XYCursor; import org.jfree.data.general.Dataset; import org.jfree.data.xy.XYDataset; /** * A chart entity that represents one item within an * {@link org.jfree.chart.plot.XYPlot}. */ public class XYItemEntity extends DataItemEntity { /** For serialization. */ private static final long serialVersionUID = -3870862224880283771L; /** The dataset. */ private transient XYDataset dataset; /** The series. */ private int series; /** The item. */ private int item; /** * Creates a new entity. * * @param area the area. * @param dataset the dataset. * @param series the series (zero-based index). * @param item the item (zero-based index). * @param toolTipText the tool tip text. * @param urlText the URL text for HTML image maps. */ public XYItemEntity(Shape area, XYDataset dataset, int series, int item, String toolTipText, String urlText) { super(area, toolTipText, urlText); this.dataset = dataset; this.series = series; this.item = item; } /** * Returns the dataset this entity refers to. * * @return The dataset. */ public XYDataset getDataset() { return this.dataset; } /** * @see DataItemEntity#getGeneralDataset() */ public Dataset getGeneralDataset() { return this.dataset; } /** * Sets the dataset this entity refers to. * * @param dataset the dataset. */ public void setDataset(XYDataset dataset) { this.dataset = dataset; } /** * Returns the series index. * * @return The series index. */ public int getSeriesIndex() { return this.series; } /** * Sets the series index. * * @param series the series index (zero-based). */ public void setSeriesIndex(int series) { this.series = series; } /** * Returns the item index. * * @return The item index. */ public int getItem() { return this.item; } /** * Sets the item index. * * @param item the item index (zero-based). */ public void setItem(int item) { this.item = item; } /** * Tests the entity for equality with an arbitrary object. * * @param obj the object (<code>null</code> permitted). * * @return A boolean. */ @Override public boolean equals(Object obj) { if (obj == this) { return true; } if (obj instanceof XYItemEntity && super.equals(obj)) { XYItemEntity ie = (XYItemEntity) obj; if (this.series != ie.series) { return false; } if (this.item != ie.item) { return false; } return true; } return false; } /** * Returns a string representation of this instance, useful for debugging * purposes. * * @return A string. */ @Override public String toString() { return "XYItemEntity: series = " + getSeriesIndex() + ", item = " + getItem() + ", dataset = " + getDataset(); } @Override public DatasetCursor getItemCursor() { return new XYCursor(series, item); } }