org.jfree.chart.renderer
Class CyclicXYItemRenderer

java.lang.Object
  extended byorg.jfree.chart.renderer.AbstractRenderer
      extended byorg.jfree.chart.renderer.AbstractXYItemRenderer
          extended byorg.jfree.chart.renderer.StandardXYItemRenderer
              extended byorg.jfree.chart.renderer.CyclicXYItemRenderer
All Implemented Interfaces:
java.lang.Cloneable, org.jfree.util.PublicCloneable, java.io.Serializable, XYItemRenderer

public class CyclicXYItemRenderer
extends StandardXYItemRenderer

The Cyclic XY item renderer is specially designed to handle cyclic axis. While the standard renderer would draw a line across the plot when a cycling occurs, the cyclic renderer splits the line at each cycle end instead. This is done by interpolating new points at cycle boundary. Thus, correct appearance is restored. The Cyclic XY item renderer works exactly like a standard XY item renderer with non-cyclic axis.

Author:
Nicolas Brodu
See Also:
Serialized Form

Nested Class Summary
protected static class CyclicXYItemRenderer.OverwriteDataSet
          A dataset to hold the interpolated points when drawing new lines.
 
Field Summary
 
Fields inherited from class org.jfree.chart.renderer.StandardXYItemRenderer
DISCONTINUOUS, DISCONTINUOUS_LINES, IMAGES, LINES, SHAPES, SHAPES_AND_LINES
 
Fields inherited from class org.jfree.chart.renderer.AbstractRenderer
DEFAULT_OUTLINE_PAINT, DEFAULT_OUTLINE_STROKE, DEFAULT_PAINT, DEFAULT_SHAPE, DEFAULT_STROKE, DEFAULT_VALUE_LABEL_FONT, DEFAULT_VALUE_LABEL_PAINT, ZERO
 
Constructor Summary
CyclicXYItemRenderer()
          Overloaded contructor.
CyclicXYItemRenderer(int type)
          Overloaded contructor.
CyclicXYItemRenderer(int type, XYToolTipGenerator toolTipGenerator)
          Overloaded contructor.
CyclicXYItemRenderer(int type, XYToolTipGenerator toolTipGenerator, XYURLGenerator urlGenerator)
          Overloaded contructor.
 
Method Summary
 void drawItem(java.awt.Graphics2D g2, XYItemRendererState state, java.awt.geom.Rectangle2D dataArea, PlotRenderingInfo info, XYPlot plot, ValueAxis domainAxis, ValueAxis rangeAxis, XYDataset dataset, int series, int item, CrosshairInfo crosshairInfo, int pass)
          Draws the visual representation of a single data item.
 
Methods inherited from class org.jfree.chart.renderer.StandardXYItemRenderer
clone, equals, getDefaultShapesFilled, getGapThreshold, getImage, getImageHotspot, getItemShapeFilled, getPlotDiscontinuous, getPlotImages, getPlotLines, getPlotShapes, getSeriesShapesFilled, setDefaultShapesFilled, setGapThreshold, setPlotImages, setPlotLines, setPlotShapes, setSeriesShapesFilled, setShapesFilled, setShapesFilled
 
Methods inherited from class org.jfree.chart.renderer.AbstractXYItemRenderer
drawDomainGridLine, drawDomainMarker, drawRangeGridLine, drawRangeMarker, fillDomainGridBand, fillRangeGridBand, getDrawingSupplier, getLegendItem, getPassCount, getPlot, getRangeType, getToolTipGenerator, getURLGenerator, initialise, setPlot, setToolTipGenerator, setURLGenerator
 
