org.jfree.chart.renderer.xy

## Class XYLineAndShapeRenderer

- java.lang.Object
- - org.jfree.chart.renderer.AbstractRenderer
  - - org.jfree.chart.renderer.xy.AbstractXYItemRenderer
    - - org.jfree.chart.renderer.xy.XYLineAndShapeRenderer

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, java.util.EventListener, AnnotationChangeListener, LegendItemSource, XYItemRenderer, PublicCloneable

      public class XYLineAndShapeRenderer
      extends AbstractXYItemRenderer
      implements XYItemRenderer, java.lang.Cloneable, PublicCloneable, java.io.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:
  See Also:
    Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `XYLineAndShapeRenderer.State` Records the state for the renderer.

  - ### 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

    Constructors
    Constructor and Description
    `XYLineAndShapeRenderer()` Creates a new renderer with both lines and shapes visible.
    `XYLineAndShapeRenderer(boolean lines, boolean shapes)` Creates a new renderer.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Object` | `clone()` Returns a clone of the renderer.
    `protected void` | `drawFirstPassShape(java.awt.Graphics2D g2, int pass, int series, int item, java.awt.Shape shape)` Draws the first pass shape.
    `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, CrosshairState crosshairState, int pass)` Draws the visual representation of a single data item.
    `protected void` | `drawPrimaryLine(XYItemRendererState state, java.awt.Graphics2D g2, XYPlot plot, XYDataset dataset, int pass, int series, int item, ValueAxis domainAxis, ValueAxis rangeAxis, java.awt.geom.Rectangle2D dataArea)` Draws the item (first pass).
    `protected void` | `drawPrimaryLineAsPath(XYItemRendererState state, java.awt.Graphics2D g2, XYPlot plot, XYDataset dataset, int pass, int series, int item, ValueAxis domainAxis, ValueAxis rangeAxis, java.awt.geom.Rectangle2D dataArea)` Draws the item (first pass).
    `protected void` | `drawSecondaryPass(java.awt.Graphics2D g2, XYPlot plot, XYDataset dataset, int pass, int series, int item, ValueAxis domainAxis, java.awt.geom.Rectangle2D dataArea, ValueAxis rangeAxis, CrosshairState crosshairState, EntityCollection entities)` Draws the item shapes and adds chart entities (second pass).
    `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` | `getDrawSeriesLineAsPath()` Returns a flag that controls whether or not each series is drawn as a single path.
    `boolean` | `getItemLineVisible(int series, int item)` Returns the flag used to control whether or not the shape 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 the specified series.
    `java.awt.Shape` | `getLegendLine()` Returns the shape used to represent a line in the legend.
    `java.lang.Boolean` | `getLinesVisible()` Deprecated. As of 1.0.7, use the per-series and base level settings.
    `int` | `getPassCount()` Returns the number of passes through the data that the renderer requires in order to draw the chart.
    `java.lang.Boolean` | `getSeriesLinesVisible(int series)` Returns the flag used to control whether or not the lines for a series are visible.
    `java.lang.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` | `getShapesVisible()` Deprecated. As of 1.0.7, use the per-series and base level settings.
    `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 `true` if the renderer should use the outline paint setting to draw shape outlines, and `false` if it should just use the regular paint.
    `XYItemRendererState` | `initialise(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, XYPlot plot, XYDataset data, PlotRenderingInfo info)` Initialises the renderer.
    `protected boolean` | `isItemPass(int pass)` Returns `true` if the specified pass is the one for drawing items.
    `protected boolean` | `isLinePass(int pass)` Returns `true` if the specified pass is the one for drawing lines.
    `void` | `setBaseLinesVisible(boolean flag)` Sets the base 'lines visible' flag and sends a `RendererChangeEvent` to all registered listeners.
    `void` | `setBaseShapesFilled(boolean flag)` Sets the base 'shapes filled' flag and sends a `RendererChangeEvent` to all registered listeners.
    `void` | `setBaseShapesVisible(boolean flag)` Sets the base 'shapes visible' flag and sends a `RendererChangeEvent` to all registered listeners.
    `void` | `setDrawOutlines(boolean flag)` Sets the flag that controls whether outlines are drawn for shapes, and sends a `RendererChangeEvent` to all registered listeners.
    `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.
    `void` | `setLegendLine(java.awt.Shape line)` Sets the shape used as a line in each legend item and sends a `RendererChangeEvent` to all registered listeners.
    `void` | `setLinesVisible(boolean visible)` Deprecated. As of 1.0.7, use the per-series and base level settings.
    `void` | `setLinesVisible(java.lang.Boolean visible)` Deprecated. As of 1.0.7, use the per-series and base level settings.
    `void` | `setSeriesLinesVisible(int series, boolean visible)` Sets the 'lines visible' flag for a series and sends a `RendererChangeEvent` to all registered listeners.
    `void` | `setSeriesLinesVisible(int series, java.lang.Boolean flag)` Sets the 'lines visible' flag for a series and sends a `RendererChangeEvent` to all registered listeners.
    `void` | `setSeriesShapesFilled(int series, boolean flag)` Sets the 'shapes filled' flag for a series and sends a `RendererChangeEvent` to all registered listeners.
    `void` | `setSeriesShapesFilled(int series, java.lang.Boolean flag)` Sets the 'shapes filled' flag for a series and sends a `RendererChangeEvent` to all registered listeners.
    `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)` Deprecated. As of 1.0.7, use the per-series and base level settings.
    `void` | `setShapesFilled(java.lang.Boolean filled)` Deprecated. As of 1.0.7, use the per-series and base level settings.
    `void` | `setShapesVisible(boolean visible)` Deprecated. As of 1.0.7, use the per-series and base level settings.
    `void` | `setShapesVisible(java.lang.Boolean visible)` Deprecated. As of 1.0.7, use the per-series and base level settings.
    `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 flag)` Sets the flag that controls whether the outline paint is used to draw shape outlines, and sends a `RendererChangeEvent` to all registered listeners.

    - ### Methods inherited from class org.jfree.chart.renderer.xy.AbstractXYItemRenderer

      `addAnnotation, addAnnotation, addEntity, annotationChanged, calculateDomainMarkerTextAnchorPoint, drawAnnotations, drawDomainGridLine, drawDomainLine, drawDomainMarker, drawItemLabel, drawRangeLine, drawRangeMarker, fillDomainGridBand, fillRangeGridBand, findDomainBounds, findDomainBounds, findRangeBounds, findRangeBounds, getAnnotations, getBaseItemLabelGenerator, getBaseToolTipGenerator, getDrawingSupplier, getItemLabelGenerator, getItemLabelGenerator, getLegendItemLabelGenerator, getLegendItems, getLegendItemToolTipGenerator, getLegendItemURLGenerator, getPlot, getSeriesItemLabelGenerator, getSeriesToolTipGenerator, getToolTipGenerator, getToolTipGenerator, getURLGenerator, isPointInRect, lineTo, moveTo, removeAnnotation, removeAnnotations, setBaseItemLabelGenerator, setBaseToolTipGenerator, setItemLabelGenerator, setLegendItemLabelGenerator, setLegendItemToolTipGenerator, setLegendItemURLGenerator, setPlot, setSeriesItemLabelGenerator, setSeriesToolTipGenerator, setToolTipGenerator, setURLGenerator, updateCrosshairValues, updateCrosshairValues`

    - ### Methods inherited from class org.jfree.chart.renderer.AbstractRenderer

      `addChangeListener, calculateLabelAnchorPoint, clearSeriesPaints, clearSeriesStrokes, fireChangeEvent, getAutoPopulateSeriesFillPaint, getAutoPopulateSeriesOutlinePaint, getAutoPopulateSeriesOutlineStroke, getAutoPopulateSeriesPaint, getAutoPopulateSeriesShape, getAutoPopulateSeriesStroke, getBaseCreateEntities, getBaseFillPaint, getBaseItemLabelFont, getBaseItemLabelPaint, getBaseItemLabelsVisible, getBaseLegendShape, getBaseLegendTextFont, getBaseLegendTextPaint, getBaseNegativeItemLabelPosition, getBaseOutlinePaint, getBaseOutlineStroke, getBasePaint, getBasePositiveItemLabelPosition, getBaseSeriesVisible, getBaseSeriesVisibleInLegend, getBaseShape, getBaseStroke, getCreateEntities, getDataBoundsIncludesVisibleSeriesOnly, getDefaultEntityRadius, getItemCreateEntity, getItemFillPaint, getItemLabelAnchorOffset, getItemLabelFont, getItemLabelFont, getItemLabelPaint, getItemLabelPaint, getItemOutlinePaint, getItemOutlineStroke, getItemPaint, getItemShape, getItemStroke, getItemVisible, getLegendShape, getLegendTextFont, getLegendTextPaint, getNegativeItemLabelPosition, getNegativeItemLabelPosition, getPositiveItemLabelPosition, getPositiveItemLabelPosition, getSeriesCreateEntities, getSeriesFillPaint, getSeriesItemLabelFont, getSeriesItemLabelPaint, getSeriesNegativeItemLabelPosition, getSeriesOutlinePaint, getSeriesOutlineStroke, getSeriesPaint, getSeriesPositiveItemLabelPosition, getSeriesShape, getSeriesStroke, getSeriesVisible, getSeriesVisible, getSeriesVisibleInLegend, getSeriesVisibleInLegend, getTreatLegendShapeAsLine, hashCode, hasListener, isItemLabelVisible, isSeriesItemLabelsVisible, isSeriesVisible, isSeriesVisibleInLegend, lookupLegendShape, lookupLegendTextFont, lookupLegendTextPaint, lookupSeriesFillPaint, lookupSeriesOutlinePaint, lookupSeriesOutlineStroke, lookupSeriesPaint, lookupSeriesShape, lookupSeriesStroke, notifyListeners, removeChangeListener, setAutoPopulateSeriesFillPaint, setAutoPopulateSeriesOutlinePaint, setAutoPopulateSeriesOutlineStroke, setAutoPopulateSeriesPaint, setAutoPopulateSeriesShape, setAutoPopulateSeriesStroke, setBaseCreateEntities, setBaseCreateEntities, setBaseFillPaint, setBaseFillPaint, setBaseItemLabelFont, setBaseItemLabelFont, setBaseItemLabelPaint, setBaseItemLabelPaint, setBaseItemLabelsVisible, setBaseItemLabelsVisible, setBaseItemLabelsVisible, setBaseLegendShape, setBaseLegendTextFont, setBaseLegendTextPaint, setBaseNegativeItemLabelPosition, setBaseNegativeItemLabelPosition, setBaseOutlinePaint, setBaseOutlinePaint, setBaseOutlineStroke, setBaseOutlineStroke, setBasePaint, setBasePaint, setBasePositiveItemLabelPosition, setBasePositiveItemLabelPosition, setBaseSeriesVisible, setBaseSeriesVisible, setBaseSeriesVisibleInLegend, setBaseSeriesVisibleInLegend, setBaseShape, setBaseShape, setBaseStroke, setBaseStroke, setCreateEntities, setCreateEntities, setDataBoundsIncludesVisibleSeriesOnly, setDefaultEntityRadius, setFillPaint, setFillPaint, setItemLabelAnchorOffset, setItemLabelFont, setItemLabelFont, setItemLabelPaint, setItemLabelPaint, setItemLabelsVisible, setItemLabelsVisible, setItemLabelsVisible, setLegendShape, setLegendTextFont, setLegendTextPaint, 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, setTreatLegendShapeAsLine`

    - ### Methods inherited from class java.lang.Object

      `finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.jfree.chart.renderer.xy.XYItemRenderer

      `addAnnotation, addAnnotation, addChangeListener, drawAnnotations, drawDomainGridLine, drawDomainMarker, drawRangeLine, drawRangeMarker, fillDomainGridBand, fillRangeGridBand, findDomainBounds, findRangeBounds, getBaseItemLabelFont, getBaseItemLabelGenerator, getBaseItemLabelPaint, getBaseItemLabelsVisible, getBaseNegativeItemLabelPosition, getBaseOutlinePaint, getBaseOutlineStroke, getBasePaint, getBasePositiveItemLabelPosition, getBaseSeriesVisible, getBaseSeriesVisibleInLegend, getBaseShape, getBaseStroke, getBaseToolTipGenerator, getItemLabelFont, getItemLabelFont, getItemLabelGenerator, getItemLabelPaint, getItemLabelPaint, getItemOutlinePaint, getItemOutlineStroke, getItemPaint, getItemShape, getItemStroke, getItemVisible, getLegendItemLabelGenerator, getNegativeItemLabelPosition, getNegativeItemLabelPosition, getPlot, getPositiveItemLabelPosition, getPositiveItemLabelPosition, getSeriesItemLabelFont, getSeriesItemLabelGenerator, getSeriesItemLabelPaint, getSeriesNegativeItemLabelPosition, getSeriesOutlinePaint, getSeriesOutlineStroke, getSeriesPaint, getSeriesPositiveItemLabelPosition, getSeriesShape, getSeriesStroke, getSeriesToolTipGenerator, getSeriesVisible, getSeriesVisible, getSeriesVisibleInLegend, getSeriesVisibleInLegend, getToolTipGenerator, getURLGenerator, isItemLabelVisible, isSeriesItemLabelsVisible, isSeriesVisible, isSeriesVisibleInLegend, removeAnnotation, removeAnnotations, removeChangeListener, setBaseItemLabelFont, setBaseItemLabelGenerator, setBaseItemLabelPaint, setBaseItemLabelsVisible, setBaseItemLabelsVisible, setBaseItemLabelsVisible, setBaseNegativeItemLabelPosition, setBaseNegativeItemLabelPosition, setBaseOutlinePaint, setBaseOutlineStroke, setBasePaint, setBasePositiveItemLabelPosition, setBasePositiveItemLabelPosition, setBaseSeriesVisible, setBaseSeriesVisible, setBaseSeriesVisibleInLegend, setBaseSeriesVisibleInLegend, setBaseShape, setBaseStroke, setBaseToolTipGenerator, setItemLabelFont, setItemLabelGenerator, setItemLabelPaint, setItemLabelsVisible, setItemLabelsVisible, setItemLabelsVisible, setLegendItemLabelGenerator, setNegativeItemLabelPosition, setNegativeItemLabelPosition, setOutlinePaint, setOutlineStroke, setPaint, setPlot, setPositiveItemLabelPosition, setPositiveItemLabelPosition, setSeriesItemLabelFont, setSeriesItemLabelGenerator, setSeriesItemLabelPaint, setSeriesItemLabelsVisible, setSeriesItemLabelsVisible, setSeriesItemLabelsVisible, setSeriesNegativeItemLabelPosition, setSeriesNegativeItemLabelPosition, setSeriesOutlinePaint, setSeriesOutlineStroke, setSeriesPaint, setSeriesPositiveItemLabelPosition, setSeriesPositiveItemLabelPosition, setSeriesShape, setSeriesStroke, setSeriesToolTipGenerator, setSeriesVisible, setSeriesVisible, setSeriesVisible, setSeriesVisible, setSeriesVisibleInLegend, setSeriesVisibleInLegend, setSeriesVisibleInLegend, setSeriesVisibleInLegend, setShape, setStroke, setToolTipGenerator, setURLGenerator`

    - ### Methods inherited from interface org.jfree.chart.LegendItemSource

      `getLegendItems`

