/* =========================================================== * JFreeChart : a free chart library for the Java(tm) platform * =========================================================== * * (C) Copyright 2000-2012, 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.] * * ---------------------- * PolarItemRenderer.java * ---------------------- * (C) Copyright 2004-2011, by Solution Engineering, Inc. and Contributors. * * Original Author: Daniel Bridenbecker, Solution Engineering, Inc.; * Contributor(s): David Gilbert (for Object Refinery Limited); * * Changes * ------- * 19-Jan-2004 : Version 1, contributed by DB with minor changes by DG (DG); * 03-Oct-2011 : Added tooltip and URL generator support (MH); * */ package org.jfree.chart.renderer; import java.awt.Graphics2D; import java.awt.geom.Rectangle2D; import java.util.List; import org.jfree.chart.LegendItem; import org.jfree.chart.axis.ValueAxis; import org.jfree.chart.axis.ValueTick; import org.jfree.chart.event.RendererChangeEvent; import org.jfree.chart.event.RendererChangeListener; import org.jfree.chart.labels.XYToolTipGenerator; import org.jfree.chart.plot.PlotRenderingInfo; import org.jfree.chart.plot.PolarPlot; import org.jfree.chart.urls.XYURLGenerator; import org.jfree.data.xy.XYDataset; /** * The interface for a renderer that can be used by the {@link PolarPlot} * class. */ public interface PolarItemRenderer { /** * Plots the data for a given series. * * @param g2 the drawing surface. * @param dataArea the data area. * @param info collects plot rendering info. * @param plot the plot. * @param dataset the dataset. * @param seriesIndex the series index. */ public void drawSeries(Graphics2D g2, Rectangle2D dataArea, PlotRenderingInfo info, PolarPlot plot, XYDataset dataset, int seriesIndex); /** * Draw the angular gridlines - the spokes. * * @param g2 the drawing surface. * @param plot the plot. * @param ticks the ticks. * @param dataArea the data area. */ public void drawAngularGridLines(Graphics2D g2, PolarPlot plot, List<ValueTick> ticks, Rectangle2D dataArea); /** * Draw the radial gridlines - the rings. * * @param g2 the drawing surface. * @param plot the plot. * @param radialAxis the radial axis. * @param ticks the ticks. * @param dataArea the data area. */ public void drawRadialGridLines(Graphics2D g2, PolarPlot plot, ValueAxis radialAxis, List<ValueTick> ticks, Rectangle2D dataArea); /** * Return the legend for the given series. * * @param series the series index. * * @return The legend item. */ public LegendItem getLegendItem(int series); /** * Returns the plot that this renderer has been assigned to. * * @return The plot. */ public PolarPlot getPlot(); /** * Sets the plot that this renderer is assigned to. This method will be * called by the plot class...you do not need to call it yourself. * * @param plot the plot. */ public void setPlot(PolarPlot plot); /** * Adds a change listener. * * @param listener the listener. */ public void addChangeListener(RendererChangeListener listener); /** * Removes a change listener. * * @param listener the listener. */ public void removeChangeListener(RendererChangeListener listener); //// TOOL TIP GENERATOR /////////////////////////////////////////////////// /** * Returns the tool tip generator for a data item. * * @param row the row index (zero based). * @param column the column index (zero based). * * @return The generator (possibly <code>null</code>). * * @since 1.0.14 */ public XYToolTipGenerator getToolTipGenerator(int row, int column); /** * Returns the tool tip generator for a series. * * @param series the series index (zero based). * * @return The generator (possibly <code>null</code>). * * @see #setSeriesToolTipGenerator(int, XYToolTipGenerator) * * @since 1.0.14 */ public XYToolTipGenerator getSeriesToolTipGenerator(int series); /** * Sets the tool tip 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). * * @see #getSeriesToolTipGenerator(int) * * @since 1.0.14 */ public void setSeriesToolTipGenerator(int series, XYToolTipGenerator generator); /** * Returns the base tool tip generator. * * @return The generator (possibly <code>null</code>). * * @see #setBaseToolTipGenerator(XYToolTipGenerator) * * @since 1.0.14 */ public XYToolTipGenerator getBaseToolTipGenerator(); /** * Sets the base tool tip generator and sends a {@link RendererChangeEvent} * to all registered listeners. * * @param generator the generator (<code>null</code> permitted). * * @see #getBaseToolTipGenerator() * * @since 1.0.14 */ public void setBaseToolTipGenerator(XYToolTipGenerator generator); //// URL GENERATOR //////////////////////////////////////////////////////// /** * Returns the URL generator for HTML image maps. * * @return The URL generator (possibly null). * * @since 1.0.14 */ public XYURLGenerator getURLGenerator(); /** * Sets the URL generator for HTML image maps. * * @param urlGenerator the URL generator (null permitted). * * @since 1.0.14 */ public void setURLGenerator(XYURLGenerator urlGenerator); }