## org.jfree.chart.renderer.category
Interface CategoryItemRenderer

All Superinterfaces:
  LegendItemSource

All Known Implementing Classes:
  AbstractCategoryItemRenderer, AreaRenderer, BarRenderer, BarRenderer3D, BoxAndWhiskerRenderer, CategoryStepRenderer, DefaultCategoryItemRenderer, GanttRenderer, GroupedStackedBarRenderer, IntervalBarRenderer, LayeredBarRenderer, LevelRenderer, LineAndShapeRenderer, LineRenderer3D, MinMaxCategoryRenderer, ScatterRenderer, StackedAreaRenderer, StackedBarRenderer, StackedBarRenderer3D, StatisticalBarRenderer, StatisticalLineAndShapeRenderer, WaterfallBarRenderer

    public interface CategoryItemRenderer

extends LegendItemSource

A plug-in object that is used by the `CategoryPlot` class to display individual data items from a `CategoryDataset`.

This interface defines the methods that must be provided by all renderers. If you are implementing a custom renderer, you should consider extending the `AbstractCategoryItemRenderer` class.

Most renderer attributes are defined using a "three layer" approach. When looking up an attribute (for example, the outline paint) the renderer first checks to see if there is a setting (in layer 0) that applies to ALL items that the renderer draws. If there is, that setting is used, but if it is `null` the renderer looks up the next layer, which contains "per series" settings for the attribute (many attributes are defined on a per series basis, so this is the layer that is most commonly used). If the layer 1 setting is `null`, the renderer will look up the final layer, which provides a default or "base" setting. Some attributes allow the base setting to be `null`, while other attributes enforce non-`null` values.

Method Summary
`void` `addChangeListener(RendererChangeListener listener)` Adds a change listener.
`void` `drawBackground(java.awt.Graphics2D g2, CategoryPlot plot, java.awt.geom.Rectangle2D dataArea)` Draws a background for the data area.
`void` `drawDomainGridline(java.awt.Graphics2D g2, CategoryPlot plot, java.awt.geom.Rectangle2D dataArea, double value)` Draws a grid line against the domain axis.
`void` `drawDomainMarker(java.awt.Graphics2D g2, CategoryPlot plot, CategoryAxis axis, CategoryMarker marker, java.awt.geom.Rectangle2D dataArea)` Draws a line (or some other marker) to indicate a particular category on the domain axis.
`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)` Draws a single data item.
`void` `drawOutline(java.awt.Graphics2D g2, CategoryPlot plot, java.awt.geom.Rectangle2D dataArea)` Draws an outline for the data area.
`void` `drawRangeGridline(java.awt.Graphics2D g2, CategoryPlot plot, ValueAxis axis, java.awt.geom.Rectangle2D dataArea, double value)` Draws a grid line against the range axis.
`void` `drawRangeMarker(java.awt.Graphics2D g2, CategoryPlot plot, ValueAxis axis, Marker marker, java.awt.geom.Rectangle2D dataArea)` Draws a line (or some other marker) to indicate a particular value on the range axis.
`Range` `findRangeBounds(CategoryDataset dataset)` Returns the range of values the renderer requires to display all the items from the specified dataset.
`java.awt.Font` `getBaseItemLabelFont()` Returns the base item label font (this is used when no other font setting is available).
`CategoryItemLabelGenerator` `getBaseItemLabelGenerator()` Returns the base item label generator.
`java.awt.Paint` `getBaseItemLabelPaint()` Returns the base item label paint.
`java.lang.Boolean` `getBaseItemLabelsVisible()` Returns the base setting for item label visibility.
`CategoryURLGenerator` `getBaseItemURLGenerator()` Returns the base item URL generator.
`ItemLabelPosition` `getBaseNegativeItemLabelPosition()` Returns the base item label position for negative values.
`java.awt.Paint` `getBaseOutlinePaint()` Returns the base outline paint.
`java.awt.Stroke` `getBaseOutlineStroke()` Returns the base outline stroke.
`java.awt.Paint` `getBasePaint()` Returns the base paint.
`ItemLabelPosition` `getBasePositiveItemLabelPosition()` Returns the base positive item label position.
`boolean` `getBaseSeriesVisible()` Returns the base visibility for all series.
`boolean` `getBaseSeriesVisibleInLegend()` Returns the base visibility in the legend for all series.
`java.awt.Shape` `getBaseShape()` Returns the base shape.
`java.awt.Stroke` `getBaseStroke()` Returns the base stroke.
`CategoryToolTipGenerator` `getBaseToolTipGenerator()` Returns the base tool tip generator (the "layer 2" generator).
`java.awt.Font` `getItemLabelFont()` Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `getSeriesItemLabelFont(int)` and `getBaseItemLabelFont()`.
`java.awt.Font` `getItemLabelFont(int row, int column)` Returns the font for an item label.
`CategoryItemLabelGenerator` `getItemLabelGenerator(int series, int item)` Returns the item label generator for the specified data item.
`java.awt.Paint` `getItemLabelPaint()` Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `getSeriesItemLabelPaint(int)` and `getBaseItemLabelPaint()`.
`java.awt.Paint` `getItemLabelPaint(int row, int column)` Returns the paint used to draw an item label.
`double` `getItemMiddle(java.lang.Comparable rowKey, java.lang.Comparable columnKey, CategoryDataset dataset, CategoryAxis axis, java.awt.geom.Rectangle2D area, org.jfree.ui.RectangleEdge edge)` Returns the Java2D coordinate for the middle of the specified data item.
`java.awt.Paint` `getItemOutlinePaint(int row, int column)` Returns the paint used to outline data items as they are drawn.
`java.awt.Stroke` `getItemOutlineStroke(int row, int column)` Returns the stroke used to outline data items.
`java.awt.Paint` `getItemPaint(int row, int column)` Returns the paint used to fill data items as they are drawn.
`java.awt.Shape` `getItemShape(int row, int column)` Returns a shape used to represent a data item.
`java.awt.Stroke` `getItemStroke(int row, int column)` Returns the stroke used to draw data items.
`CategoryURLGenerator` `getItemURLGenerator(int series, int item)` Returns the URL generator for an item.
`boolean` `getItemVisible(int series, int item)` Returns a boolean that indicates whether or not the specified item should be drawn (this is typically used to hide an entire series).
`LegendItem` `getLegendItem(int datasetIndex, int series)` Returns a legend item for a series.
`ItemLabelPosition` `getNegativeItemLabelPosition()` Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `getSeriesNegativeItemLabelPosition(int)` and `getBaseNegativeItemLabelPosition()`.
`ItemLabelPosition` `getNegativeItemLabelPosition(int row, int column)` Returns the item label position for negative values.
`int` `getPassCount()` Returns the number of passes through the dataset required by the renderer.
`CategoryPlot` `getPlot()` Returns the plot that the renderer has been assigned to (where `null` indicates that the renderer is not currently assigned to a plot).
`ItemLabelPosition` `getPositiveItemLabelPosition()` Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `getSeriesPositiveItemLabelPosition(int)` and `getBasePositiveItemLabelPosition()`.
`ItemLabelPosition` `getPositiveItemLabelPosition(int row, int column)` Returns the item label position for positive values.
`java.awt.Font` `getSeriesItemLabelFont(int series)` Returns the font for all the item labels in a series.
`CategoryItemLabelGenerator` `getSeriesItemLabelGenerator(int series)` Returns the item label generator for a series.
`java.awt.Paint` `getSeriesItemLabelPaint(int series)` Returns the paint used to draw the item labels for a series.
`CategoryURLGenerator` `getSeriesItemURLGenerator(int series)` Returns the item URL generator for a series.
`ItemLabelPosition` `getSeriesNegativeItemLabelPosition(int series)` Returns the item label position for all negative values in a series.
`java.awt.Paint` `getSeriesOutlinePaint(int series)` Returns the paint used to outline an item drawn by the renderer.
`java.awt.Stroke` `getSeriesOutlineStroke(int series)` Returns the stroke used to outline the items in a series.
`java.awt.Paint` `getSeriesPaint(int series)` Returns the paint used to fill an item drawn by the renderer.
`ItemLabelPosition` `getSeriesPositiveItemLabelPosition(int series)` Returns the item label position for all positive values in a series.
`java.awt.Shape` `getSeriesShape(int series)` Returns a shape used to represent the items in a series.
`java.awt.Stroke` `getSeriesStroke(int series)` Returns the stroke used to draw the items in a series.
`CategoryToolTipGenerator` `getSeriesToolTipGenerator(int series)` Returns the tool tip generator for the specified series (a "layer 1" generator).
`java.lang.Boolean` `getSeriesVisible()` Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `getSeriesVisible(int)` and `getBaseSeriesVisible()`.
`java.lang.Boolean` `getSeriesVisible(int series)` Returns the flag that controls whether a series is visible.
`java.lang.Boolean` `getSeriesVisibleInLegend()` Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `getSeriesVisibleInLegend(int)` and `getBaseSeriesVisibleInLegend()`.
`java.lang.Boolean` `getSeriesVisibleInLegend(int series)` Returns the flag that controls whether a series is visible in the legend.
`CategoryToolTipGenerator` `getToolTipGenerator()` Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `getSeriesToolTipGenerator(int)` and `getBaseToolTipGenerator()`.
`CategoryToolTipGenerator` `getToolTipGenerator(int row, int column)` Returns the tool tip generator that should be used for the specified item.
`CategoryItemRendererState` `initialise(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, CategoryPlot plot, int rendererIndex, PlotRenderingInfo info)` Initialises the renderer.
`boolean` `isItemLabelVisible(int row, int column)` Returns `true` if an item label is visible, and `false` otherwise.
`boolean` `isSeriesItemLabelsVisible(int series)` Returns `true` if the item labels for a series are visible, and `false` otherwise.
`boolean` `isSeriesVisible(int series)` Returns a boolean that indicates whether or not the specified series should be drawn (this is typically used to hide an entire series).
`boolean` `isSeriesVisibleInLegend(int series)` Returns `true` if the series should be shown in the legend, and `false` otherwise.
`void` `removeChangeListener(RendererChangeListener listener)` Removes a change listener.
`void` `setBaseItemLabelFont(java.awt.Font font)` Sets the base item label font and sends a `RendererChangeEvent` to all registered listeners.
`void` `setBaseItemLabelGenerator(CategoryItemLabelGenerator generator)` Sets the base item label generator and sends a `RendererChangeEvent` to all registered listeners.
`void` `setBaseItemLabelPaint(java.awt.Paint paint)` Sets the base item label paint and sends a `RendererChangeEvent` to all registered listeners.
`void` `setBaseItemLabelsVisible(boolean visible)` Sets the base flag that controls whether or not item labels are visible and sends a `RendererChangeEvent` to all registered listeners.
`void` `setBaseItemLabelsVisible(java.lang.Boolean visible)` Sets the base setting for item label visibility and sends a `RendererChangeEvent` to all registered listeners.
`void` `setBaseItemLabelsVisible(java.lang.Boolean visible, boolean notify)` Sets the base visibility for item labels and, if requested, sends a `RendererChangeEvent` to all registered listeners.
`void` `setBaseItemURLGenerator(CategoryURLGenerator generator)` Sets the base item URL generator and sends a `RendererChangeEvent` to all registered listeners.
`void` `setBaseNegativeItemLabelPosition(ItemLabelPosition position)` Sets the base item label position for negative values and sends a `RendererChangeEvent` to all registered listeners.
`void` `setBaseNegativeItemLabelPosition(ItemLabelPosition position, boolean notify)` Sets the base negative item label position and, if requested, sends a `RendererChangeEvent` to all registered listeners.
`void` `setBaseOutlinePaint(java.awt.Paint paint)` Sets the base outline paint and sends a `RendererChangeEvent` to all registered listeners.
`void` `setBaseOutlineStroke(java.awt.Stroke stroke)` Sets the base outline stroke and sends a `RendererChangeEvent` to all registered listeners.
`void` `setBasePaint(java.awt.Paint paint)` Sets the base paint and sends a `RendererChangeEvent` to all registered listeners.
`void` `setBasePositiveItemLabelPosition(ItemLabelPosition position)` Sets the base positive item label position.
`void` `setBasePositiveItemLabelPosition(ItemLabelPosition position, boolean notify)` Sets the base positive item label position and, if requested, sends a `RendererChangeEvent` to all registered listeners.
`void` `setBaseSeriesVisible(boolean visible)` Sets the base visibility and sends a `RendererChangeEvent` to all registered listeners.
`void` `setBaseSeriesVisible(boolean visible, boolean notify)` Sets the base visibility and, if requested, sends a `RendererChangeEvent` to all registered listeners.
`void` `setBaseSeriesVisibleInLegend(boolean visible)` Sets the base visibility in the legend and sends a `RendererChangeEvent` to all registered listeners.
`void` `setBaseSeriesVisibleInLegend(boolean visible, boolean notify)` Sets the base visibility in the legend and, if requested, sends a `RendererChangeEvent` to all registered listeners.
`void` `setBaseShape(java.awt.Shape shape)` Sets the base shape and sends a `RendererChangeEvent` to all registered listeners.
`void` `setBaseStroke(java.awt.Stroke stroke)` Sets the base stroke and sends a `RendererChangeEvent` to all registered listeners.
`void` `setBaseToolTipGenerator(CategoryToolTipGenerator generator)` Sets the base tool tip generator and sends a `RendererChangeEvent` to all registered listeners.
`void` `setItemLabelFont(java.awt.Font font)` Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesItemLabelFont(int, Font)` and `setBaseItemLabelFont(Font)`.
`void` `setItemLabelGenerator(CategoryItemLabelGenerator generator)` Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesItemLabelGenerator(int, CategoryItemLabelGenerator)` and `setBaseItemLabelGenerator(CategoryItemLabelGenerator)`.
`void` `setItemLabelPaint(java.awt.Paint paint)` Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesItemLabelPaint(int, Paint)` and `setBaseItemLabelPaint(Paint)`.
`void` `setItemLabelsVisible(boolean visible)` Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesItemLabelsVisible(int, Boolean)` and `setBaseItemLabelsVisible(boolean)`.
`void` `setItemLabelsVisible(java.lang.Boolean visible)` Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesItemLabelsVisible(int, Boolean)` and `setBaseItemLabelsVisible(boolean)`.
`void` `setItemLabelsVisible(java.lang.Boolean visible, boolean notify)` Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesItemLabelsVisible(int, Boolean, boolean)` and `setBaseItemLabelsVisible(Boolean, boolean)`.
`void` `setItemURLGenerator(CategoryURLGenerator generator)` Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesItemURLGenerator(int, CategoryURLGenerator)` and `setBaseItemURLGenerator(CategoryURLGenerator)`.
`void` `setNegativeItemLabelPosition(ItemLabelPosition position)` Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesNegativeItemLabelPosition(int, ItemLabelPosition)` and `setBaseNegativeItemLabelPosition(ItemLabelPosition)`.
`void` `setNegativeItemLabelPosition(ItemLabelPosition position, boolean notify)` Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesNegativeItemLabelPosition(int, ItemLabelPosition, boolean)` and `setBaseNegativeItemLabelPosition( ItemLabelPosition, boolean)`.
`void` `setOutlinePaint(java.awt.Paint paint)` Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesOutlinePaint(int, Paint)` and `setBaseOutlinePaint(Paint)`.
`void` `setOutlineStroke(java.awt.Stroke stroke)` Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesOutlineStroke(int, Stroke)` and `setBaseOutlineStroke(Stroke)`.
`void` `setPaint(java.awt.Paint paint)` Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesPaint(int, Paint)` and `setBasePaint(Paint)`.
`void` `setPlot(CategoryPlot plot)` Sets the plot that the renderer has been assigned to.
`void` `setPositiveItemLabelPosition(ItemLabelPosition position)` Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesPositiveItemLabelPosition(int, ItemLabelPosition)` and `setBasePositiveItemLabelPosition(ItemLabelPosition)`.
`void` `setPositiveItemLabelPosition(ItemLabelPosition position, boolean notify)` Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesPositiveItemLabelPosition(int, ItemLabelPosition, boolean)` and `setBasePositiveItemLabelPosition( ItemLabelPosition, boolean)`.
`void` `setSeriesItemLabelFont(int series, java.awt.Font font)` Sets the item label font for a series and sends a `RendererChangeEvent` to all registered listeners.
`void` `setSeriesItemLabelGenerator(int series, CategoryItemLabelGenerator generator)` Sets the item label generator for a series and sends a `RendererChangeEvent` to all registered listeners.
`void` `setSeriesItemLabelPaint(int series, java.awt.Paint paint)` Sets the item label paint for a series and sends a `RendererChangeEvent` to all registered listeners.
`void` `setSeriesItemLabelsVisible(int series, boolean visible)` Sets a flag that controls the visibility of the item labels for a series.
`void` `setSeriesItemLabelsVisible(int series, java.lang.Boolean visible)` Sets a flag that controls the visibility of the item labels for a series.
`void` `setSeriesItemLabelsVisible(int series, java.lang.Boolean visible, boolean notify)` Sets the visibility of item labels for a series and, if requested, sends a `RendererChangeEvent` to all registered listeners.
`void` `setSeriesItemURLGenerator(int series, CategoryURLGenerator generator)` Sets the item URL generator for a series.
`void` `setSeriesNegativeItemLabelPosition(int series, ItemLabelPosition position)` Sets the item label position for negative values in a series and sends a `RendererChangeEvent` to all registered listeners.
`void` `setSeriesNegativeItemLabelPosition(int series, ItemLabelPosition position, boolean notify)` Sets the item label position for negative values in a series and (if requested) sends a `RendererChangeEvent` to all registered listeners.
`void` `setSeriesOutlinePaint(int series, java.awt.Paint paint)` Sets the paint used for a series outline and sends a `RendererChangeEvent` to all registered listeners.
`void` `setSeriesOutlineStroke(int series, java.awt.Stroke stroke)` Sets the outline stroke used for a series and sends a `RendererChangeEvent` to all registered listeners.
`void` `setSeriesPaint(int series, java.awt.Paint paint)` Sets the paint used for a series and sends a `RendererChangeEvent` to all registered listeners.
`void` `setSeriesPositiveItemLabelPosition(int series, ItemLabelPosition position)` Sets the item label position for all positive values in a series and sends a `RendererChangeEvent` to all registered listeners.
`void` `setSeriesPositiveItemLabelPosition(int series, ItemLabelPosition position, boolean notify)` Sets the item label position for all positive values in a series and (if requested) sends a `RendererChangeEvent` to all registered listeners.
`void` `setSeriesShape(int series, java.awt.Shape shape)` Sets the shape used for a series and sends a `RendererChangeEvent` to all registered listeners.
`void` `setSeriesStroke(int series, java.awt.Stroke stroke)` Sets the stroke used for a series and sends a `RendererChangeEvent` to all registered listeners.
`void` `setSeriesToolTipGenerator(int series, CategoryToolTipGenerator generator)` Sets the tool tip generator for a series and sends a `RendererChangeEvent` to all registered listeners.
`void` `setSeriesVisible(java.lang.Boolean visible)` Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesVisible(int, Boolean)` and `setBaseSeriesVisible(boolean)`.
`void` `setSeriesVisible(java.lang.Boolean visible, boolean notify)` Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesVisible(int, Boolean, boolean)` and `setBaseSeriesVisible(boolean, boolean)`.
`void` `setSeriesVisible(int series, java.lang.Boolean visible)` Sets the flag that controls whether a series is visible and sends a `RendererChangeEvent` to all registered listeners.
`void` `setSeriesVisible(int series, java.lang.Boolean visible, boolean notify)` Sets the flag that controls whether a series is visible and, if requested, sends a `RendererChangeEvent` to all registered listeners.
`void` `setSeriesVisibleInLegend(java.lang.Boolean visible)` Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesVisibleInLegend(int, Boolean)` and `setBaseSeriesVisibleInLegend(boolean)`.
`void` `setSeriesVisibleInLegend(java.lang.Boolean visible, boolean notify)` Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesVisibleInLegend(int, Boolean, boolean)` and `setBaseSeriesVisibleInLegend(boolean, boolean)`.
`void` `setSeriesVisibleInLegend(int series, java.lang.Boolean visible)` Sets the flag that controls whether a series is visible in the legend and sends a `RendererChangeEvent` to all registered listeners.
`void` `setSeriesVisibleInLegend(int series, java.lang.Boolean visible, boolean notify)` Sets the flag that controls whether a series is visible in the legend and, if requested, sends a `RendererChangeEvent` to all registered listeners.
`void` `setShape(java.awt.Shape shape)` Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesShape(int, Shape)` and `setBaseShape(Shape)`.
`void` `setStroke(java.awt.Stroke stroke)` Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesStroke(int, Stroke)` and `setBaseStroke(Stroke)`.
`void` `setToolTipGenerator(CategoryToolTipGenerator generator)` Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesToolTipGenerator(int, CategoryToolTipGenerator)` and `setBaseToolTipGenerator(CategoryToolTipGenerator)`.

Methods inherited from interface org.jfree.chart.LegendItemSource
`getLegendItems`

Method Detail

### getPassCount

    int getPassCount()

  Returns the number of passes through the dataset required by the renderer. Usually this will be one, but some renderers may use a second or third pass to overlay items on top of things that were drawn in an earlier pass.

  Returns:
    The pass count.

### getPlot

    CategoryPlot getPlot()

  Returns the plot that the renderer has been assigned to (where `null` indicates that the renderer is not currently assigned to a plot).

  Returns:
    The plot (possibly `null`).
  See Also:
    `setPlot(CategoryPlot)`

### setPlot

    void setPlot(CategoryPlot plot)

  Sets the plot that the renderer has been assigned to. This method is usually called by the `CategoryPlot`, in normal usage you shouldn't need to call this method directly.

  Parameters:
    `plot` - the plot (`null` not permitted).
  See Also:
    `getPlot()`

### addChangeListener

    void addChangeListener(RendererChangeListener listener)

  Adds a change listener.

  Parameters:
    `listener` - the listener.
  See Also:
    `removeChangeListener(RendererChangeListener)`

### removeChangeListener

    void removeChangeListener(RendererChangeListener listener)

  Removes a change listener.

  Parameters:
    `listener` - the listener.
  See Also:
    `addChangeListener(RendererChangeListener)`

### findRangeBounds

    Range findRangeBounds(CategoryDataset dataset)

  Returns the range of values the renderer requires to display all the items from the specified dataset.

  Parameters:
    `dataset` - the dataset (`null` permitted).
  Returns:
    The range (or `null` if the dataset is `null` or empty).

### initialise

    CategoryItemRendererState initialise(java.awt.Graphics2D g2,
                                         java.awt.geom.Rectangle2D dataArea,
                                         CategoryPlot plot,
                                         int rendererIndex,
                                         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.
    `rendererIndex` - the renderer index.
    `info` - collects chart rendering information for return to caller.
  Returns:
    A state object (maintains state information relevant to one chart drawing).

### getItemVisible

    boolean getItemVisible(int series,
                           int item)

  Returns a boolean that indicates whether or not the specified item should be drawn (this is typically used to hide an entire series).

  Parameters:
    `series` - the series index.
    `item` - the item index.
  Returns:
    A boolean.

### isSeriesVisible

    boolean isSeriesVisible(int series)

  Returns a boolean that indicates whether or not the specified series should be drawn (this is typically used to hide an entire series).

  Parameters:
    `series` - the series index.
  Returns:
    A boolean.

### getSeriesVisible

    java.lang.Boolean getSeriesVisible()

  Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `getSeriesVisible(int)` and `getBaseSeriesVisible()`.

  Returns the flag that controls the visibility of ALL series. This flag overrides the per series and default settings - you must set it to `null` if you want the other settings to apply.

  Returns:
    The flag (possibly `null`).
  See Also:
    `setSeriesVisible(Boolean)`

### setSeriesVisible

    void setSeriesVisible(java.lang.Boolean visible)

  Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesVisible(int, Boolean)` and `setBaseSeriesVisible(boolean)`.

  Sets the flag that controls the visibility of ALL series and sends a `RendererChangeEvent` to all registered listeners. This flag overrides the per series and default settings - you must set it to `null` if you want the other settings to apply.

  Parameters:
    `visible` - the flag (`null` permitted).
  See Also:
    `getSeriesVisible()`

