⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 abstractcategoryitemrenderer.java

📁 这是一个segy数据显示程序
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
/* =========================================================== * JFreeChart : a free chart library for the Java(tm) platform * =========================================================== * * (C) Copyright 2000-2004, 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., 59 Temple Place, Suite 330, * Boston, MA 02111-1307, USA. * * [Java is a trademark or registered trademark of Sun Microsystems, Inc.  * in the United States and other countries.] * * --------------------------------- * AbstractCategoryItemRenderer.java * --------------------------------- * (C) Copyright 2002-2004, by Object Refinery Limited. * * Original Author:  David Gilbert (for Object Refinery Limited); * Contributor(s):   Richard Atkinson; * * $Id: AbstractCategoryItemRenderer.java,v 1.52 2004/05/13 09:57:09 mungady Exp $ * * Changes: * -------- * 29-May-2002 : Version 1 (DG); * 06-Jun-2002 : Added accessor methods for the tool tip generator (DG); * 11-Jun-2002 : Made constructors protected (DG); * 26-Jun-2002 : Added axis to initialise method (DG); * 05-Aug-2002 : Added urlGenerator member variable plus accessors (RA); * 22-Aug-2002 : Added categoriesPaint attribute, based on code submitted by Janet Banks. *               This can be used when there is only one series, and you want each category *               item to have a different color (DG); * 01-Oct-2002 : Fixed errors reported by Checkstyle (DG); * 29-Oct-2002 : Fixed bug where background image for plot was not being drawn (DG); * 05-Nov-2002 : Replaced references to CategoryDataset with TableDataset (DG); * 26-Nov 2002 : Replaced the isStacked() method with getRangeType() (DG); * 09-Jan-2003 : Renamed grid-line methods (DG); * 17-Jan-2003 : Moved plot classes into separate package (DG); * 25-Mar-2003 : Implemented Serializable (DG); * 12-May-2003 : Modified to take into account the plot orientation (DG); * 12-Aug-2003 : Very minor javadoc corrections (DB) * 13-Aug-2003 : Implemented Cloneable (DG); * 16-Sep-2003 : Changed ChartRenderingInfo --> PlotRenderingInfo (DG); * 05-Nov-2003 : Fixed marker rendering bug (833623) (DG); * 21-Jan-2004 : Update for renamed method in ValueAxis (DG); * 11-Feb-2004 : Modified labelling for markers (DG); * 12-Feb-2004 : Updated clone() method (DG); * 15-Apr-2004 : Created a new CategoryToolTipGenerator interface (DG); * 05-May-2004 : Fixed bug (948310) where interval markers extend outside axis range (DG); *  */package org.jfree.chart.renderer;import java.awt.Font;import java.awt.Graphics2D;import java.awt.Paint;import java.awt.Shape;import java.awt.Stroke;import java.awt.geom.Line2D;import java.awt.geom.Point2D;import java.awt.geom.Rectangle2D;import java.io.Serializable;import org.jfree.chart.LegendItem;import org.jfree.chart.axis.CategoryAxis;import org.jfree.chart.axis.ValueAxis;import org.jfree.chart.event.RendererChangeEvent;import org.jfree.chart.labels.CategoryLabelGenerator;import org.jfree.chart.labels.CategoryToolTipGenerator;import org.jfree.chart.labels.ItemLabelPosition;import org.jfree.chart.plot.CategoryPlot;import org.jfree.chart.plot.DrawingSupplier;import org.jfree.chart.plot.IntervalMarker;import org.jfree.chart.plot.Marker;import org.jfree.chart.plot.PlotOrientation;import org.jfree.chart.plot.PlotRenderingInfo;import org.jfree.chart.plot.ValueMarker;import org.jfree.chart.urls.CategoryURLGenerator;import org.jfree.data.CategoryDataset;import org.jfree.data.DatasetUtilities;import org.jfree.data.Range;import org.jfree.ui.RectangleAnchor;import org.jfree.ui.RectangleInsets;import org.jfree.ui.RefineryUtilities;import org.jfree.ui.TextAnchor;import org.jfree.util.ObjectList;import org.jfree.util.ObjectUtils;import org.jfree.util.PublicCloneable;/** * An abstract base class that you can use to implement a new {@link CategoryItemRenderer}. * <p> * When you create a new {@link CategoryItemRenderer} you are not required to extend this class, * but it makes the job easier. */public abstract class AbstractCategoryItemRenderer extends AbstractRenderer                                                   implements CategoryItemRenderer,                                                               Cloneable,                                                              Serializable {    /** The plot that the renderer is assigned to. */    private CategoryPlot plot;    /** The label generator for ALL series. */    private CategoryLabelGenerator labelGenerator;    /** A list of item label generators (one per series). */    private ObjectList labelGeneratorList;    /** The base item label generator. */    private CategoryLabelGenerator baseLabelGenerator;    /** The tool tip generator for ALL series. */    private CategoryToolTipGenerator toolTipGenerator;    /** A list of tool tip generators (one per series). */    private ObjectList toolTipGeneratorList;    /** The base tool tip generator. */    private CategoryToolTipGenerator baseToolTipGenerator;    /** The URL generator. */    private CategoryURLGenerator itemURLGenerator;    /** A list of item label generators (one per series). */    private ObjectList itemURLGeneratorList;    /** The base item label generator. */    private CategoryURLGenerator baseItemURLGenerator;    /** The number of rows in the dataset (temporary record). */    private transient int rowCount;    /** The number of columns in the dataset (temporary record). */    private transient int columnCount;    /**     * Creates a new renderer with no tool tip generator and no URL generator.     * <P>     * The defaults (no tool tip or URL generators) have been chosen to minimise the processing     * required to generate a default chart.  If you require tool tips or URLs, then you can     * easily add the required generators.     */    protected AbstractCategoryItemRenderer() {        this.labelGenerator = null;        this.labelGeneratorList = new ObjectList();        this.toolTipGenerator = null;        this.toolTipGeneratorList = new ObjectList();        this.itemURLGenerator = null;        this.itemURLGeneratorList = new ObjectList();    }    /**     * Returns the plot that the renderer has been assigned to (where <code>null</code> indicates     * that the renderer is not currently assigned to a plot).     *     * @return The plot (possibly <code>null</code>).     */    public CategoryPlot getPlot() {        return this.plot;    }    /**     * Sets the plot that the renderer has been assigned to.  This method is usually called     * by the {@link CategoryPlot}, in normal usage you shouldn't need to call this method      * directly.     *     * @param plot  the plot (<code>null</code> not permitted).     */    public void setPlot(CategoryPlot plot) {        if (plot == null) {            throw new IllegalArgumentException("Null 'plot' argument.");           }        this.plot = plot;    }        // LABEL GENERATOR    /**     * Returns the label generator for a data item.  This implementation simply passes control to      * the {@link #getSeriesLabelGenerator(int)} method.  If, for some reason, you want a different     * generator for individual items, you can override this method.     *     * @param row  the row index (zero based).     * @param column  the column index (zero based).     *     * @return the generator (possibly <code>null</code>).     */    public CategoryLabelGenerator getLabelGenerator(int row, int column) {        return getSeriesLabelGenerator(row);    }    /**     * Returns the label generator for a series.     *     * @param series  the series index (zero based).     *     * @return the generator (possibly <code>null</code>).     */    public CategoryLabelGenerator getSeriesLabelGenerator(int series) {        // return the generator for ALL series, if there is one...        if (this.labelGenerator != null) {            return this.labelGenerator;        }        // otherwise look up the generator table        CategoryLabelGenerator generator            = (CategoryLabelGenerator) this.labelGeneratorList.get(series);        if (generator == null) {            generator = this.baseLabelGenerator;        }        return generator;    }    /**     * Sets the label generator for ALL series and sends a {@link RendererChangeEvent}     * to all registered listeners.     *     * @param generator  the generator (<code>null</code> permitted).     */    public void setLabelGenerator(CategoryLabelGenerator generator) {        this.labelGenerator = generator;        notifyListeners(new RendererChangeEvent(this));    }    /**     * Sets the label generator for a series and sends a {@link RendererChangeEvent}     * to all registered listeners.     *     * @param series  the series index (zero based).     * @param generator  the generator (<code>null</code> permitted).     */    public void setSeriesLabelGenerator(int series, CategoryLabelGenerator generator) {        this.labelGeneratorList.set(series, generator);        notifyListeners(new RendererChangeEvent(this));    }    /**     * Returns the base label generator.     *     * @return The generator (possibly <code>null</code>).     */    public CategoryLabelGenerator getBaseLabelGenerator() {        return this.baseLabelGenerator;    }    /**     * Sets the base label generator and sends a {@link RendererChangeEvent}     * to all registered listeners.     *     * @param generator  the generator (<code>null</code> permitted).     */    public void setBaseLabelGenerator(CategoryLabelGenerator generator) {        this.baseLabelGenerator = generator;        notifyListeners(new RendererChangeEvent(this));    }    // TOOL TIP GENERATOR    /**     * Returns the tool tip generator that should be used for the specified item.  This     * method looks up the generator using the "three-layer" approach outlined in the      * general description of this interface.  You can override this method if you want     * to return a different generator per item.     *     * @param row  the row index (zero-based).     * @param column  the column index (zero-based).     *     * @return The generator (possibly <code>null</code>).     */    public CategoryToolTipGenerator getToolTipGenerator(int row, int column) {        CategoryToolTipGenerator result = null;        if (this.toolTipGenerator != null) {            result = this.toolTipGenerator;        }        else {            result = getSeriesToolTipGenerator(row);              if (result == null) {                result = this.baseToolTipGenerator;               }        }        return result;    }    /**     * Returns the tool tip generator that will be used for ALL items in the dataset (the     * "layer 0" generator).     *      * @return A tool tip generator (possibly <code>null</code>).     */    public CategoryToolTipGenerator getToolTipGenerator() {        return this.toolTipGenerator;        }        /**     * Sets the tool tip generator for ALL series and sends a      * {@link org.jfree.chart.event.RendererChangeEvent} to all registered listeners.     *      * @param generator  the generator (<code>null</code> permitted).     */    public void setToolTipGenerator(CategoryToolTipGenerator generator) {        this.toolTipGenerator = generator;        notifyListeners(new RendererChangeEvent(this));    }    /**     * Returns the tool tip generator for the specified series (a "layer 1" generator).     *     * @param series  the series index (zero-based).     *     * @return The tool tip generator (possibly <code>null</code>).     */    public CategoryToolTipGenerator getSeriesToolTipGenerator(int series) {        return (CategoryToolTipGenerator) this.toolTipGeneratorList.get(series);    }    /**     * Sets the tool tip generator for a series and sends a      * {@link org.jfree.chart.event.RendererChangeEvent} to all registered listeners.     *     * @param series  the series index (zero-based).     * @param generator  the generator (<code>null</code> permitted).     */    public void setSeriesToolTipGenerator(int series, CategoryToolTipGenerator generator) {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -