org.jfree.chart.renderer.xy

Class XYDifferenceRenderer

public class XYDifferenceRenderer extends AbstractXYItemRenderer implements XYItemRenderer, Cloneable, PublicCloneable, Serializable

A renderer for an XYPlot that highlights the differences between two series. The renderer expects a dataset that:
Constructor Summary
XYDifferenceRenderer()
Creates a new renderer with default attributes.
XYDifferenceRenderer(Paint positivePaint, Paint negativePaint, boolean shapes)
Creates a new renderer.
Method Summary
Objectclone()
Returns a clone of the renderer.
voiddrawItem(Graphics2D g2, XYItemRendererState state, Rectangle2D dataArea, PlotRenderingInfo info, XYPlot plot, ValueAxis domainAxis, ValueAxis rangeAxis, XYDataset dataset, int series, int item, CrosshairState crosshairState, int pass)
Draws the visual representation of a single data item.
protected voiddrawItemPass0(Graphics2D g2, Rectangle2D dataArea, PlotRenderingInfo info, XYPlot plot, ValueAxis domainAxis, ValueAxis rangeAxis, XYDataset dataset, int series, int item, CrosshairState crosshairState)
Draws the visual representation of a single data item, first pass.
protected voiddrawItemPass1(Graphics2D g2, Rectangle2D dataArea, PlotRenderingInfo info, XYPlot plot, ValueAxis domainAxis, ValueAxis rangeAxis, XYDataset dataset, int series, int item, CrosshairState crosshairState)
Draws the visual representation of a single data item, second pass.
booleanequals(Object obj)
Tests this renderer for equality with an arbitrary object.
LegendItemgetLegendItem(int datasetIndex, int series)
Returns a default legend item for the specified series.
ShapegetLegendLine()
Returns the shape used to represent a line in the legend.
protected ShapegetNegativeArea(float x0, float y0A, float y0B, float x1, float y1A, float y1B, PlotOrientation orientation)
Returns the negative area for a cross-over section.
PaintgetNegativePaint()
Returns the paint used to highlight negative differences.
intgetPassCount()
Returns 2, the number of passes required by the renderer.
protected ShapegetPositiveArea(float x0, float y0A, float y0B, float x1, float y1A, float y1B, PlotOrientation orientation)
Returns the positive area for a crossover point.
PaintgetPositivePaint()
Returns the paint used to highlight positive differences.
booleangetRoundXCoordinates()
Returns the flag that controls whether or not the x-coordinates (in Java2D space) are rounded to integer values.
booleangetShapesVisible()
Returns a flag that controls whether or not shapes are drawn for each data value.
XYItemRendererStateinitialise(Graphics2D g2, Rectangle2D dataArea, XYPlot plot, XYDataset data, PlotRenderingInfo info)
Initialises the renderer and returns a state object that should be passed to subsequent calls to the drawItem() method.
voidsetLegendLine(Shape line)
Sets the shape used as a line in each legend item and sends a RendererChangeEvent to all registered listeners.
voidsetNegativePaint(Paint paint)
Sets the paint used to highlight negative differences.
voidsetPositivePaint(Paint paint)
Sets the paint used to highlight positive differences.
voidsetRoundXCoordinates(boolean round)
Sets the flag that controls whether or not the x-coordinates (in Java2D space) are rounded to integer values, and sends a RendererChangeEvent to all registered listeners.
voidsetShapesVisible(boolean flag)
Sets a flag that controls whether or not shapes are drawn for each data value.

Constructor Detail

XYDifferenceRenderer

public XYDifferenceRenderer()
Creates a new renderer with default attributes.

XYDifferenceRenderer

public XYDifferenceRenderer(Paint positivePaint, Paint negativePaint, boolean shapes)
Creates a new renderer.

Parameters: positivePaint the highlight color for positive differences (null not permitted). negativePaint the highlight color for negative differences (null not permitted). shapes draw shapes?

Method Detail

clone

public Object clone()
Returns a clone of the renderer.

Returns: A clone.

Throws: CloneNotSupportedException if the renderer cannot be cloned.

drawItem

public void drawItem(Graphics2D g2, XYItemRendererState state, Rectangle2D dataArea, PlotRenderingInfo info, XYPlot plot, ValueAxis domainAxis, ValueAxis rangeAxis, XYDataset dataset, int series, int item, CrosshairState crosshairState, int pass)
Draws the visual representation of a single data item.

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 (horizontal) axis. rangeAxis the range (vertical) axis. dataset the dataset. series the series index (zero-based). item the item index (zero-based). crosshairState crosshair information for the plot (null permitted). pass the pass index.

drawItemPass0

protected void drawItemPass0(Graphics2D g2, Rectangle2D dataArea, PlotRenderingInfo info, XYPlot plot, ValueAxis domainAxis, ValueAxis rangeAxis, XYDataset dataset, int series, int item, CrosshairState crosshairState)
Draws the visual representation of a single data item, first pass.

Parameters: g2 the graphics device. 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 (horizontal) axis. rangeAxis the range (vertical) axis. dataset the dataset. series the series index (zero-based). item the item index (zero-based). crosshairState crosshair information for the plot (null permitted).

drawItemPass1

protected void drawItemPass1(Graphics2D g2, Rectangle2D dataArea, PlotRenderingInfo info, XYPlot plot, ValueAxis domainAxis, ValueAxis rangeAxis, XYDataset dataset, int series, int item, CrosshairState crosshairState)
Draws the visual representation of a single data item, second pass. In the second pass, the renderer draws the lines and shapes for the individual points in the two series.

Parameters: g2 the graphics device. 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 (horizontal) axis. rangeAxis the range (vertical) axis. dataset the dataset. series the series index (zero-based). item the item index (zero-based). crosshairState crosshair information for the plot (null permitted).

equals

public boolean equals(Object obj)
Tests this renderer for equality with an arbitrary object.

Parameters: obj the object (null permitted).

Returns: A boolean.

getLegendItem

public LegendItem getLegendItem(int datasetIndex, int series)
Returns a default legend item for the specified series. Subclasses should override this method to generate customised items.

Parameters: datasetIndex the dataset index (zero-based). series the series index (zero-based).

Returns: A legend item for the series.

getLegendLine

public Shape getLegendLine()
Returns the shape used to represent a line in the legend.

Returns: The legend line (never null).

See Also: setLegendLine

getNegativeArea

protected Shape getNegativeArea(float x0, float y0A, float y0B, float x1, float y1A, float y1B, PlotOrientation orientation)
Returns the negative area for a cross-over section.

Parameters: x0 x coordinate. y0A y coordinate A. y0B y coordinate B. x1 x coordinate. y1A y coordinate A. y1B y coordinate B. orientation the plot orientation.

Returns: The negative area.

getNegativePaint

public Paint getNegativePaint()
Returns the paint used to highlight negative differences.

Returns: The paint (never null).

See Also: setNegativePaint

getPassCount

public int getPassCount()
Returns 2, the number of passes required by the renderer. The XYPlot will run through the dataset this number of times.

Returns: The number of passes required by the renderer.

getPositiveArea

protected Shape getPositiveArea(float x0, float y0A, float y0B, float x1, float y1A, float y1B, PlotOrientation orientation)
Returns the positive area for a crossover point.

Parameters: x0 x coordinate. y0A y coordinate A. y0B y coordinate B. x1 x coordinate. y1A y coordinate A. y1B y coordinate B. orientation the plot orientation.

Returns: The positive area.

getPositivePaint

public Paint getPositivePaint()
Returns the paint used to highlight positive differences.

Returns: The paint (never null).

See Also: setPositivePaint

getRoundXCoordinates

public boolean getRoundXCoordinates()
Returns the flag that controls whether or not the x-coordinates (in Java2D space) are rounded to integer values.

Returns: The flag.

Since: 1.0.4

See Also: XYDifferenceRenderer

getShapesVisible

public boolean getShapesVisible()
Returns a flag that controls whether or not shapes are drawn for each data value.

Returns: A boolean.

See Also: XYDifferenceRenderer

initialise

public XYItemRendererState initialise(Graphics2D g2, Rectangle2D dataArea, XYPlot plot, XYDataset data, PlotRenderingInfo info)
Initialises the renderer and returns a state object that should be passed to subsequent calls to the drawItem() method. This method will be called before the first item is rendered, giving the renderer an opportunity to initialise any state information it wants to maintain. The renderer can do nothing if it chooses.

Parameters: g2 the graphics device. dataArea the area inside the axes. plot the plot. data the data. info an optional info collection object to return data back to the caller.

Returns: A state object.

setLegendLine

public void setLegendLine(Shape line)
Sets the shape used as a line in each legend item and sends a RendererChangeEvent to all registered listeners.

Parameters: line the line (null not permitted).

See Also: getLegendLine

setNegativePaint

public void setNegativePaint(Paint paint)
Sets the paint used to highlight negative differences.

Parameters: paint the paint (null not permitted).

See Also: getNegativePaint

setPositivePaint

public void setPositivePaint(Paint paint)
Sets the paint used to highlight positive differences.

Parameters: paint the paint (null not permitted).

See Also: getPositivePaint

setRoundXCoordinates

public void setRoundXCoordinates(boolean round)
Sets the flag that controls whether or not the x-coordinates (in Java2D space) are rounded to integer values, and sends a RendererChangeEvent to all registered listeners.

Parameters: round the new flag value.

Since: 1.0.4

See Also: getRoundXCoordinates

setShapesVisible

public void setShapesVisible(boolean flag)
Sets a flag that controls whether or not shapes are drawn for each data value.

Parameters: flag the flag.

See Also: getShapesVisible