### setSeriesVisible

    void setSeriesVisible(java.lang.Boolean visible,
                          boolean notify)

  Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesVisible(int, Boolean, boolean)` and `setBaseSeriesVisible(boolean, boolean)`.

  Sets the flag that controls the visibility of ALL series and sends a `RendererChangeEvent` to all registered listeners. This flag overrides the per series and default settings - you must set it to `null` if you want the other settings to apply.

  Parameters:
    `visible` - the flag (`null` permitted).
    `notify` - notify listeners?
  See Also:
    `getSeriesVisible()`

### getSeriesVisible

    java.lang.Boolean getSeriesVisible(int series)

  Returns the flag that controls whether a series is visible.

  Parameters:
    `series` - the series index (zero-based).
  Returns:
    The flag (possibly `null`).
  See Also:
    `setSeriesVisible(int, Boolean)`

### setSeriesVisible

    void setSeriesVisible(int series,
                          java.lang.Boolean visible)

  Sets the flag that controls whether a series is visible and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `series` - the series index (zero-based).
    `visible` - the flag (`null` permitted).
  See Also:
    `getSeriesVisible(int)`

### setSeriesVisible

    void setSeriesVisible(int series,
                          java.lang.Boolean visible,
                          boolean notify)

  Sets the flag that controls whether a series is visible and, if requested, sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `series` - the series index.
    `visible` - the flag (`null` permitted).
    `notify` - notify listeners?
  See Also:
    `getSeriesVisible(int)`

### getBaseSeriesVisible

    boolean getBaseSeriesVisible()

  Returns the base visibility for all series.

  Returns:
    The base visibility.
  See Also:
    `setBaseSeriesVisible(boolean)`

### setBaseSeriesVisible

    void setBaseSeriesVisible(boolean visible)

  Sets the base visibility and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `visible` - the flag.
  See Also:
    `getBaseSeriesVisible()`

### setBaseSeriesVisible

    void setBaseSeriesVisible(boolean visible,
                              boolean notify)

  Sets the base visibility and, if requested, sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `visible` - the visibility.
    `notify` - notify listeners?
  See Also:
    `getBaseSeriesVisible()`

### isSeriesVisibleInLegend

    boolean isSeriesVisibleInLegend(int series)

  Returns `true` if the series should be shown in the legend, and `false` otherwise.

  Parameters:
    `series` - the series index.
  Returns:
    A boolean.

### getSeriesVisibleInLegend

    java.lang.Boolean getSeriesVisibleInLegend()

  Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `getSeriesVisibleInLegend(int)` and `getBaseSeriesVisibleInLegend()`.

  Returns the flag that controls the visibility of ALL series in the legend. This flag overrides the per series and default settings - you must set it to `null` if you want the other settings to apply.

  Returns:
    The flag (possibly `null`).
  See Also:
    `setSeriesVisibleInLegend(Boolean)`

### setSeriesVisibleInLegend

    void setSeriesVisibleInLegend(java.lang.Boolean visible)

  Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesVisibleInLegend(int, Boolean)` and `setBaseSeriesVisibleInLegend(boolean)`.

  Sets the flag that controls the visibility of ALL series in the legend and sends a `RendererChangeEvent` to all registered listeners. This flag overrides the per series and default settings - you must set it to `null` if you want the other settings to apply.

  Parameters:
    `visible` - the flag (`null` permitted).
  See Also:
    `getSeriesVisibleInLegend()`

