001: /* ===========================================================
002: * JFreeChart : a free chart library for the Java(tm) platform
003: * ===========================================================
004: *
005: * (C) Copyright 2000-2006, 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: * StandardCategoryItemLabelGenerator.java
029: * ---------------------------------------
030: * (C) Copyright 2004-2006, by Object Refinery Limited.
031: *
032: * Original Author: David Gilbert (for Object Refinery Limited);
033: * Contributor(s): -;
034: *
035: * $Id: StandardCategoryItemLabelGenerator.java,v 1.2.2.3 2006/07/25 15:55:48 mungady Exp $
036: *
037: * Changes
038: * -------
039: * 11-May-2004 : Version 1 (DG);
040: * 20-Apr-2005 : Renamed StandardCategoryLabelGenerator
041: * --> StandardCategoryItemLabelGenerator (DG);
042: * ------------- JFREECHART 1.0.0 ---------------------------------------------
043: * 03-May-2005 : Added equals() implementation, to fix bug 1481087 (DG);
044: */
045:
046: package org.jfree.chart.labels;
047:
048: import java.io.Serializable;
049: import java.text.DateFormat;
050: import java.text.NumberFormat;
051:
052: import org.jfree.data.category.CategoryDataset;
053: import org.jfree.util.PublicCloneable;
054:
055: /**
056: * A standard label generator that can be used with a
057: * {@link org.jfree.chart.renderer.category.CategoryItemRenderer}.
058: */
059: public class StandardCategoryItemLabelGenerator extends
060: AbstractCategoryItemLabelGenerator implements
061: CategoryItemLabelGenerator, Cloneable, PublicCloneable,
062: Serializable {
063:
064: /** For serialization. */
065: private static final long serialVersionUID = 3499701401211412882L;
066:
067: /** The default format string. */
068: public static final String DEFAULT_LABEL_FORMAT_STRING = "{2}";
069:
070: /**
071: * Creates a new generator with a default number formatter.
072: */
073: public StandardCategoryItemLabelGenerator() {
074: super (DEFAULT_LABEL_FORMAT_STRING, NumberFormat.getInstance());
075: }
076:
077: /**
078: * Creates a new generator with the specified number formatter.
079: *
080: * @param labelFormat the label format string (<code>null</code> not
081: * permitted).
082: * @param formatter the number formatter (<code>null</code> not permitted).
083: */
084: public StandardCategoryItemLabelGenerator(String labelFormat,
085: NumberFormat formatter) {
086: super (labelFormat, formatter);
087: }
088:
089: /**
090: * Creates a new generator with the specified number formatter.
091: *
092: * @param labelFormat the label format string (<code>null</code> not
093: * permitted).
094: * @param formatter the number formatter (<code>null</code> not permitted).
095: * @param percentFormatter the percent formatter (<code>null</code> not
096: * permitted).
097: *
098: * @since 1.0.2
099: */
100: public StandardCategoryItemLabelGenerator(String labelFormat,
101: NumberFormat formatter, NumberFormat percentFormatter) {
102: super (labelFormat, formatter, percentFormatter);
103: }
104:
105: /**
106: * Creates a new generator with the specified date formatter.
107: *
108: * @param labelFormat the label format string (<code>null</code> not
109: * permitted).
110: * @param formatter the date formatter (<code>null</code> not permitted).
111: */
112: public StandardCategoryItemLabelGenerator(String labelFormat,
113: DateFormat formatter) {
114: super (labelFormat, formatter);
115: }
116:
117: /**
118: * Generates the label for an item in a dataset. Note: in the current
119: * dataset implementation, each row is a series, and each column contains
120: * values for a particular category.
121: *
122: * @param dataset the dataset (<code>null</code> not permitted).
123: * @param row the row index (zero-based).
124: * @param column the column index (zero-based).
125: *
126: * @return The label (possibly <code>null</code>).
127: */
128: public String generateLabel(CategoryDataset dataset, int row,
129: int column) {
130: return generateLabelString(dataset, row, column);
131: }
132:
133: /**
134: * Tests this generator for equality with an arbitrary object.
135: *
136: * @param obj the object (<code>null</code> permitted).
137: *
138: * @return <code>true</code> if this generator is equal to
139: * <code>obj</code>, and <code>false</code> otherwise.
140: */
141: public boolean equals(Object obj) {
142: if (obj == this ) {
143: return true;
144: }
145: if (!(obj instanceof StandardCategoryItemLabelGenerator)) {
146: return false;
147: }
148: return super.equals(obj);
149: }
150: }
|