org.jfree.chart.renderer.xy

Class XYLineAndShapeRenderer

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

A renderer that connects data points with lines and/or draws shapes at each data point. This renderer is designed for use with the XYPlot class. The example shown here is generated by the XYLineAndShapeRendererDemo2.java program included in the JFreeChart demo collection:

XYLineAndShapeRendererSample.png
Nested Class Summary
static classXYLineAndShapeRenderer.State
Records the state for the renderer.
Constructor Summary
XYLineAndShapeRenderer()
Creates a new renderer with both lines and shapes visible.
XYLineAndShapeRenderer(boolean lines, boolean shapes)
Creates a new renderer.
Method Summary
Objectclone()
Returns a clone of the renderer.
protected voiddrawFirstPassShape(Graphics2D g2, int pass, int series, int item, Shape shape)
Draws the first pass shape.
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 voiddrawPrimaryLine(XYItemRendererState state, Graphics2D g2, XYPlot plot, XYDataset dataset, int pass, int series, int item, ValueAxis domainAxis, ValueAxis rangeAxis, Rectangle2D dataArea)
Draws the item (first pass).
protected voiddrawPrimaryLineAsPath(XYItemRendererState state, Graphics2D g2, XYPlot plot, XYDataset dataset, int pass, int series, int item, ValueAxis domainAxis, ValueAxis rangeAxis, Rectangle2D dataArea)
Draws the item (first pass).
protected voiddrawSecondaryPass(Graphics2D g2, XYPlot plot, XYDataset dataset, int pass, int series, int item, ValueAxis domainAxis, Rectangle2D dataArea, ValueAxis rangeAxis, CrosshairState crosshairState, EntityCollection entities)
Draws the item shapes and adds chart entities (second pass).
booleanequals(Object obj)
Tests this renderer for equality with an arbitrary object.
booleangetBaseLinesVisible()
Returns the base 'lines visible' attribute.
booleangetBaseShapesFilled()
Returns the base 'shape filled' attribute.
booleangetBaseShapesVisible()
Returns the base 'shape visible' attribute.
booleangetDrawOutlines()
Returns true if outlines should be drawn for shapes, and false otherwise.
booleangetDrawSeriesLineAsPath()
Returns a flag that controls whether or not each series is drawn as a single path.
booleangetItemLineVisible(int series, int item)
Returns the flag used to control whether or not the shape for an item is visible.
booleangetItemShapeFilled(int series, int item)
Returns the flag used to control whether or not the shape for an item is filled.
booleangetItemShapeVisible(int series, int item)
Returns the flag used to control whether or not the shape for an item is visible.
LegendItemgetLegendItem(int datasetIndex, int series)
Returns a legend item for the specified series.
ShapegetLegendLine()
Returns the shape used to represent a line in the legend.
BooleangetLinesVisible()
Returns a flag that controls whether or not lines are drawn for ALL series.
intgetPassCount()
Returns the number of passes through the data that the renderer requires in order to draw the chart.
BooleangetSeriesLinesVisible(int series)
Returns the flag used to control whether or not the lines for a series are visible.
BooleangetSeriesShapesFilled(int series)
Returns the flag used to control whether or not the shapes for a series are filled.
BooleangetSeriesShapesVisible(int series)
Returns the flag used to control whether or not the shapes for a series are visible.
BooleangetShapesVisible()
Returns the flag that controls whether the shapes are visible for the items in ALL series.
booleangetUseFillPaint()
Returns true if the renderer should use the fill paint setting to fill shapes, and false if it should just use the regular paint.
booleangetUseOutlinePaint()
Returns true if the renderer should use the outline paint setting to draw shape outlines, and false if it should just use the regular paint.
XYItemRendererStateinitialise(Graphics2D g2, Rectangle2D dataArea, XYPlot plot, XYDataset data, PlotRenderingInfo info)
Initialises the renderer.
protected booleanisItemPass(int pass)
Returns true if the specified pass is the one for drawing items.
protected booleanisLinePass(int pass)
Returns true if the specified pass is the one for drawing lines.
voidsetBaseLinesVisible(boolean flag)
Sets the base 'lines visible' flag and sends a RendererChangeEvent to all registered listeners.
voidsetBaseShapesFilled(boolean flag)
Sets the base 'shapes filled' flag and sends a RendererChangeEvent to all registered listeners.
voidsetBaseShapesVisible(boolean flag)
Sets the base 'shapes visible' flag and sends a RendererChangeEvent to all registered listeners.
voidsetDrawOutlines(boolean flag)
Sets the flag that controls whether outlines are drawn for shapes, and sends a RendererChangeEvent to all registered listeners.
voidsetDrawSeriesLineAsPath(boolean flag)
Sets the flag that controls whether or not each series is drawn as a single path and sends a RendererChangeEvent to all registered listeners.
voidsetLegendLine(Shape line)
Sets the shape used as a line in each legend item and sends a RendererChangeEvent to all registered listeners.
voidsetLinesVisible(Boolean visible)
Sets a flag that controls whether or not lines are drawn between the items in ALL series, and sends a RendererChangeEvent to all registered listeners.
voidsetLinesVisible(boolean visible)
Sets a flag that controls whether or not lines are drawn between the items in ALL series, and sends a RendererChangeEvent to all registered listeners.
voidsetSeriesLinesVisible(int series, Boolean flag)
Sets the 'lines visible' flag for a series and sends a RendererChangeEvent to all registered listeners.
voidsetSeriesLinesVisible(int series, boolean visible)
Sets the 'lines visible' flag for a series and sends a RendererChangeEvent to all registered listeners.
voidsetSeriesShapesFilled(int series, boolean flag)
Sets the 'shapes filled' flag for a series and sends a RendererChangeEvent to all registered listeners.
voidsetSeriesShapesFilled(int series, Boolean flag)
Sets the 'shapes filled' flag for a series and sends a RendererChangeEvent to all registered listeners.
voidsetSeriesShapesVisible(int series, boolean visible)
Sets the 'shapes visible' flag for a series and sends a RendererChangeEvent to all registered listeners.
voidsetSeriesShapesVisible(int series, Boolean flag)
Sets the 'shapes visible' flag for a series and sends a RendererChangeEvent to all registered listeners.
voidsetShapesFilled(boolean filled)
Sets the 'shapes filled' for ALL series and sends a RendererChangeEvent to all registered listeners.
voidsetShapesFilled(Boolean filled)
Sets the 'shapes filled' for ALL series and sends a RendererChangeEvent to all registered listeners.
voidsetShapesVisible(Boolean visible)
Sets the 'shapes visible' for ALL series and sends a RendererChangeEvent to all registered listeners.
voidsetShapesVisible(boolean visible)
Sets the 'shapes visible' for ALL series and sends a RendererChangeEvent to all registered listeners.
voidsetUseFillPaint(boolean flag)
Sets the flag that controls whether the fill paint is used to fill shapes, and sends a RendererChangeEvent to all registered listeners.
voidsetUseOutlinePaint(boolean flag)
Sets the flag that controls whether the outline paint is used to draw shape outlines, and sends a RendererChangeEvent to all registered listeners.