### setSeriesVisibleInLegend

    void setSeriesVisibleInLegend(java.lang.Boolean visible,
                                  boolean notify)

  Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesVisibleInLegend(int, Boolean, boolean)` and `setBaseSeriesVisibleInLegend(boolean, boolean)`.

  Sets the flag that controls the visibility of ALL series in the legend and sends a `RendererChangeEvent` to all registered listeners. This flag overrides the per series and default settings - you must set it to `null` if you want the other settings to apply.

  Parameters:
    `visible` - the flag (`null` permitted).
    `notify` - notify listeners?
  See Also:
    `getSeriesVisibleInLegend()`

### getSeriesVisibleInLegend

    java.lang.Boolean getSeriesVisibleInLegend(int series)

  Returns the flag that controls whether a series is visible in the legend. This method returns only the "per series" settings - to incorporate the override and base settings as well, you need to use the `isSeriesVisibleInLegend(int)` method.

  Parameters:
    `series` - the series index (zero-based).
  Returns:
    The flag (possibly `null`).
  See Also:
    `setSeriesVisibleInLegend(int, Boolean)`

### setSeriesVisibleInLegend

    void setSeriesVisibleInLegend(int series,
                                  java.lang.Boolean visible)

  Sets the flag that controls whether a series is visible in the legend and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `series` - the series index (zero-based).
    `visible` - the flag (`null` permitted).
  See Also:
    `getSeriesVisibleInLegend(int)`

### setSeriesVisibleInLegend

    void setSeriesVisibleInLegend(int series,
                                  java.lang.Boolean visible,
                                  boolean notify)

  Sets the flag that controls whether a series is visible in the legend and, if requested, sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `series` - the series index.
    `visible` - the flag (`null` permitted).
    `notify` - notify listeners?
  See Also:
    `getSeriesVisibleInLegend(int)`

### getBaseSeriesVisibleInLegend

    boolean getBaseSeriesVisibleInLegend()

  Returns the base visibility in the legend for all series.

  Returns:
    The base visibility.
  See Also:
    `setBaseSeriesVisibleInLegend(boolean)`

### setBaseSeriesVisibleInLegend

    void setBaseSeriesVisibleInLegend(boolean visible)

  Sets the base visibility in the legend and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `visible` - the flag.
  See Also:
    `getBaseSeriesVisibleInLegend()`

### setBaseSeriesVisibleInLegend

    void setBaseSeriesVisibleInLegend(boolean visible,
                                      boolean notify)

  Sets the base visibility in the legend and, if requested, sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `visible` - the visibility.
    `notify` - notify listeners?
  See Also:
    `getBaseSeriesVisibleInLegend()`

### getItemPaint

    java.awt.Paint getItemPaint(int row,
                                int column)

  Returns the paint used to fill data items as they are drawn.

  Parameters:
    `row` - the row (or series) index (zero-based).
    `column` - the column (or category) index (zero-based).
  Returns:
    The paint (never `null`).

### setPaint

    void setPaint(java.awt.Paint paint)

  Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesPaint(int, Paint)` and `setBasePaint(Paint)`.

  Sets the paint to be used for ALL series, and sends a `RendererChangeEvent` to all registered listeners. If this is `null`, the renderer will use the paint for the series.

  Parameters:
    `paint` - the paint (`null` permitted).

### getSeriesPaint

    java.awt.Paint getSeriesPaint(int series)

  Returns the paint used to fill an item drawn by the renderer.

  Parameters:
    `series` - the series index (zero-based).
  Returns:
    The paint (possibly `null`).
  See Also:
    `setSeriesPaint(int, Paint)`

### setSeriesPaint

    void setSeriesPaint(int series,
                        java.awt.Paint paint)

  Sets the paint used for a series and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `series` - the series index (zero-based).
    `paint` - the paint (`null` permitted).
  See Also:
    `getSeriesPaint(int)`

### getBasePaint

    java.awt.Paint getBasePaint()

  Returns the base paint.

  Returns:
    The base paint (never `null`).
  See Also:
    `setBasePaint(Paint)`

### setBasePaint

    void setBasePaint(java.awt.Paint paint)

  Sets the base paint and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `paint` - the paint (`null` not permitted).
  See Also:
    `getBasePaint()`

### getItemOutlinePaint

    java.awt.Paint getItemOutlinePaint(int row,
                                       int column)

  Returns the paint used to outline data items as they are drawn.

  Parameters:
    `row` - the row (or series) index (zero-based).
    `column` - the column (or category) index (zero-based).
  Returns:
    The paint (never `null`).

