org.jfree.chart.renderer.category
Class LineAndShapeRenderer

java.lang.Object
  extended by org.jfree.chart.renderer.AbstractRenderer
      extended by org.jfree.chart.renderer.category.AbstractCategoryItemRenderer
          extended by org.jfree.chart.renderer.category.LineAndShapeRenderer
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, LegendItemSource, CategoryItemRenderer, org.jfree.util.PublicCloneable
Direct Known Subclasses:
DefaultCategoryItemRenderer, LineRenderer3D, StatisticalLineAndShapeRenderer

public class LineAndShapeRenderer
extends AbstractCategoryItemRenderer
implements java.lang.Cloneable, org.jfree.util.PublicCloneable, java.io.Serializable

A renderer that draws shapes for each data item, and lines between data items (for use with the CategoryPlot class).

See Also:
Serialized Form

Field Summary
 
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
LineAndShapeRenderer()
          Creates a renderer with both lines and shapes visible by default.
LineAndShapeRenderer(boolean lines, boolean shapes)
          Creates a new renderer with lines and/or shapes visible.
 
Method Summary
 java.lang.Object clone()
          Returns an independent copy of the renderer.
 void drawItem(java.awt.Graphics2D g2, CategoryItemRendererState state, java.awt.geom.Rectangle2D dataArea, CategoryPlot plot, CategoryAxis domainAxis, ValueAxis rangeAxis, CategoryDataset dataset, int row, int column, int pass)
          Draw a single data item.
 boolean equals(java.lang.Object obj)
          Tests this renderer for equality with an arbitrary object.
 boolean getBaseLinesVisible()
          Returns the base 'lines visible' attribute.
 boolean getBaseShapesFilled()
          Returns the base 'shape filled' attribute.
 boolean getBaseShapesVisible()
          Returns the base 'shape visible' attribute.
 boolean getDrawOutlines()
          Returns true if outlines should be drawn for shapes, and false otherwise.
 boolean getItemLineVisible(int series, int item)
          Returns the flag used to control whether or not the line for an item is visible.
 boolean getItemShapeFilled(int series, int item)
          Returns the flag used to control whether or not the shape for an item is filled.
 boolean getItemShapeVisible(int series, int item)
          Returns the flag used to control whether or not the shape for an item is visible.
 LegendItem getLegendItem(int datasetIndex, int series)
          Returns a legend item for a series.
 java.lang.Boolean getLinesVisible()
          Returns a flag that controls whether or not lines are drawn for ALL series.
 int getPassCount()
          This renderer uses two passes to draw the data.
 java.lang.Boolean getSeriesLinesVisible(int series)
          Returns the flag used to control whether or not the lines for a series are visible.
 boolean getSeriesShapesFilled(int series)
          Returns the flag used to control whether or not the shapes for a series are filled.
 java.lang.Boolean getSeriesShapesVisible(int series)
          Returns the flag used to control whether or not the shapes for a series are visible.
 java.lang.Boolean getShapesFilled()
          Returns the flag that controls whether or not shapes are filled for ALL series.
 java.lang.Boolean getShapesVisible()
          Returns the flag that controls whether the shapes are visible for the items in ALL series.
 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.
 boolean getUseOutlinePaint()
          Returns the flag that controls whether the outline paint is used for shape outlines.
 void setBaseLinesVisible(boolean flag)
          Sets the base 'lines visible' flag.
 void setBaseShapesFilled(boolean flag)
          Sets the base 'shapes filled' flag.
 void setBaseShapesVisible(boolean flag)
          Sets the base 'shapes visible' flag.
 void setDrawOutlines(boolean flag)
          Sets the flag that controls whether outlines are drawn for shapes, and sends a RendererChangeEvent to all registered listeners.
 void setLinesVisible(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.
 void setLinesVisible(java.lang.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.
 void setSeriesLinesVisible(int series, boolean visible)
          Sets the 'lines visible' flag for a series.
 void setSeriesLinesVisible(int series, java.lang.Boolean flag)
          Sets the 'lines visible' flag for a series.
 void setSeriesShapesFilled(int series, boolean filled)
          Sets the 'shapes filled' flag for a series.
 void setSeriesShapesFilled(int series, java.lang.Boolean filled)
          Sets the 'shapes filled' flag for a series.
 void setSeriesShapesVisible(int series, boolean visible)
          Sets the 'shapes visible' flag for a series and sends a RendererChangeEvent to all registered listeners.
 void setSeriesShapesVisible(int series, java.lang.Boolean flag)
          Sets the 'shapes visible' flag for a series and sends a RendererChangeEvent to all registered listeners.
 void setShapesFilled(boolean filled)
          Sets the 'shapes filled' for ALL series.
 void setShapesFilled(java.lang.Boolean filled)
          Sets the 'shapes filled' for ALL series.
 void setShapesVisible(boolean visible)
          Sets the 'shapes visible' for ALL series and sends a RendererChangeEvent to all registered listeners.
 void setShapesVisible(java.lang.Boolean visible)
          Sets the 'shapes visible' for ALL series and sends a RendererChangeEvent to all registered listeners.
 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.
 void setUseOutlinePaint(boolean use)
          Sets the flag that controls whether the outline paint is used for shape outlines.
 
Methods inherited from class org.jfree.chart.renderer.category.AbstractCategoryItemRenderer
addItemEntity, calculateDomainMarkerTextAnchorPoint, calculateRangeMarkerTextAnchorPoint, drawBackground, drawDomainGridline, drawDomainMarker, drawItemLabel, drawOutline, drawRangeGridline, drawRangeMarker, findRangeBounds, getBaseItemLabelGenerator, getBaseItemURLGenerator, getBaseToolTipGenerator, getColumnCount, getDomainAxis, getDrawingSupplier, getItemLabelGenerator, getItemURLGenerator, getLegendItemLabelGenerator, getLegendItems, getLegendItemToolTipGenerator, getLegendItemURLGenerator, getPlot, getRangeAxis, getRowCount, getSeriesItemLabelGenerator, getSeriesItemURLGenerator, getSeriesToolTipGenerator, getToolTipGenerator, getToolTipGenerator, hashCode, initialise, setBaseItemLabelGenerator, setBaseItemURLGenerator, setBaseToolTipGenerator, setItemLabelGenerator, setItemURLGenerator, setLegendItemLabelGenerator, setLegendItemToolTipGenerator, setLegendItemURLGenerator, setPlot, setSeriesItemLabelGenerator, setSeriesItemURLGenerator, setSeriesToolTipGenerator, setToolTipGenerator
 
Methods inherited from class org.jfree.chart.renderer.AbstractRenderer
addChangeListener, calculateLabelAnchorPoint, getBaseCreateEntities, getBaseFillPaint, getBaseItemLabelFont, getBaseItemLabelPaint, getBaseItemLabelsVisible, getBaseNegativeItemLabelPosition, getBaseOutlinePaint, getBaseOutlineStroke, getBasePaint, getBasePositiveItemLabelPosition, getBaseSeriesVisible, getBaseSeriesVisibleInLegend, getBaseShape, getBaseStroke, getCreateEntities, getItemCreateEntity, getItemFillPaint, getItemLabelAnchorOffset, getItemLabelFont, getItemLabelFont, getItemLabelPaint, getItemLabelPaint, getItemOutlinePaint, getItemOutlineStroke, getItemPaint, getItemShape, getItemStroke, getItemVisible, getNegativeItemLabelPosition, getNegativeItemLabelPosition, getPositiveItemLabelPosition, getPositiveItemLabelPosition, getSeriesCreateEntities, getSeriesFillPaint, getSeriesItemLabelFont, getSeriesItemLabelPaint, getSeriesNegativeItemLabelPosition, getSeriesOutlinePaint, getSeriesOutlineStroke, getSeriesPaint, getSeriesPositiveItemLabelPosition, getSeriesShape, getSeriesStroke, getSeriesVisible, getSeriesVisible, getSeriesVisibleInLegend, getSeriesVisibleInLegend, hasListener, isItemLabelVisible, isSeriesItemLabelsVisible, isSeriesVisible, isSeriesVisibleInLegend, notifyListeners, removeChangeListener, setBaseCreateEntities, setBaseCreateEntities, setBaseFillPaint, setBaseFillPaint, setBaseItemLabelFont, setBaseItemLabelFont, setBaseItemLabelPaint, setBaseItemLabelPaint, setBaseItemLabelsVisible, setBaseItemLabelsVisible, setBaseItemLabelsVisible, setBaseNegativeItemLabelPosition, setBaseNegativeItemLabelPosition, setBaseOutlinePaint, setBaseOutlinePaint, setBaseOutlineStroke, setBaseOutlineStroke, setBasePaint, setBasePaint, setBasePositiveItemLabelPosition, setBasePositiveItemLabelPosition, setBaseSeriesVisible, setBaseSeriesVisible, setBaseSeriesVisibleInLegend, setBaseSeriesVisibleInLegend, setBaseShape, setBaseShape, setBaseStroke, setBaseStroke, setCreateEntities, setCreateEntities, setFillPaint, setFillPaint, setItemLabelAnchorOffset, setItemLabelFont, setItemLabelFont, setItemLabelPaint, setItemLabelPaint, setItemLabelsVisible, setItemLabelsVisible, setItemLabelsVisible, setNegativeItemLabelPosition, setNegativeItemLabelPosition, setOutlinePaint, setOutlinePaint, setOutlineStroke, setOutlineStroke, setPaint, setPaint, setPositiveItemLabelPosition, setPositiveItemLabelPosition, setSeriesCreateEntities, setSeriesCreateEntities, setSeriesFillPaint, setSeriesFillPaint, setSeriesItemLabelFont, setSeriesItemLabelFont, setSeriesItemLabelPaint, setSeriesItemLabelPaint, setSeriesItemLabelsVisible, setSeriesItemLabelsVisible, setSeriesItemLabelsVisible, setSeriesNegativeItemLabelPosition, setSeriesNegativeItemLabelPosition, setSeriesOutlinePaint, setSeriesOutlinePaint, setSeriesOutlineStroke, setSeriesOutlineStroke, setSeriesPaint, setSeriesPaint, setSeriesPositiveItemLabelPosition, setSeriesPositiveItemLabelPosition, setSeriesShape, setSeriesShape, setSeriesStroke, setSeriesStroke, setSeriesVisible, setSeriesVisible, setSeriesVisible, setSeriesVisible, setSeriesVisibleInLegend, setSeriesVisibleInLegend, setSeriesVisibleInLegend, setSeriesVisibleInLegend, 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.category.CategoryItemRenderer
addChangeListener, getBaseItemLabelFont, getBaseItemLabelPaint, getBaseItemLabelsVisible, getBaseNegativeItemLabelPosition, getBaseOutlinePaint, getBaseOutlineStroke, getBasePaint, getBasePositiveItemLabelPosition, getBaseSeriesVisible, getBaseSeriesVisibleInLegend, getBaseShape, getBaseStroke, getItemLabelFont, getItemLabelFont, getItemLabelPaint, getItemLabelPaint, getItemOutlinePaint, getItemOutlineStroke, getItemPaint, getItemShape, getItemStroke, getItemVisible, getNegativeItemLabelPosition, getNegativeItemLabelPosition, getPositiveItemLabelPosition, getPositiveItemLabelPosition, getSeriesItemLabelFont, getSeriesItemLabelPaint, getSeriesNegativeItemLabelPosition, getSeriesOutlinePaint, getSeriesOutlineStroke, getSeriesPaint, getSeriesPositiveItemLabelPosition, getSeriesShape, getSeriesStroke, getSeriesVisible, getSeriesVisible, getSeriesVisibleInLegend, getSeriesVisibleInLegend, isItemLabelVisible, isSeriesItemLabelsVisible, isSeriesVisible, isSeriesVisibleInLegend, removeChangeListener, setBaseItemLabelFont, setBaseItemLabelPaint, setBaseItemLabelsVisible, setBaseItemLabelsVisible, setBaseItemLabelsVisible, setBaseNegativeItemLabelPosition, setBaseNegativeItemLabelPosition, setBaseOutlinePaint, setBaseOutlineStroke, setBasePaint, setBasePositiveItemLabelPosition, setBasePositiveItemLabelPosition, setBaseSeriesVisible, setBaseSeriesVisible, setBaseSeriesVisibleInLegend, setBaseSeriesVisibleInLegend, setBaseShape, setBaseStroke, setItemLabelFont, setItemLabelPaint, setItemLabelsVisible, setItemLabelsVisible, setItemLabelsVisible, setNegativeItemLabelPosition, setNegativeItemLabelPosition, setOutlinePaint, setOutlineStroke, setPaint, setPositiveItemLabelPosition, setPositiveItemLabelPosition, setSeriesItemLabelFont, setSeriesItemLabelPaint, setSeriesItemLabelsVisible, setSeriesItemLabelsVisible, setSeriesItemLabelsVisible, setSeriesNegativeItemLabelPosition, setSeriesNegativeItemLabelPosition, setSeriesOutlinePaint, setSeriesOutlineStroke, setSeriesPaint, setSeriesPositiveItemLabelPosition, setSeriesPositiveItemLabelPosition, setSeriesShape, setSeriesStroke, setSeriesVisible, setSeriesVisible, setSeriesVisible, setSeriesVisible, setSeriesVisibleInLegend, setSeriesVisibleInLegend, setSeriesVisibleInLegend, setSeriesVisibleInLegend, setShape, setStroke
 

Constructor Detail

LineAndShapeRenderer

public LineAndShapeRenderer()
Creates a renderer with both lines and shapes visible by default.


LineAndShapeRenderer

public LineAndShapeRenderer(boolean lines,
                            boolean shapes)
Creates a new renderer with lines and/or shapes visible.

Parameters:
lines - draw lines?
shapes - draw shapes?
Method Detail

getItemLineVisible

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

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

getLinesVisible

public java.lang.Boolean getLinesVisible()
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).

setLinesVisible

public void setLinesVisible(java.lang.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. You need to set this to null if you want the "per series" settings to apply.

Parameters:
visible - the flag (null permitted).

setLinesVisible

public void setLinesVisible(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.

Parameters:
visible - the flag.

getSeriesLinesVisible

public java.lang.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).

setSeriesLinesVisible

public void setSeriesLinesVisible(int series,
                                  java.lang.Boolean flag)
Sets the 'lines visible' flag for a series.

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

setSeriesLinesVisible

public void setSeriesLinesVisible(int series,
                                  boolean visible)
Sets the 'lines visible' flag for a series.

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

getBaseLinesVisible

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

Returns:
The base flag.

setBaseLinesVisible

public void setBaseLinesVisible(boolean flag)
Sets the base 'lines visible' flag.

Parameters:
flag - the flag.

getItemShapeVisible

public boolean getItemShapeVisible(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.

getShapesVisible

public java.lang.Boolean getShapesVisible()
Returns the flag that controls whether the shapes are visible for the items in ALL series.

Returns:
The flag (possibly null).

setShapesVisible

public void setShapesVisible(java.lang.Boolean visible)
Sets the 'shapes visible' for ALL series and sends a RendererChangeEvent to all registered listeners.

Parameters:
visible - the flag (null permitted).

setShapesVisible

public void setShapesVisible(boolean visible)
Sets the 'shapes visible' for ALL series and sends a RendererChangeEvent to all registered listeners.

Parameters:
visible - the flag.

getSeriesShapesVisible

public java.lang.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.

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.

setSeriesShapesVisible

public void setSeriesShapesVisible(int series,
                                   java.lang.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.

getBaseShapesVisible

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

Returns:
The base flag.

setBaseShapesVisible

public void setBaseShapesVisible(boolean flag)
Sets the base 'shapes visible' flag.

Parameters:
flag - the flag.

getDrawOutlines

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

Returns:
A boolean.

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.

getUseOutlinePaint

public boolean getUseOutlinePaint()
Returns the flag that controls whether the outline paint is used for shape outlines. If not, the regular series paint is used.

Returns:
A boolean.

setUseOutlinePaint

public void setUseOutlinePaint(boolean use)
Sets the flag that controls whether the outline paint is used for shape outlines.

Parameters:
use - the flag.

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.

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.

getShapesFilled

public java.lang.Boolean getShapesFilled()
Returns the flag that controls whether or not shapes are filled for ALL series.

Returns:
A Boolean.

setShapesFilled

public void setShapesFilled(boolean filled)
Sets the 'shapes filled' for ALL series.

Parameters:
filled - the flag.

setShapesFilled

public void setShapesFilled(java.lang.Boolean filled)
Sets the 'shapes filled' for ALL series.

Parameters:
filled - the flag (null permitted).

setSeriesShapesFilled

public void setSeriesShapesFilled(int series,
                                  java.lang.Boolean filled)
Sets the 'shapes filled' flag for a series.

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

setSeriesShapesFilled

public void setSeriesShapesFilled(int series,
                                  boolean filled)
Sets the 'shapes filled' flag for a series.

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

getBaseShapesFilled

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

Returns:
The base flag.

setBaseShapesFilled

public void setBaseShapesFilled(boolean flag)
Sets the base 'shapes filled' flag.

Parameters:
flag - the flag.

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.

Returns:
A boolean.

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.

getLegendItem

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

Specified by:
getLegendItem in interface CategoryItemRenderer
Overrides:
getLegendItem in class AbstractCategoryItemRenderer
Parameters:
datasetIndex - the dataset index (zero-based).
series - the series index (zero-based).
Returns:
The legend item.

getPassCount

public int getPassCount()
This renderer uses two passes to draw the data.

Specified by:
getPassCount in interface CategoryItemRenderer
Overrides:
getPassCount in class AbstractCategoryItemRenderer
Returns:
The pass count (2 for this renderer).

drawItem

public void drawItem(java.awt.Graphics2D g2,
                     CategoryItemRendererState state,
                     java.awt.geom.Rectangle2D dataArea,
                     CategoryPlot plot,
                     CategoryAxis domainAxis,
                     ValueAxis rangeAxis,
                     CategoryDataset dataset,
                     int row,
                     int column,
                     int pass)
Draw a single data item.

Specified by:
drawItem in interface CategoryItemRenderer
Parameters:
g2 - the graphics device.
state - the renderer state.
dataArea - the area in which the data is drawn.
plot - the plot.
domainAxis - the domain axis.
rangeAxis - the range axis.
dataset - the dataset.
row - the row index (zero-based).
column - the column index (zero-based).
pass - the pass index.

equals

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

Overrides:
equals in class AbstractCategoryItemRenderer
Parameters:
obj - the object (null permitted).
Returns:
A boolean.

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
Returns an independent copy of the renderer.

Specified by:
clone in interface org.jfree.util.PublicCloneable
Overrides:
clone in class AbstractCategoryItemRenderer
Returns:
A clone.
Throws:
java.lang.CloneNotSupportedException - should not happen.