org.jfree.chart.renderer.category

## Class LevelRenderer

- java.lang.Object
- - org.jfree.chart.renderer.AbstractRenderer
  - - org.jfree.chart.renderer.category.AbstractCategoryItemRenderer
    - - org.jfree.chart.renderer.category.LevelRenderer

All Implemented Interfaces:
  java.io.Serializable, java.lang.Cloneable, LegendItemSource, CategoryItemRenderer, org.jfree.util.PublicCloneable

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

A `CategoryItemRenderer` that draws individual data items as horizontal lines, spaced in the same way as bars in a bar chart. The example shown here is generated by the `OverlaidBarChartDemo2.java` program included in the JFreeChart Demo Collection:

See Also:
  Serialized Form

### Field Summary

Fields
`static double` `DEFAULT_ITEM_MARGIN` The default item margin percentage.

### 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
`LevelRenderer()` Creates a new renderer with default settings.

### Method Summary

Methods
`protected double` `calculateBarW0(CategoryPlot plot, PlotOrientation orientation, java.awt.geom.Rectangle2D dataArea, CategoryAxis domainAxis, CategoryItemRendererState state, int row, int column)` Calculates the coordinate of the first "side" of a bar.
`protected void` `calculateItemWidth(CategoryPlot plot, java.awt.geom.Rectangle2D dataArea, int rendererIndex, CategoryItemRendererState state)` Calculates the bar width and stores it in the renderer state.
`protected double` `calculateSeriesWidth(double space, CategoryAxis axis, int categories, int series)` Calculates the available space for each series.
`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 the bar for a single (series, category) data item.
`boolean` `equals(java.lang.Object obj)` Tests an object for equality with this instance.
`double` `getItemMargin()` Returns the item margin.
`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.
`double` `getMaximumItemWidth()` Returns the maximum width, as a percentage of the available drawing space.
`double` `getMaxItemWidth()` Deprecated. Use `getMaximumItemWidth()` instead.
`int` `hashCode()` Returns a hash code for this instance.
`CategoryItemRendererState` `initialise(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, CategoryPlot plot, int rendererIndex, PlotRenderingInfo info)` Initialises the renderer and returns a state object that will be passed to subsequent calls to the drawItem method.
`void` `setItemMargin(double percent)` Sets the item margin and sends a `RendererChangeEvent` to all registered listeners.
`void` `setMaximumItemWidth(double percent)` Sets the maximum item width, which is specified as a percentage of the available space for all items, and sends a `RendererChangeEvent` to all registered listeners.
`void` `setMaxItemWidth(double percent)` Deprecated. Use `setMaximumItemWidth(double)` instead.

### Methods inherited from class org.jfree.chart.renderer.category.AbstractCategoryItemRenderer