- - ### 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

    - #### 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:
        `setDrawSeriesLineAsPath(boolean)`

    - #### 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()`

    - #### 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.
      Specified by:
        `getPassCount` in interface `XYItemRenderer`
      Overrides:
        `getPassCount` in class `AbstractXYItemRenderer`
      Returns:
        The pass count.

    - #### 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.

    - #### getLinesVisible

          public java.lang.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:
        `setLinesVisible(Boolean)`

    - #### setLinesVisible

          public void setLinesVisible(java.lang.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:
        `getLinesVisible()`

    - #### 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:
        `getLinesVisible()`

    - #### 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`).
      See Also:
        `setSeriesLinesVisible(int, Boolean)`

    - #### setSeriesLinesVisible

          public void setSeriesLinesVisible(int series,
                                            java.lang.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:
        `getSeriesLinesVisible(int)`

    - #### 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:
        `getSeriesLinesVisible(int)`

    - #### getBaseLinesVisible

          public boolean getBaseLinesVisible()

      Returns the base 'lines visible' attribute.
      Returns:
        The base flag.
      See Also:
        `setBaseLinesVisible(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()`

    - #### getLegendLine

          public java.awt.Shape getLegendLine()

      Returns the shape used to represent a line in the legend.
      Returns:
        The legend line (never `null`).
      See Also:
        `setLegendLine(Shape)`

    - #### setLegendLine

          public void setLegendLine(java.awt.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()`

    - #### 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.

    - #### getShapesVisible

          public java.lang.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:
        `setShapesVisible(Boolean)`

    - #### setShapesVisible

          public void setShapesVisible(java.lang.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:
        `getShapesVisible()`

    - #### 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:
        `getShapesVisible()`

    - #### 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.
      See Also:
        `setSeriesShapesVisible(int, 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.
      See Also:
        `getSeriesShapesVisible(int)`

    - #### 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.
      See Also:
        `getSeriesShapesVisible(int)`

    - #### getBaseShapesVisible

          public boolean getBaseShapesVisible()

      Returns the base 'shape visible' attribute.
      Returns:
        The base flag.
      See Also:
        `setBaseShapesVisible(boolean)`

    - #### 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()`

    - #### 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.

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

    - #### getSeriesShapesFilled

          public java.lang.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:
        `setSeriesShapesFilled(int, Boolean)`

    - #### 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:
        `getSeriesShapesFilled(int)`

    - #### setSeriesShapesFilled

          public void setSeriesShapesFilled(int series,
                                            java.lang.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:
        `getSeriesShapesFilled(int)`

    - #### getBaseShapesFilled

          public boolean getBaseShapesFilled()

      Returns the base 'shape filled' attribute.
      Returns:
        The base flag.
      See Also:
        `setBaseShapesFilled(boolean)`

    - #### 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()`

    - #### getDrawOutlines

          public boolean getDrawOutlines()

      Returns `true` if outlines should be drawn for shapes, and `false` otherwise.
      Returns:
        A boolean.
      See Also:
        `setDrawOutlines(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.
      See Also:
        `getDrawOutlines()`

    - #### 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:
        `setUseFillPaint(boolean)`, `getUseOutlinePaint()`

    - #### 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()`

    - #### 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:
        `setUseOutlinePaint(boolean)`, `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()`

    - #### initialise

          public XYItemRendererState initialise(java.awt.Graphics2D g2,
                                                java.awt.geom.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.

      Specified by:
        `initialise` in interface `XYItemRenderer`
      Overrides:
        `initialise` in class `AbstractXYItemRenderer`
      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.

    - #### 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,
                               CrosshairState crosshairState,
                               int pass)

      Draws the visual representation of a single data item.
      Specified by:
        `drawItem` in interface `XYItemRenderer`
      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.

    - #### 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.

    - #### 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.

    - #### drawPrimaryLine

          protected void drawPrimaryLine(XYItemRendererState state,
                                         java.awt.Graphics2D g2,
                                         XYPlot plot,
                                         XYDataset dataset,
                                         int pass,
                                         int series,
                                         int item,
                                         ValueAxis domainAxis,
                                         ValueAxis rangeAxis,
                                         java.awt.geom.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).

    - #### drawFirstPassShape

          protected void drawFirstPassShape(java.awt.Graphics2D g2,
                                            int pass,
                                            int series,
                                            int item,
                                            java.awt.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.

    - #### drawPrimaryLineAsPath

          protected void drawPrimaryLineAsPath(XYItemRendererState state,
                                               java.awt.Graphics2D g2,
                                               XYPlot plot,
                                               XYDataset dataset,
                                               int pass,
                                               int series,
                                               int item,
                                               ValueAxis domainAxis,
                                               ValueAxis rangeAxis,
                                               java.awt.geom.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(java.awt.Graphics2D g2,
                                           XYPlot plot,
                                           XYDataset dataset,
                                           int pass,
                                           int series,
                                           int item,
                                           ValueAxis domainAxis,
                                           java.awt.geom.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.

    - #### getLegendItem

          public LegendItem getLegendItem(int datasetIndex,
                                          int series)

      Returns a legend item for the specified series.
      Specified by:
        `getLegendItem` in interface `XYItemRenderer`
      Overrides:
        `getLegendItem` in class `AbstractXYItemRenderer`
      Parameters:
        `datasetIndex` - the dataset index (zero-based).
        `series` - the series index (zero-based).
      Returns:
        A legend item for the series (possibly `null`).

    - #### clone

          public java.lang.Object clone()
                                 throws java.lang.CloneNotSupportedException

      Returns a clone of the renderer.
      Specified by:
        `clone` in interface `PublicCloneable`
      Overrides:
        `clone` in class `AbstractXYItemRenderer`
      Returns:
        A clone.
      Throws:
        `java.lang.CloneNotSupportedException` - if the clone cannot be created.

    - #### equals

          public boolean equals(java.lang.Object obj)

      Tests this renderer for equality with an arbitrary object.
      Overrides:
        `equals` in class `AbstractXYItemRenderer`
      Parameters:
        `obj` - the object (`null` permitted).
      Returns:
        `true` or `false`.