### setOutlinePaint

    void setOutlinePaint(java.awt.Paint paint)

  Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesOutlinePaint(int, Paint)` and `setBaseOutlinePaint(Paint)`.

  Sets the outline paint for ALL series (optional).

  Parameters:
    `paint` - the paint (`null` permitted).

### getSeriesOutlinePaint

    java.awt.Paint getSeriesOutlinePaint(int series)

  Returns the paint used to outline an item drawn by the renderer.

  Parameters:
    `series` - the series (zero-based index).
  Returns:
    The paint (possibly `null`).
  See Also:
    `setSeriesOutlinePaint(int, Paint)`

### setSeriesOutlinePaint

    void setSeriesOutlinePaint(int series,
                               java.awt.Paint paint)

  Sets the paint used for a series outline and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `series` - the series index (zero-based).
    `paint` - the paint (`null` permitted).
  See Also:
    `getSeriesOutlinePaint(int)`

### getBaseOutlinePaint

    java.awt.Paint getBaseOutlinePaint()

  Returns the base outline paint.

  Returns:
    The paint (never `null`).
  See Also:
    `setBaseOutlinePaint(Paint)`

### setBaseOutlinePaint

    void setBaseOutlinePaint(java.awt.Paint paint)

  Sets the base outline paint and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `paint` - the paint (`null` not permitted).
  See Also:
    `getBaseOutlinePaint()`

### getItemStroke

    java.awt.Stroke getItemStroke(int row,
                                  int column)

  Returns the stroke used to draw data items.

  Parameters:
    `row` - the row (or series) index (zero-based).
    `column` - the column (or category) index (zero-based).
  Returns:
    The stroke (never `null`).

### setStroke

    void setStroke(java.awt.Stroke stroke)

  Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesStroke(int, Stroke)` and `setBaseStroke(Stroke)`.

  Sets the stroke for ALL series and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `stroke` - the stroke (`null` permitted).

### getSeriesStroke

    java.awt.Stroke getSeriesStroke(int series)

  Returns the stroke used to draw the items in a series.

  Parameters:
    `series` - the series (zero-based index).
  Returns:
    The stroke (never `null`).
  See Also:
    `setSeriesStroke(int, Stroke)`

### setSeriesStroke

    void setSeriesStroke(int series,
                         java.awt.Stroke stroke)

  Sets the stroke used for a series and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `series` - the series index (zero-based).
    `stroke` - the stroke (`null` permitted).
  See Also:
    `getSeriesStroke(int)`

### getBaseStroke

    java.awt.Stroke getBaseStroke()

  Returns the base stroke.

  Returns:
    The base stroke (never `null`).
  See Also:
    `setBaseStroke(Stroke)`

### setBaseStroke

    void setBaseStroke(java.awt.Stroke stroke)

  Sets the base stroke and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `stroke` - the stroke (`null` not permitted).
  See Also:
    `getBaseStroke()`

### getItemOutlineStroke

    java.awt.Stroke getItemOutlineStroke(int row,
                                         int column)

  Returns the stroke used to outline data items.

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

  Parameters:
    `row` - the row (or series) index (zero-based).
    `column` - the column (or category) index (zero-based).
  Returns:
    The stroke (never `null`).

### setOutlineStroke

    void setOutlineStroke(java.awt.Stroke stroke)

  Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesOutlineStroke(int, Stroke)` and `setBaseOutlineStroke(Stroke)`.

  Sets the outline stroke for ALL series and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `stroke` - the stroke (`null` permitted).

### getSeriesOutlineStroke

    java.awt.Stroke getSeriesOutlineStroke(int series)

  Returns the stroke used to outline the items in a series.

  Parameters:
    `series` - the series (zero-based index).
  Returns:
    The stroke (possibly `null`).
  See Also:
    `setSeriesOutlineStroke(int, Stroke)`

### setSeriesOutlineStroke

    void setSeriesOutlineStroke(int series,
                                java.awt.Stroke stroke)

  Sets the outline stroke used for a series and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `series` - the series index (zero-based).
    `stroke` - the stroke (`null` permitted).
  See Also:
    `getSeriesOutlineStroke(int)`

### getBaseOutlineStroke

    java.awt.Stroke getBaseOutlineStroke()

  Returns the base outline stroke.

  Returns:
    The stroke (never `null`).
  See Also:
    `setBaseOutlineStroke(Stroke)`

### setBaseOutlineStroke

    void setBaseOutlineStroke(java.awt.Stroke stroke)

  Sets the base outline stroke and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `stroke` - the stroke (`null` not permitted).
  See Also:
    `getBaseOutlineStroke()`

### getItemShape

    java.awt.Shape getItemShape(int row,
                                int column)

  Returns a shape used to represent a data item.

  Parameters:
    `row` - the row (or series) index (zero-based).
    `column` - the column (or category) index (zero-based).
  Returns:
    The shape (never `null`).

### setShape

    void setShape(java.awt.Shape shape)

  Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesShape(int, Shape)` and `setBaseShape(Shape)`.

  Sets the shape for ALL series (optional) and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `shape` - the shape (`null` permitted).

### getSeriesShape

    java.awt.Shape getSeriesShape(int series)

  Returns a shape used to represent the items in a series.

  Parameters:
    `series` - the series (zero-based index).
  Returns:
    The shape (possibly `null`).
  See Also:
    `setSeriesShape(int, Shape)`

### setSeriesShape

    void setSeriesShape(int series,
                        java.awt.Shape shape)

  Sets the shape used for a series and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `series` - the series index (zero-based).
    `shape` - the shape (`null` permitted).
  See Also:
    `getSeriesShape(int)`

### getBaseShape

    java.awt.Shape getBaseShape()

  Returns the base shape.

  Returns:
    The shape (never `null`).
  See Also:
    `setBaseShape(Shape)`

### setBaseShape

    void setBaseShape(java.awt.Shape shape)

  Sets the base shape and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `shape` - the shape (`null` not permitted).
  See Also:
    `getBaseShape()`

### isItemLabelVisible

    boolean isItemLabelVisible(int row,
                               int column)

  Returns `true` if an item label is visible, and `false` otherwise.

  Parameters:
    `row` - the row index (zero-based).
    `column` - the column index (zero-based).
  Returns:
    A boolean.

### setItemLabelsVisible

    void setItemLabelsVisible(boolean visible)

  Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesItemLabelsVisible(int, Boolean)` and `setBaseItemLabelsVisible(boolean)`.

  Sets a flag that controls whether or not the item labels for ALL series are visible.

  Parameters:
    `visible` - the flag.
  See Also:
    `setItemLabelsVisible(Boolean)`

### setItemLabelsVisible

    void setItemLabelsVisible(java.lang.Boolean visible)

  Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesItemLabelsVisible(int, Boolean)` and `setBaseItemLabelsVisible(boolean)`.

  Sets a flag that controls whether or not the item labels for ALL series are visible.

  Parameters:
    `visible` - the flag (`null` permitted).
  See Also:
    `setItemLabelsVisible(boolean)`