Constructor Detail

XYLineAndShapeRenderer

public XYLineAndShapeRenderer()
Creates a new renderer with both lines and shapes visible.

XYLineAndShapeRenderer

public XYLineAndShapeRenderer(boolean lines, boolean shapes)
Creates a new renderer.

Parameters: lines lines visible? shapes shapes visible?

Method Detail

clone

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

Returns: A clone.

Throws: CloneNotSupportedException if the clone cannot be created.

drawFirstPassShape

protected void drawFirstPassShape(Graphics2D g2, int pass, int series, int item, Shape shape)
Draws the first pass shape.

Parameters: g2 the graphics device. pass the pass. series the series index. item the item index. shape the shape.

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 axis. rangeAxis the range 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.

drawPrimaryLine

protected void drawPrimaryLine(XYItemRendererState state, Graphics2D g2, XYPlot plot, XYDataset dataset, int pass, int series, int item, ValueAxis domainAxis, ValueAxis rangeAxis, Rectangle2D dataArea)
Draws the item (first pass). This method draws the lines connecting the items.

Parameters: g2 the graphics device. state the renderer state. dataArea the area within which the data is being drawn. plot the plot (can be used to obtain standard color information etc). domainAxis the domain axis. rangeAxis the range axis. dataset the dataset. pass the pass. series the series index (zero-based). item the item index (zero-based).