Methods inherited from class org.jfree.chart.renderer.AbstractRenderer
addChangeListener, addPropertyChangeListener, createTransformedShape, firePropertyChanged, getBaseItemLabelAnchor, getBaseItemLabelAngle, getBaseItemLabelFont, getBaseItemLabelPaint, getBaseItemLabelRotationAnchor, getBaseItemLabelsVisible, getBaseItemLabelTextAnchor, getBaseNegativeItemLabelPosition, getBaseOutlinePaint, getBaseOutlineStroke, getBasePaint, getBasePositiveItemLabelPosition, getBaseShape, getBaseStroke, getItemLabelAnchor, getItemLabelAngle, getItemLabelFont, getItemLabelPaint, getItemLabelRotationAnchor, getItemLabelTextAnchor, getItemOutlinePaint, getItemOutlineStroke, getItemPaint, getItemShape, getItemStroke, getNegativeItemLabelPosition, getNegativeItemLabelPosition, getPositiveItemLabelPosition, getPositiveItemLabelPosition, getSeriesItemLabelAnchor, getSeriesItemLabelAngle, getSeriesItemLabelFont, getSeriesItemLabelPaint, getSeriesItemLabelRotationAnchor, getSeriesItemLabelTextAnchor, getSeriesNegativeItemLabelPosition, getSeriesOutlinePaint, getSeriesOutlineStroke, getSeriesPaint, getSeriesPositiveItemLabelPosition, getSeriesShape, getSeriesStroke, hashCode, isItemLabelVisible, isSeriesItemLabelsVisible, notifyListeners, removeChangeListener, removePropertyChangeListener, setBaseAngle, setBaseItemLabelAnchor, setBaseItemLabelFont, setBaseItemLabelFont, setBaseItemLabelPaint, setBaseItemLabelPaint, setBaseItemLabelRotationAnchor, setBaseItemLabelsVisible, setBaseItemLabelsVisible, setBaseItemLabelTextAnchor, setBaseNegativeItemLabelPosition, setBaseNegativeItemLabelPosition, setBaseOutlinePaint, setBaseOutlinePaint, setBaseOutlineStroke, setBaseOutlineStroke, setBasePaint, setBasePaint, setBasePositiveItemLabelPosition, setBasePositiveItemLabelPosition, setBaseShape, setBaseShape, setBaseStroke, setBaseStroke, setItemLabelAnchor, setItemLabelAngle, setItemLabelFont, setItemLabelFont, setItemLabelPaint, setItemLabelPaint, setItemLabelRotationAnchor, setItemLabelsVisible, setItemLabelsVisible, setItemLabelsVisible, setItemLabelTextAnchor, setNegativeItemLabelPosition, setNegativeItemLabelPosition, setOutlinePaint, setOutlinePaint, setOutlineStroke, setOutlineStroke, setPaint, setPaint, setPositiveItemLabelPosition, setPositiveItemLabelPosition, setSeriesAngle, setSeriesItemLabelAnchor, setSeriesItemLabelFont, setSeriesItemLabelFont, setSeriesItemLabelPaint, setSeriesItemLabelPaint, setSeriesItemLabelRotationAnchor, setSeriesItemLabelsVisible, setSeriesItemLabelsVisible, setSeriesItemLabelTextAnchor, setSeriesNegativeItemLabelPosition, setSeriesNegativeItemLabelPosition, setSeriesOutlinePaint, setSeriesOutlinePaint, setSeriesOutlineStroke, setSeriesOutlineStroke, setSeriesPaint, setSeriesPaint, setSeriesPositiveItemLabelPosition, setSeriesPositiveItemLabelPosition, setSeriesShape, setSeriesShape, setSeriesStroke, setSeriesStroke, setShape, setShape, setStroke, setStroke
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.jfree.chart.renderer.XYItemRenderer
addPropertyChangeListener, drawDomainGridLine, drawDomainMarker, drawRangeGridLine, drawRangeMarker, fillDomainGridBand, fillRangeGridBand, getBaseStroke, getItemOutlinePaint, getItemPaint, getItemShape, getItemStroke, getLegendItem, getPassCount, getPlot, getRangeType, getSeriesOutlinePaint, getSeriesPaint, getSeriesShape, getSeriesStroke, getToolTipGenerator, getURLGenerator, initialise, removePropertyChangeListener, setBaseStroke, setPlot, setSeriesPaint, setSeriesStroke, setStroke, setToolTipGenerator, setURLGenerator
 

Constructor Detail

CyclicXYItemRenderer

public CyclicXYItemRenderer()
Overloaded contructor. See StandardXYItemRenderer


CyclicXYItemRenderer

public CyclicXYItemRenderer(int type)
Overloaded contructor. See StandardXYItemRenderer


CyclicXYItemRenderer

public CyclicXYItemRenderer(int type,
                            XYToolTipGenerator toolTipGenerator)
Overloaded contructor. See StandardXYItemRenderer


CyclicXYItemRenderer

public CyclicXYItemRenderer(int type,
                            XYToolTipGenerator toolTipGenerator,
                            XYURLGenerator urlGenerator)
Overloaded contructor. See StandardXYItemRenderer

Method Detail

drawItem

public void drawItem(java.awt.Graphics2D g2,
                     XYItemRendererState state,
                     java.awt.geom.Rectangle2D dataArea,
                     PlotRenderingInfo info,
                     XYPlot plot,
                     ValueAxis domainAxis,
                     ValueAxis rangeAxis,
                     XYDataset dataset,
                     int series,
                     int item,
                     CrosshairInfo crosshairInfo,
                     int pass)
Draws the visual representation of a single data item. When using cyclic axis, do not draw a line from right to left when cycling as would a standard XY item renderer, but instead draw a line from the previous point to the cycle bound in the last cycle, and a line from the cycle bound to current point in the current cycle.

Specified by:
drawItem in interface XYItemRenderer
Overrides:
drawItem in class StandardXYItemRenderer
Parameters:
g2 - the graphics device.
state - the renderer state.
dataArea - the area within which the data is being drawn.
info - collects information about the drawing.
plot - the plot (can be used to obtain standard color information etc).
domainAxis - the domain axis.
rangeAxis - the range axis.
dataset - the dataset.
series - the series index (zero-based).
item - the item index (zero-based).
crosshairInfo - information about crosshairs on a plot.
pass - the pass index.
See Also:
XYItemRenderer.drawItem(java.awt.Graphics2D, org.jfree.chart.renderer.XYItemRendererState, java.awt.geom.Rectangle2D, org.jfree.chart.plot.PlotRenderingInfo, org.jfree.chart.plot.XYPlot, org.jfree.chart.axis.ValueAxis, org.jfree.chart.axis.ValueAxis, org.jfree.data.XYDataset, int, int, org.jfree.chart.CrosshairInfo, int)