### setItemLabelsVisible

    void setItemLabelsVisible(java.lang.Boolean visible,
                              boolean notify)

  Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesItemLabelsVisible(int, Boolean, boolean)` and `setBaseItemLabelsVisible(Boolean, boolean)`.

  Sets the visibility of item labels for ALL series and, if requested, sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `visible` - a flag that controls whether or not the item labels are visible (`null` permitted).
    `notify` - a flag that controls whether or not listeners are notified.

### isSeriesItemLabelsVisible

    boolean isSeriesItemLabelsVisible(int series)

  Returns `true` if the item labels for a series are visible, and `false` otherwise.

  Parameters:
    `series` - the series index (zero-based).
  Returns:
    A boolean.
  See Also:
    `setSeriesItemLabelsVisible(int, Boolean)`

### setSeriesItemLabelsVisible

    void setSeriesItemLabelsVisible(int series,
                                    boolean visible)

  Sets a flag that controls the visibility of the item labels for a series.

  Parameters:
    `series` - the series index (zero-based).
    `visible` - the flag.
  See Also:
    `isSeriesItemLabelsVisible(int)`

### setSeriesItemLabelsVisible

    void setSeriesItemLabelsVisible(int series,
                                    java.lang.Boolean visible)

  Sets a flag that controls the visibility of the item labels for a series.

  Parameters:
    `series` - the series index (zero-based).
    `visible` - the flag (`null` permitted).
  See Also:
    `isSeriesItemLabelsVisible(int)`

### setSeriesItemLabelsVisible

    void setSeriesItemLabelsVisible(int series,
                                    java.lang.Boolean visible,
                                    boolean notify)

  Sets the visibility of item labels for a series and, if requested, sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `series` - the series index (zero-based).
    `visible` - the visible flag.
    `notify` - a flag that controls whether or not listeners are notified.
  See Also:
    `isSeriesItemLabelsVisible(int)`

### getBaseItemLabelsVisible

    java.lang.Boolean getBaseItemLabelsVisible()

  Returns the base setting for item label visibility. A `null` result should be interpreted as equivalent to `Boolean.FALSE` (this is an error in the API design, the return value should have been a boolean primitive).

  Returns:
    A flag (possibly `null`).
  See Also:
    `setBaseItemLabelsVisible(Boolean)`

### setBaseItemLabelsVisible

    void setBaseItemLabelsVisible(boolean visible)

  Sets the base flag that controls whether or not item labels are visible and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `visible` - the flag.
  See Also:
    `getBaseItemLabelsVisible()`

### setBaseItemLabelsVisible

    void setBaseItemLabelsVisible(java.lang.Boolean visible)

  Sets the base setting for item label visibility and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `visible` - the flag (`null` permitted).
  See Also:
    `getBaseItemLabelsVisible()`

### setBaseItemLabelsVisible

    void setBaseItemLabelsVisible(java.lang.Boolean visible,
                                  boolean notify)

  Sets the base visibility for item labels and, if requested, sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `visible` - the visibility flag.
    `notify` - a flag that controls whether or not listeners are notified.
  See Also:
    `getBaseItemLabelsVisible()`

### getItemLabelGenerator

    CategoryItemLabelGenerator getItemLabelGenerator(int series,
                                                     int item)

  Returns the item label generator for the specified data item.

  Parameters:
    `series` - the series index (zero-based).
    `item` - the item index (zero-based).
  Returns:
    The generator (possibly `null`).

### setItemLabelGenerator

    void setItemLabelGenerator(CategoryItemLabelGenerator generator)

  Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesItemLabelGenerator(int, CategoryItemLabelGenerator)` and `setBaseItemLabelGenerator(CategoryItemLabelGenerator)`.

  Sets the item label generator for ALL series and sends a `RendererChangeEvent` to all registered listeners. This overrides the per-series settings.

  Parameters:
    `generator` - the generator (`null` permitted).

### getSeriesItemLabelGenerator

    CategoryItemLabelGenerator getSeriesItemLabelGenerator(int series)

  Returns the item label generator for a series.

  Parameters:
    `series` - the series index (zero-based).
  Returns:
    The label generator (possibly `null`).
  See Also:
    `setSeriesItemLabelGenerator(int, CategoryItemLabelGenerator)`

### setSeriesItemLabelGenerator

    void setSeriesItemLabelGenerator(int series,
                                     CategoryItemLabelGenerator generator)

  Sets the item label generator for a series and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `series` - the series index (zero-based).
    `generator` - the generator.
  See Also:
    `getSeriesItemLabelGenerator(int)`

### getBaseItemLabelGenerator

    CategoryItemLabelGenerator getBaseItemLabelGenerator()

  Returns the base item label generator.

  Returns:
    The generator (possibly `null`).
  See Also:
    `setBaseItemLabelGenerator(CategoryItemLabelGenerator)`

### setBaseItemLabelGenerator

    void setBaseItemLabelGenerator(CategoryItemLabelGenerator generator)

  Sets the base item label generator and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `generator` - the generator (`null` permitted).
  See Also:
    `getBaseItemLabelGenerator()`

### getToolTipGenerator

    CategoryToolTipGenerator getToolTipGenerator(int row,
                                                 int column)

  Returns the tool tip generator that should be used for the specified item. This method looks up the generator using the "three-layer" approach outlined in the general description of this interface.

  Parameters:
    `row` - the row index (zero-based).
    `column` - the column index (zero-based).
  Returns:
    The generator (possibly `null`).

### getToolTipGenerator

    CategoryToolTipGenerator getToolTipGenerator()

  Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `getSeriesToolTipGenerator(int)` and `getBaseToolTipGenerator()`.

  Returns the tool tip generator that will be used for ALL items in the dataset (the "layer 0" generator).

  Returns:
    A tool tip generator (possibly `null`).
  See Also:
    `setToolTipGenerator(CategoryToolTipGenerator)`

### setToolTipGenerator

    void setToolTipGenerator(CategoryToolTipGenerator generator)

  Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesToolTipGenerator(int, CategoryToolTipGenerator)` and `setBaseToolTipGenerator(CategoryToolTipGenerator)`.

  Sets the tool tip generator for ALL series and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `generator` - the generator (`null` permitted).
  See Also:
    `getToolTipGenerator()`

### getSeriesToolTipGenerator

    CategoryToolTipGenerator getSeriesToolTipGenerator(int series)

  Returns the tool tip generator for the specified series (a "layer 1" generator).

  Parameters:
    `series` - the series index (zero-based).
  Returns:
    The tool tip generator (possibly `null`).
  See Also:
    `setSeriesToolTipGenerator(int, CategoryToolTipGenerator)`

### setSeriesToolTipGenerator

    void setSeriesToolTipGenerator(int series,
                                   CategoryToolTipGenerator generator)

  Sets the tool tip generator for a series and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `series` - the series index (zero-based).
    `generator` - the generator (`null` permitted).
  See Also:
    `getSeriesToolTipGenerator(int)`

### getBaseToolTipGenerator

    CategoryToolTipGenerator getBaseToolTipGenerator()

  Returns the base tool tip generator (the "layer 2" generator).

  Returns:
    The tool tip generator (possibly `null`).
  See Also:
    `setBaseToolTipGenerator(CategoryToolTipGenerator)`

### setBaseToolTipGenerator

    void setBaseToolTipGenerator(CategoryToolTipGenerator generator)

  Sets the base tool tip generator and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `generator` - the generator (`null` permitted).
  See Also:
    `getBaseToolTipGenerator()`

### getItemLabelFont

    java.awt.Font getItemLabelFont(int row,
                                   int column)

  Returns the font for an item label.

  Parameters:
    `row` - the row index (zero-based).
    `column` - the column index (zero-based).
  Returns:
    The font (never `null`).

### getItemLabelFont

    java.awt.Font getItemLabelFont()

  Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `getSeriesItemLabelFont(int)` and `getBaseItemLabelFont()`.

  Returns the font used for all item labels. This may be `null`, in which case the per series font settings will apply.

  Returns:
    The font (possibly `null`).
  See Also:
    `setItemLabelFont(Font)`

### setItemLabelFont

    void setItemLabelFont(java.awt.Font font)

  Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesItemLabelFont(int, Font)` and `setBaseItemLabelFont(Font)`.

  Sets the item label font for ALL series and sends a `RendererChangeEvent` to all registered listeners. You can set this to `null` if you prefer to set the font on a per series basis.

  Parameters:
    `font` - the font (`null` permitted).
  See Also:
    `getItemLabelFont()`

### getSeriesItemLabelFont

    java.awt.Font getSeriesItemLabelFont(int series)

  Returns the font for all the item labels in a series.

  Parameters:
    `series` - the series index (zero-based).
  Returns:
    The font (possibly `null`).
  See Also:
    `setSeriesItemLabelFont(int, Font)`

### setSeriesItemLabelFont

    void setSeriesItemLabelFont(int series,
                                java.awt.Font font)

  Sets the item label font for a series and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `series` - the series index (zero-based).
    `font` - the font (`null` permitted).
  See Also:
    `getSeriesItemLabelFont(int)`