drawPrimaryLineAsPath

protected void drawPrimaryLineAsPath(XYItemRendererState state, Graphics2D g2, XYPlot plot, XYDataset dataset, int pass, int series, int item, ValueAxis domainAxis, ValueAxis rangeAxis, Rectangle2D dataArea)
Draws the item (first pass). This method draws the lines connecting the items. Instead of drawing separate lines, a GeneralPath is constructed and drawn at the end of the series painting.

Parameters: g2 the graphics device. state the renderer state. plot the plot (can be used to obtain standard color information etc). dataset the dataset. pass the pass. series the series index (zero-based). item the item index (zero-based). domainAxis the domain axis. rangeAxis the range axis. dataArea the area within which the data is being drawn.

drawSecondaryPass

protected void drawSecondaryPass(Graphics2D g2, XYPlot plot, XYDataset dataset, int pass, int series, int item, ValueAxis domainAxis, Rectangle2D dataArea, ValueAxis rangeAxis, CrosshairState crosshairState, EntityCollection entities)
Draws the item shapes and adds chart entities (second pass). This method draws the shapes which mark the item positions. If entities is not null it will be populated with entity information for points that fall within the data area.

Parameters: g2 the graphics device. plot the plot (can be used to obtain standard color information etc). domainAxis the domain axis. dataArea the area within which the data is being drawn. rangeAxis the range axis. dataset the dataset. pass the pass. series the series index (zero-based). item the item index (zero-based). crosshairState the crosshair state. entities the entity collection.

equals

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

Parameters: obj the object (null permitted).

Returns: true or false.

getBaseLinesVisible

public boolean getBaseLinesVisible()
Returns the base 'lines visible' attribute.

Returns: The base flag.

See Also: XYLineAndShapeRenderer

getBaseShapesFilled

public boolean getBaseShapesFilled()
Returns the base 'shape filled' attribute.

Returns: The base flag.

See Also: XYLineAndShapeRenderer

getBaseShapesVisible

public boolean getBaseShapesVisible()
Returns the base 'shape visible' attribute.

Returns: The base flag.

See Also: XYLineAndShapeRenderer

getDrawOutlines

public boolean getDrawOutlines()
Returns true if outlines should be drawn for shapes, and false otherwise.

Returns: A boolean.

See Also: XYLineAndShapeRenderer

getDrawSeriesLineAsPath

public boolean getDrawSeriesLineAsPath()
Returns a flag that controls whether or not each series is drawn as a single path.

Returns: A boolean.

See Also: XYLineAndShapeRenderer

getItemLineVisible

public boolean getItemLineVisible(int series, int item)
Returns the flag used to control whether or not the shape for an item is visible.

Parameters: series the series index (zero-based). item the item index (zero-based).

Returns: A boolean.

getItemShapeFilled

public boolean getItemShapeFilled(int series, int item)
Returns the flag used to control whether or not the shape for an item is filled.

The default implementation passes control to the getSeriesShapesFilled method. You can override this method if you require different behaviour.

Parameters: series the series index (zero-based). item the item index (zero-based).

Returns: A boolean.

getItemShapeVisible

public boolean getItemShapeVisible(int series, int item)
Returns the flag used to control whether or not the shape for an item is visible.

The default implementation passes control to the getSeriesShapesVisible method. You can override this method if you require different behaviour.

Parameters: series the series index (zero-based). item the item index (zero-based).

Returns: A boolean.

getLegendItem

public LegendItem getLegendItem(int datasetIndex, int series)
Returns a legend item for the specified series.

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

