Source for org.jfree.chart.labels.StandardContourToolTipGenerator

   1: /* ===========================================================
   2:  * JFreeChart : a free chart library for the Java(tm) platform
   3:  * ===========================================================
   4:  *
   5:  * (C) Copyright 2000-2007, 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:  * StandardContourToolTipGenerator.java
  29:  * ------------------------------------
  30:  * (C) Copyright 2002-2007, by David M. O'Donnell and Contributors.
  31:  *
  32:  * Original Author:  David M. O'Donnell;
  33:  * Contributor(s):   David Gilbert (for Object Refinery Limited);
  34:  *
  35:  * Changes
  36:  * -------
  37:  * 23-Jan-2003 : Added standard header (DG);
  38:  * 21-Mar-2003 : Implemented Serializable (DG);
  39:  * 15-Jul-2004 : Switched the getZ() and getZValue() methods (DG);
  40:  * 19-Jan-2005 : Now accesses primitives only from dataset (DG);
  41:  * 
  42:  */
  43: 
  44: package org.jfree.chart.labels;
  45: 
  46: import java.io.Serializable;
  47: import java.text.DecimalFormat;
  48: import java.text.SimpleDateFormat;
  49: import java.util.Date;
  50: 
  51: import org.jfree.chart.plot.XYPlot;
  52: import org.jfree.chart.renderer.xy.XYBlockRenderer;
  53: import org.jfree.data.contour.ContourDataset;
  54: 
  55: /**
  56:  * A standard tooltip generator for plots that use data from an 
  57:  * {@link ContourDataset}.
  58:  *
  59:  * @deprecated This class is no longer supported (as of version 1.0.4).  If 
  60:  *     you are creating contour plots, please try to use {@link XYPlot} and 
  61:  *     {@link XYBlockRenderer}.
  62:  */
  63: public class StandardContourToolTipGenerator implements ContourToolTipGenerator,
  64:                                                         Serializable {
  65: 
  66:     /** For serialization. */
  67:     private static final long serialVersionUID = -1881659351247502711L;
  68:     
  69:     /** The number formatter. */
  70:     private DecimalFormat valueForm = new DecimalFormat("##.###");
  71: 
  72:     /**
  73:      * Generates a tooltip text item for a particular item within a series.
  74:      *
  75:      * @param data  the dataset.
  76:      * @param item  the item index (zero-based).
  77:      *
  78:      * @return The tooltip text.
  79:      */
  80:     public String generateToolTip(ContourDataset data, int item) {
  81: 
  82:         double x = data.getXValue(0, item);
  83:         double y = data.getYValue(0, item);
  84:         double z = data.getZValue(0, item);
  85:         String xString = null;
  86: 
  87:         if (data.isDateAxis(0)) {
  88:             SimpleDateFormat formatter 
  89:                 = new java.text.SimpleDateFormat("MM/dd/yyyy hh:mm:ss");
  90:             StringBuffer strbuf = new StringBuffer();
  91:             strbuf = formatter.format(
  92:                 new Date((long) x), strbuf, new java.text.FieldPosition(0)
  93:             );
  94:             xString = strbuf.toString();
  95:         }
  96:         else {
  97:             xString = this.valueForm.format(x);
  98:         }
  99:         if (!Double.isNaN(z)) {
 100:             return "X: " + xString
 101:                    + ", Y: " + this.valueForm.format(y)
 102:                    + ", Z: " + this.valueForm.format(z);
 103:         }
 104:         else {
 105:             return "X: " + xString
 106:                  + ", Y: " + this.valueForm.format(y)
 107:                  + ", Z: no data";
 108:         }
 109: 
 110:     }
 111: 
 112:     /**
 113:      * Tests if this object is equal to another.
 114:      *
 115:      * @param obj  the other object.
 116:      *
 117:      * @return A boolean.
 118:      */
 119:     public boolean equals(Object obj) {
 120: 
 121:         if (obj == this) {
 122:             return true;
 123:         }
 124: 
 125:         if (!(obj instanceof StandardContourToolTipGenerator)) {
 126:             return false;
 127:         }
 128:         StandardContourToolTipGenerator that 
 129:             = (StandardContourToolTipGenerator) obj;
 130:         if (this.valueForm != null) {
 131:             return this.valueForm.equals(that.valueForm);
 132:         }
 133:         return false;
 134: 
 135:     }
 136: 
 137: }