### getBaseItemLabelFont

    java.awt.Font getBaseItemLabelFont()

  Returns the base item label font (this is used when no other font setting is available).

  Returns:
    The font (`never` null).
  See Also:
    `setBaseItemLabelFont(Font)`

### setBaseItemLabelFont

    void setBaseItemLabelFont(java.awt.Font font)

  Sets the base item label font and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `font` - the font (`null` not permitted).
  See Also:
    `getBaseItemLabelFont()`

### getItemLabelPaint

    java.awt.Paint getItemLabelPaint(int row,
                                     int column)

  Returns the paint used to draw an item label.

  Parameters:
    `row` - the row index (zero based).
    `column` - the column index (zero based).
  Returns:
    The paint (never `null`).

### getItemLabelPaint

    java.awt.Paint getItemLabelPaint()

  Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `getSeriesItemLabelPaint(int)` and `getBaseItemLabelPaint()`.

  Returns the paint used for all item labels. This may be `null`, in which case the per series paint settings will apply.

  Returns:
    The paint (possibly `null`).
  See Also:
    `setItemLabelPaint(Paint)`

### setItemLabelPaint

    void setItemLabelPaint(java.awt.Paint paint)

  Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesItemLabelPaint(int, Paint)` and `setBaseItemLabelPaint(Paint)`.

  Sets the item label paint for ALL series and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `paint` - the paint (`null` permitted).
  See Also:
    `getItemLabelPaint()`

### getSeriesItemLabelPaint

    java.awt.Paint getSeriesItemLabelPaint(int series)

  Returns the paint used to draw the item labels for a series.

  Parameters:
    `series` - the series index (zero based).
  Returns:
    The paint (possibly `null`).
  See Also:
    `setSeriesItemLabelPaint(int, Paint)`

### setSeriesItemLabelPaint

    void setSeriesItemLabelPaint(int series,
                                 java.awt.Paint paint)

  Sets the item label paint for a series and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `series` - the series (zero based index).
    `paint` - the paint (`null` permitted).
  See Also:
    `getSeriesItemLabelPaint(int)`

### getBaseItemLabelPaint

    java.awt.Paint getBaseItemLabelPaint()

  Returns the base item label paint.

  Returns:
    The paint (never `null`).
  See Also:
    `setBaseItemLabelPaint(Paint)`

### setBaseItemLabelPaint

    void setBaseItemLabelPaint(java.awt.Paint paint)

  Sets the base item label paint and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `paint` - the paint (`null` not permitted).
  See Also:
    `getBaseItemLabelPaint()`

### getPositiveItemLabelPosition

    ItemLabelPosition getPositiveItemLabelPosition(int row,
                                                   int column)

  Returns the item label position for positive values.

  Parameters:
    `row` - the row index (zero-based).
    `column` - the column index (zero-based).
  Returns:
    The item label position (never `null`).

### getPositiveItemLabelPosition

    ItemLabelPosition getPositiveItemLabelPosition()

  Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `getSeriesPositiveItemLabelPosition(int)` and `getBasePositiveItemLabelPosition()`.

  Returns the item label position for positive values in ALL series.

  Returns:
    The item label position (possibly `null`).
  See Also:
    `setPositiveItemLabelPosition(ItemLabelPosition)`

### setPositiveItemLabelPosition

    void setPositiveItemLabelPosition(ItemLabelPosition position)

  Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesPositiveItemLabelPosition(int, ItemLabelPosition)` and `setBasePositiveItemLabelPosition(ItemLabelPosition)`.

  Sets the item label position for positive values in ALL series, and sends a `RendererChangeEvent` to all registered listeners. You need to set this to `null` to expose the settings for individual series.

  Parameters:
    `position` - the position (`null` permitted).
  See Also:
    `getPositiveItemLabelPosition()`

### setPositiveItemLabelPosition

    void setPositiveItemLabelPosition(ItemLabelPosition position,
                                      boolean notify)

  Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesPositiveItemLabelPosition(int, ItemLabelPosition, boolean)` and `setBasePositiveItemLabelPosition( ItemLabelPosition, boolean)`.

  Sets the positive item label position for ALL series and (if requested) sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `position` - the position (`null` permitted).
    `notify` - notify registered listeners?
  See Also:
    `getPositiveItemLabelPosition()`

### getSeriesPositiveItemLabelPosition

    ItemLabelPosition getSeriesPositiveItemLabelPosition(int series)

  Returns the item label position for all positive values in a series.

  Parameters:
    `series` - the series index (zero-based).
  Returns:
    The item label position.
  See Also:
    `setSeriesPositiveItemLabelPosition(int, ItemLabelPosition)`

### setSeriesPositiveItemLabelPosition

    void setSeriesPositiveItemLabelPosition(int series,
                                            ItemLabelPosition position)

  Sets the item label position for all positive values in a series and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `series` - the series index (zero-based).
    `position` - the position (`null` permitted).
  See Also:
    `getSeriesPositiveItemLabelPosition(int)`

### setSeriesPositiveItemLabelPosition

    void setSeriesPositiveItemLabelPosition(int series,
                                            ItemLabelPosition position,
                                            boolean notify)

  Sets the item label position for all positive values in a series and (if requested) sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `series` - the series index (zero-based).
    `position` - the position (`null` permitted).
    `notify` - notify registered listeners?
  See Also:
    `getSeriesPositiveItemLabelPosition(int)`

### getBasePositiveItemLabelPosition

    ItemLabelPosition getBasePositiveItemLabelPosition()

  Returns the base positive item label position.

  Returns:
    The position.
  See Also:
    `setBasePositiveItemLabelPosition(ItemLabelPosition)`

### setBasePositiveItemLabelPosition

    void setBasePositiveItemLabelPosition(ItemLabelPosition position)

  Sets the base positive item label position.

  Parameters:
    `position` - the position.
  See Also:
    `getBasePositiveItemLabelPosition()`

### setBasePositiveItemLabelPosition

    void setBasePositiveItemLabelPosition(ItemLabelPosition position,
                                          boolean notify)

  Sets the base positive item label position and, if requested, sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `position` - the position.
    `notify` - notify registered listeners?
  See Also:
    `getBasePositiveItemLabelPosition()`

### getNegativeItemLabelPosition

    ItemLabelPosition getNegativeItemLabelPosition(int row,
                                                   int column)

  Returns the item label position for negative values. This method can be overridden to provide customisation of the item label position for individual data items.

  Parameters:
    `row` - the row index (zero-based).
    `column` - the column (zero-based).
  Returns:
    The item label position.

### getNegativeItemLabelPosition

    ItemLabelPosition getNegativeItemLabelPosition()

  Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `getSeriesNegativeItemLabelPosition(int)` and `getBaseNegativeItemLabelPosition()`.

  Returns the item label position for negative values in ALL series.

  Returns:
    The item label position (possibly `null`).
  See Also:
    `setNegativeItemLabelPosition(ItemLabelPosition)`

### setNegativeItemLabelPosition

    void setNegativeItemLabelPosition(ItemLabelPosition position)

  Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesNegativeItemLabelPosition(int, ItemLabelPosition)` and `setBaseNegativeItemLabelPosition(ItemLabelPosition)`.

  Sets the item label position for negative values in ALL series, and sends a `RendererChangeEvent` to all registered listeners. You need to set this to `null` to expose the settings for individual series.

  Parameters:
    `position` - the position (`null` permitted).
  See Also:
    `getNegativeItemLabelPosition()`