getLinesVisible

public Boolean getLinesVisible()

Deprecated: As of 1.0.7, use the per-series and base level settings.

Returns a flag that controls whether or not lines are drawn for ALL series. If this flag is null, then the "per series" settings will apply.

Returns: A flag (possibly null).

See Also:

getPassCount

public int getPassCount()
Returns the number of passes through the data that the renderer requires in order to draw the chart. Most charts will require a single pass, but some require two passes.

Returns: The pass count.

getSeriesLinesVisible

public Boolean getSeriesLinesVisible(int series)
Returns the flag used to control whether or not the lines for a series are visible.

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

Returns: The flag (possibly null).

See Also: XYLineAndShapeRenderer

getSeriesShapesFilled

public Boolean getSeriesShapesFilled(int series)
Returns the flag used to control whether or not the shapes for a series are filled.

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

Returns: A boolean.

See Also: XYLineAndShapeRenderer

getSeriesShapesVisible

public Boolean getSeriesShapesVisible(int series)
Returns the flag used to control whether or not the shapes for a series are visible.

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

Returns: A boolean.

See Also: XYLineAndShapeRenderer

getShapesVisible

public Boolean getShapesVisible()

Deprecated: As of 1.0.7, use the per-series and base level settings.

Returns the flag that controls whether the shapes are visible for the items in ALL series.

Returns: The flag (possibly null).

See Also:

getUseFillPaint

public boolean getUseFillPaint()
Returns true if the renderer should use the fill paint setting to fill shapes, and false if it should just use the regular paint.

Refer to XYLineAndShapeRendererDemo2.java to see the effect of this flag.

Returns: A boolean.

See Also: XYLineAndShapeRenderer getUseOutlinePaint

getUseOutlinePaint

public boolean getUseOutlinePaint()
Returns true if the renderer should use the outline paint setting to draw shape outlines, and false if it should just use the regular paint.

Returns: A boolean.

See Also: XYLineAndShapeRenderer getUseFillPaint

initialise

public XYItemRendererState initialise(Graphics2D g2, Rectangle2D dataArea, XYPlot plot, XYDataset data, PlotRenderingInfo info)
Initialises the renderer.

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: The renderer state.

isItemPass

protected boolean isItemPass(int pass)
Returns true if the specified pass is the one for drawing items.

Parameters: pass the pass.

Returns: A boolean.

isLinePass

protected boolean isLinePass(int pass)
Returns true if the specified pass is the one for drawing lines.

Parameters: pass the pass.

Returns: A boolean.

setBaseLinesVisible

public void setBaseLinesVisible(boolean flag)
Sets the base 'lines visible' flag and sends a RendererChangeEvent to all registered listeners.

Parameters: flag the flag.

See Also: getBaseLinesVisible

setBaseShapesFilled

public void setBaseShapesFilled(boolean flag)
Sets the base 'shapes filled' flag and sends a RendererChangeEvent to all registered listeners.

Parameters: flag the flag.

See Also: getBaseShapesFilled

setBaseShapesVisible

public void setBaseShapesVisible(boolean flag)
Sets the base 'shapes visible' flag and sends a RendererChangeEvent to all registered listeners.

Parameters: flag the flag.

See Also: getBaseShapesVisible

setDrawOutlines

public void setDrawOutlines(boolean flag)
Sets the flag that controls whether outlines are drawn for shapes, and sends a RendererChangeEvent to all registered listeners.

In some cases, shapes look better if they do NOT have an outline, but this flag allows you to set your own preference.

Parameters: flag the flag.

See Also: getDrawOutlines

setDrawSeriesLineAsPath

public void setDrawSeriesLineAsPath(boolean flag)
Sets the flag that controls whether or not each series is drawn as a single path and sends a RendererChangeEvent to all registered listeners.

Parameters: flag the flag.

See Also: getDrawSeriesLineAsPath

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

setLinesVisible

public void setLinesVisible(Boolean visible)

Deprecated: As of 1.0.7, use the per-series and base level settings.