`addEntity, addItemEntity, calculateDomainMarkerTextAnchorPoint, calculateRangeMarkerTextAnchorPoint, clone, createState, drawBackground, drawDomainGridline, drawDomainMarker, drawItemLabel, drawOutline, drawRangeGridline, drawRangeLine, drawRangeMarker, findRangeBounds, findRangeBounds, getBaseItemLabelGenerator, getBaseItemURLGenerator, getBaseToolTipGenerator, getColumnCount, getDomainAxis, getDrawingSupplier, getItemLabelGenerator, getItemURLGenerator, getLegendItem, getLegendItemLabelGenerator, getLegendItems, getLegendItemToolTipGenerator, getLegendItemURLGenerator, getPassCount, getPlot, getRangeAxis, getRowCount, getSeriesItemLabelGenerator, getSeriesItemURLGenerator, getSeriesToolTipGenerator, getToolTipGenerator, getToolTipGenerator, setBaseItemLabelGenerator, setBaseItemURLGenerator, setBaseToolTipGenerator, setItemLabelGenerator, setItemURLGenerator, setLegendItemLabelGenerator, setLegendItemToolTipGenerator, setLegendItemURLGenerator, setPlot, setSeriesItemLabelGenerator, setSeriesItemURLGenerator, setSeriesToolTipGenerator, setToolTipGenerator, 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, 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.util.PublicCloneable

`clone`

### Methods inherited from interface org.jfree.chart.renderer.category.CategoryItemRenderer

`addChangeListener, getBaseItemLabelFont, getBaseItemLabelPaint, getBaseItemLabelsVisible, getBaseNegativeItemLabelPosition, getBaseOutlinePaint, getBaseOutlineStroke, getBasePaint, getBasePositiveItemLabelPosition, getBaseSeriesVisible, getBaseSeriesVisibleInLegend, getBaseShape, getBaseStroke, getItemLabelFont, getItemLabelFont, getItemLabelPaint, getItemLabelPaint, getItemOutlinePaint, getItemOutlineStroke, getItemPaint, getItemShape, getItemStroke, getItemVisible, getNegativeItemLabelPosition, getNegativeItemLabelPosition, getPositiveItemLabelPosition, getPositiveItemLabelPosition, getSeriesItemLabelFont, getSeriesItemLabelPaint, getSeriesNegativeItemLabelPosition, getSeriesOutlinePaint, getSeriesOutlineStroke, getSeriesPaint, getSeriesPositiveItemLabelPosition, getSeriesShape, getSeriesStroke, getSeriesVisible, getSeriesVisible, getSeriesVisibleInLegend, getSeriesVisibleInLegend, isItemLabelVisible, isSeriesItemLabelsVisible, isSeriesVisible, isSeriesVisibleInLegend, removeChangeListener, setBaseItemLabelFont, setBaseItemLabelPaint, setBaseItemLabelsVisible, setBaseItemLabelsVisible, setBaseItemLabelsVisible, setBaseNegativeItemLabelPosition, setBaseNegativeItemLabelPosition, setBaseOutlinePaint, setBaseOutlineStroke, setBasePaint, setBasePositiveItemLabelPosition, setBasePositiveItemLabelPosition, setBaseSeriesVisible, setBaseSeriesVisible, setBaseSeriesVisibleInLegend, setBaseSeriesVisibleInLegend, setBaseShape, setBaseStroke, setItemLabelFont, setItemLabelPaint, setItemLabelsVisible, setItemLabelsVisible, setItemLabelsVisible, setNegativeItemLabelPosition, setNegativeItemLabelPosition, setOutlinePaint, setOutlineStroke, setPaint, setPositiveItemLabelPosition, setPositiveItemLabelPosition, setSeriesItemLabelFont, setSeriesItemLabelPaint, setSeriesItemLabelsVisible, setSeriesItemLabelsVisible, setSeriesItemLabelsVisible, setSeriesNegativeItemLabelPosition, setSeriesNegativeItemLabelPosition, setSeriesOutlinePaint, setSeriesOutlineStroke, setSeriesPaint, setSeriesPositiveItemLabelPosition, setSeriesPositiveItemLabelPosition, setSeriesShape, setSeriesStroke, setSeriesVisible, setSeriesVisible, setSeriesVisible, setSeriesVisible, setSeriesVisibleInLegend, setSeriesVisibleInLegend, setSeriesVisibleInLegend, setSeriesVisibleInLegend, setShape, setStroke`

### Field Detail

#### DEFAULT_ITEM_MARGIN

    public static final double DEFAULT_ITEM_MARGIN

The default item margin percentage.

See Also:
  Constant Field Values

### Constructor Detail

#### LevelRenderer

    public LevelRenderer()

Creates a new renderer with default settings.

### Method Detail

#### getItemMargin

    public double getItemMargin()

Returns the item margin.

Returns:
  The margin.
See Also:
  `setItemMargin(double)`

#### setItemMargin

    public void setItemMargin(double percent)

Sets the item margin and sends a `RendererChangeEvent` to all registered listeners. The value is expressed as a percentage of the available width for plotting all the bars, with the resulting amount to be distributed between all the bars evenly.

Parameters:
  `percent` - the new margin.
See Also:
  `getItemMargin()`

#### getMaximumItemWidth

    public double getMaximumItemWidth()

Returns the maximum width, as a percentage of the available drawing space.

Returns:
  The maximum width.
See Also:
  `setMaximumItemWidth(double)`

#### setMaximumItemWidth

    public void setMaximumItemWidth(double percent)

Sets the maximum item width, which is specified as a percentage of the available space for all items, and sends a `RendererChangeEvent` to all registered listeners.

Parameters:
  `percent` - the percent.
See Also:
  `getMaximumItemWidth()`

#### initialise

    public CategoryItemRendererState initialise(java.awt.Graphics2D g2,
                                       java.awt.geom.Rectangle2D dataArea,
                                       CategoryPlot plot,
                                       int rendererIndex,
                                       PlotRenderingInfo info)

Initialises the renderer and returns a state object that will be passed to subsequent calls to the drawItem method.

This method gets called once at the start of the process of drawing a chart.

Specified by:
  `initialise` in interface `CategoryItemRenderer`
Overrides:
  `initialise` in class `AbstractCategoryItemRenderer`
Parameters:
  `g2` - the graphics device.
  `dataArea` - the area in which the data is to be plotted.
  `plot` - the plot.
  `rendererIndex` - the renderer index.
  `info` - collects chart rendering information for return to caller.
Returns:
  The renderer state.

#### calculateItemWidth

    protected void calculateItemWidth(CategoryPlot plot,
                          java.awt.geom.Rectangle2D dataArea,
                          int rendererIndex,
                          CategoryItemRendererState state)

Calculates the bar width and stores it in the renderer state.

Parameters:
  `plot` - the plot.
  `dataArea` - the data area.
  `rendererIndex` - the renderer index.
  `state` - the renderer state.

#### calculateBarW0

    protected double calculateBarW0(CategoryPlot plot,
                        PlotOrientation orientation,
                        java.awt.geom.Rectangle2D dataArea,
                        CategoryAxis domainAxis,
                        CategoryItemRendererState state,
                        int row,
                        int column)

Calculates the coordinate of the first "side" of a bar. This will be the minimum x-coordinate for a vertical bar, and the minimum y-coordinate for a horizontal bar.

Parameters:
  `plot` - the plot.
  `orientation` - the plot orientation.
  `dataArea` - the data area.
  `domainAxis` - the domain axis.
  `state` - the renderer state (has the bar width precalculated).
  `row` - the row index.
  `column` - the column index.
Returns:
  The coordinate.

#### drawItem

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

Draws the bar for a single (series, category) data item.

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

#### calculateSeriesWidth

    protected double calculateSeriesWidth(double space,
                              CategoryAxis axis,
                              int categories,
                              int series)

Calculates the available space for each series.

Parameters:
  `space` - the space along the entire axis (in Java2D units).
  `axis` - the category axis.
  `categories` - the number of categories.
  `series` - the number of series.
Returns:
  The width of one series.

#### getItemMiddle

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

Specified by:
  `getItemMiddle` in interface `CategoryItemRenderer`
Overrides:
  `getItemMiddle` in class `AbstractCategoryItemRenderer`
Parameters:
  `rowKey` - the row key.
  `columnKey` - the column key.
  `dataset` - the dataset.
  `axis` - the axis.
  `area` - the drawing area.
  `edge` - the edge along which the axis lies.
Returns:
  The Java2D coordinate.
Since:
  1.0.11

#### equals

    public boolean equals(java.lang.Object obj)

Tests an object for equality with this instance.

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

#### hashCode

    public int hashCode()

Returns a hash code for this instance.

Overrides:
  `hashCode` in class `AbstractCategoryItemRenderer`
Returns:
  A hash code.

#### getMaxItemWidth

    public double getMaxItemWidth()

Deprecated. Use `getMaximumItemWidth()` instead.
Returns the maximum width, as a percentage of the available drawing space.

Returns:
  The maximum width.

#### setMaxItemWidth

    public void setMaxItemWidth(double percent)

Deprecated. Use `setMaximumItemWidth(double)` instead.
Sets the maximum item width, which is specified as a percentage of the available space for all items, and sends a `RendererChangeEvent` to all registered listeners.

Parameters:
  `percent` - the percent.