### setNegativeItemLabelPosition

    void setNegativeItemLabelPosition(ItemLabelPosition position,
                                      boolean notify)

  Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesNegativeItemLabelPosition(int, ItemLabelPosition, boolean)` and `setBaseNegativeItemLabelPosition( ItemLabelPosition, boolean)`.

  Sets the item label position for negative values in ALL series and (if requested) sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `position` - the position (`null` permitted).
    `notify` - notify registered listeners?
  See Also:
    `getNegativeItemLabelPosition()`

### getSeriesNegativeItemLabelPosition

    ItemLabelPosition getSeriesNegativeItemLabelPosition(int series)

  Returns the item label position for all negative values in a series.

  Parameters:
    `series` - the series index (zero-based).
  Returns:
    The item label position.
  See Also:
    `setSeriesNegativeItemLabelPosition(int, ItemLabelPosition)`

### setSeriesNegativeItemLabelPosition

    void setSeriesNegativeItemLabelPosition(int series,
                                            ItemLabelPosition position)

  Sets the item label position for negative values in a series and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `series` - the series index (zero-based).
    `position` - the position (`null` permitted).
  See Also:
    `getSeriesNegativeItemLabelPosition(int)`

### setSeriesNegativeItemLabelPosition

    void setSeriesNegativeItemLabelPosition(int series,
                                            ItemLabelPosition position,
                                            boolean notify)

  Sets the item label position for negative values in a series and (if requested) sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `series` - the series index (zero-based).
    `position` - the position (`null` permitted).
    `notify` - notify registered listeners?
  See Also:
    `getSeriesNegativeItemLabelPosition(int)`

### getBaseNegativeItemLabelPosition

    ItemLabelPosition getBaseNegativeItemLabelPosition()

  Returns the base item label position for negative values.

  Returns:
    The position.
  See Also:
    `setBaseNegativeItemLabelPosition(ItemLabelPosition)`

### setBaseNegativeItemLabelPosition

    void setBaseNegativeItemLabelPosition(ItemLabelPosition position)

  Sets the base item label position for negative values and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `position` - the position.
  See Also:
    `getBaseNegativeItemLabelPosition()`

### setBaseNegativeItemLabelPosition

    void setBaseNegativeItemLabelPosition(ItemLabelPosition position,
                                          boolean notify)

  Sets the base negative item label position and, if requested, sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `position` - the position.
    `notify` - notify registered listeners?
  See Also:
    `getBaseNegativeItemLabelPosition()`

### getItemURLGenerator

    CategoryURLGenerator getItemURLGenerator(int series,
                                             int item)

  Returns the URL generator for an item.

  Parameters:
    `series` - the series index (zero-based).
    `item` - the item index (zero-based).
  Returns:
    The item URL generator.

### setItemURLGenerator

    void setItemURLGenerator(CategoryURLGenerator generator)

  Deprecated. This method should no longer be used (as of version 1.0.6). It is sufficient to rely on `setSeriesItemURLGenerator(int, CategoryURLGenerator)` and `setBaseItemURLGenerator(CategoryURLGenerator)`.

  Sets the item URL generator for ALL series.

  Parameters:
    `generator` - the generator.
  See Also:
    `getSeriesItemURLGenerator(int)`

### getSeriesItemURLGenerator

    CategoryURLGenerator getSeriesItemURLGenerator(int series)

  Returns the item URL generator for a series.

  Parameters:
    `series` - the series index (zero-based).
  Returns:
    The URL generator.
  See Also:
    `setSeriesItemURLGenerator(int, CategoryURLGenerator)`

### setSeriesItemURLGenerator

    void setSeriesItemURLGenerator(int series,
                                   CategoryURLGenerator generator)

  Sets the item URL generator for a series.

  Parameters:
    `series` - the series index (zero-based).
    `generator` - the generator.
  See Also:
    `getSeriesItemURLGenerator(int)`

### getBaseItemURLGenerator

    CategoryURLGenerator getBaseItemURLGenerator()

  Returns the base item URL generator.

  Returns:
    The item URL generator (possibly `null`).
  See Also:
    `setBaseItemURLGenerator(CategoryURLGenerator)`

### setBaseItemURLGenerator

    void setBaseItemURLGenerator(CategoryURLGenerator generator)

  Sets the base item URL generator and sends a `RendererChangeEvent` to all registered listeners.

  Parameters:
    `generator` - the item URL generator (`null` permitted).
  See Also:
    `getBaseItemURLGenerator()`

### getLegendItem

    LegendItem getLegendItem(int datasetIndex,
                             int series)

  Returns a legend item for a series. This method can return `null`, in which case the series will have no entry in the legend.

  Parameters:
    `datasetIndex` - the dataset index (zero-based).
    `series` - the series (zero-based index).
  Returns:
    The legend item (possibly `null`).

### drawBackground

    void drawBackground(java.awt.Graphics2D g2,
                        CategoryPlot plot,
                        java.awt.geom.Rectangle2D dataArea)

  Draws a background for the data area.

  Parameters:
    `g2` - the graphics device.
    `plot` - the plot.
    `dataArea` - the data area.

### drawOutline

    void drawOutline(java.awt.Graphics2D g2,
                     CategoryPlot plot,
                     java.awt.geom.Rectangle2D dataArea)

  Draws an outline for the data area.

  Parameters:
    `g2` - the graphics device.
    `plot` - the plot.
    `dataArea` - the data area.

### drawItem

    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)

  Draws a single data item.

  Parameters:
    `g2` - the graphics device.
    `state` - state information for one chart.
    `dataArea` - the data plot area.
    `plot` - the plot.
    `domainAxis` - the domain axis.
    `rangeAxis` - the range axis.
    `dataset` - the data.
    `row` - the row index (zero-based).
    `column` - the column index (zero-based).
    `pass` - the pass index.

### drawDomainGridline

    void drawDomainGridline(java.awt.Graphics2D g2,
                            CategoryPlot plot,
                            java.awt.geom.Rectangle2D dataArea,
                            double value)

  Draws a grid line against the domain axis.

  Parameters:
    `g2` - the graphics device.
    `plot` - the plot.
    `dataArea` - the area for plotting data (not yet adjusted for any 3D effect).
    `value` - the value.
  See Also:
    `drawRangeGridline(Graphics2D, CategoryPlot, ValueAxis, Rectangle2D, double)`

### drawRangeGridline

    void drawRangeGridline(java.awt.Graphics2D g2,
                           CategoryPlot plot,
                           ValueAxis axis,
                           java.awt.geom.Rectangle2D dataArea,
                           double value)

  Draws a grid line against the range axis.

  Parameters:
    `g2` - the graphics device.
    `plot` - the plot.
    `axis` - the value axis.
    `dataArea` - the area for plotting data (not yet adjusted for any 3D effect).
    `value` - the value.
  See Also:
    `drawDomainGridline(Graphics2D, CategoryPlot, Rectangle2D, double)`

### drawDomainMarker

    void drawDomainMarker(java.awt.Graphics2D g2,
                          CategoryPlot plot,
                          CategoryAxis axis,
                          CategoryMarker marker,
                          java.awt.geom.Rectangle2D dataArea)

  Draws a line (or some other marker) to indicate a particular category on the domain axis.

  Parameters:
    `g2` - the graphics device.
    `plot` - the plot.
    `axis` - the category axis.
    `marker` - the marker.
    `dataArea` - the area for plotting data (not including 3D effect).
  See Also:
    `drawRangeMarker(Graphics2D, CategoryPlot, ValueAxis, Marker, Rectangle2D)`

### drawRangeMarker

    void drawRangeMarker(java.awt.Graphics2D g2,
                         CategoryPlot plot,
                         ValueAxis axis,
                         Marker marker,
                         java.awt.geom.Rectangle2D dataArea)

  Draws a line (or some other marker) to indicate a particular value on the range axis.

  Parameters:
    `g2` - the graphics device.
    `plot` - the plot.
    `axis` - the value axis.
    `marker` - the marker.
    `dataArea` - the area for plotting data (not including 3D effect).
  See Also:
    `drawDomainMarker(Graphics2D, CategoryPlot, CategoryAxis, CategoryMarker, Rectangle2D)`

### getItemMiddle

    double getItemMiddle(java.lang.Comparable rowKey,
                         java.lang.Comparable columnKey,
                         CategoryDataset dataset,
                         CategoryAxis axis,
                         java.awt.geom.Rectangle2D area,
                         org.jfree.ui.RectangleEdge edge)

  Returns the Java2D coordinate for the middle of the specified data item.

  Parameters:
    `rowKey` - the row key.
    `columnKey` - the column key.
    `dataset` - the dataset.
    `axis` - the axis.
    `area` - the data area.
    `edge` - the edge along which the axis lies.
  Returns:
    The Java2D coordinate for the middle of the item.
  Since:
    1.0.11