Sets a flag that controls whether or not lines are drawn between the items in ALL series, and sends a RendererChangeEvent to all registered listeners. You need to set this to null if you want the "per series" settings to apply.

Parameters: visible the flag (null permitted).

See Also:

setLinesVisible

public void setLinesVisible(boolean visible)

Deprecated: As of 1.0.7, use the per-series and base level settings.

Sets a flag that controls whether or not lines are drawn between the items in ALL series, and sends a RendererChangeEvent to all registered listeners.

Parameters: visible the flag.

See Also:

setSeriesLinesVisible

public void setSeriesLinesVisible(int series, Boolean flag)
Sets the 'lines visible' flag for a series and sends a RendererChangeEvent to all registered listeners.

Parameters: series the series index (zero-based). flag the flag (null permitted).

See Also: XYLineAndShapeRenderer

setSeriesLinesVisible

public void setSeriesLinesVisible(int series, boolean visible)
Sets the 'lines visible' flag for a series and sends a RendererChangeEvent to all registered listeners.

Parameters: series the series index (zero-based). visible the flag.

See Also: XYLineAndShapeRenderer

setSeriesShapesFilled

public void setSeriesShapesFilled(int series, boolean flag)
Sets the 'shapes filled' flag for a series and sends a RendererChangeEvent to all registered listeners.

Parameters: series the series index (zero-based). flag the flag.

See Also: XYLineAndShapeRenderer

setSeriesShapesFilled

public void setSeriesShapesFilled(int series, Boolean flag)
Sets the 'shapes filled' flag for a series and sends a RendererChangeEvent to all registered listeners.

Parameters: series the series index (zero-based). flag the flag.

See Also: XYLineAndShapeRenderer

setSeriesShapesVisible

public void setSeriesShapesVisible(int series, boolean visible)
Sets the 'shapes visible' flag for a series and sends a RendererChangeEvent to all registered listeners.

Parameters: series the series index (zero-based). visible the flag.

See Also: XYLineAndShapeRenderer

setSeriesShapesVisible

public void setSeriesShapesVisible(int series, Boolean flag)
Sets the 'shapes visible' flag for a series and sends a RendererChangeEvent to all registered listeners.

Parameters: series the series index (zero-based). flag the flag.

See Also: XYLineAndShapeRenderer

setShapesFilled

public void setShapesFilled(boolean filled)

Deprecated: As of 1.0.7, use the per-series and base level settings.

Sets the 'shapes filled' for ALL series and sends a RendererChangeEvent to all registered listeners.

Parameters: filled the flag.

setShapesFilled

public void setShapesFilled(Boolean filled)

Deprecated: As of 1.0.7, use the per-series and base level settings.

Sets the 'shapes filled' for ALL series and sends a RendererChangeEvent to all registered listeners.

Parameters: filled the flag (null permitted).

setShapesVisible

public void setShapesVisible(Boolean visible)

Deprecated: As of 1.0.7, use the per-series and base level settings.

Sets the 'shapes visible' for ALL series and sends a RendererChangeEvent to all registered listeners.

Parameters: visible the flag (null permitted).

See Also:

setShapesVisible

public void setShapesVisible(boolean visible)

Deprecated: As of 1.0.7, use the per-series and base level settings.

Sets the 'shapes visible' for ALL series and sends a RendererChangeEvent to all registered listeners.

Parameters: visible the flag.

See Also:

setUseFillPaint

public void setUseFillPaint(boolean flag)
Sets the flag that controls whether the fill paint is used to fill shapes, and sends a RendererChangeEvent to all registered listeners.

Parameters: flag the flag.

See Also: getUseFillPaint

setUseOutlinePaint

public void setUseOutlinePaint(boolean flag)
Sets the flag that controls whether the outline paint is used to draw shape outlines, and sends a RendererChangeEvent to all registered listeners.

Refer to XYLineAndShapeRendererDemo2.java to see the effect of this flag.

Parameters: flag the flag.

See Also: getUseOutlinePaint

Copyright © 2000-2009 by Object Refinery Limited. All Rights Reserved.