## org.jfree.chart.renderer.category
Class WaterfallBarRenderer

    java.lang.Object
      org.jfree.chart.renderer.AbstractRenderer
          org.jfree.chart.renderer.category.AbstractCategoryItemRenderer
              org.jfree.chart.renderer.category.BarRenderer
                  org.jfree.chart.renderer.category.WaterfallBarRenderer

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

    public class WaterfallBarRenderer

extends BarRenderer
implements java.lang.Cloneable, org.jfree.util.PublicCloneable, java.io.Serializable

A renderer that handles the drawing of waterfall bar charts, for use with the `CategoryPlot` class. Note that the bar colors are defined using special methods in this class - the inherited methods (for example, `AbstractRenderer.setSeriesPaint(int, Paint)`) are ignored.

See Also:
  Serialized Form

Field Summary

Fields inherited from class org.jfree.chart.renderer.category.BarRenderer
`BAR_OUTLINE_WIDTH_THRESHOLD, DEFAULT_ITEM_MARGIN`

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
`WaterfallBarRenderer()` Constructs a new renderer with default values for the bar colors.
`WaterfallBarRenderer(java.awt.Paint firstBarPaint, java.awt.Paint positiveBarPaint, java.awt.Paint negativeBarPaint, java.awt.Paint lastBarPaint)` Constructs a new waterfall renderer.

Method Summary
`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.
`Range` `findRangeBounds(CategoryDataset dataset)` Returns the range of values the renderer requires to display all the items from the specified dataset.
`java.awt.Paint` `getFirstBarPaint()` Returns the paint used to draw the first bar.
`java.awt.Paint` `getLastBarPaint()` Returns the paint used to draw the last bar.
`java.awt.Paint` `getNegativeBarPaint()` Returns the paint used to draw bars with negative values.
`java.awt.Paint` `getPositiveBarPaint()` Returns the paint used to draw bars with positive values.
`void` `setFirstBarPaint(java.awt.Paint paint)` Sets the paint that will be used to draw the first bar and sends a `RendererChangeEvent` to all registered listeners.
`void` `setLastBarPaint(java.awt.Paint paint)` Sets the paint that will be used to draw the last bar.
`void` `setNegativeBarPaint(java.awt.Paint paint)` Sets the paint that will be used to draw bars having negative values.
`void` `setPositiveBarPaint(java.awt.Paint paint)` Sets the paint that will be used to draw bars having positive values.

Methods inherited from class org.jfree.chart.renderer.category.BarRenderer

`calculateBarL0L1, calculateBarW0, calculateBarWidth, calculateSeriesWidth, drawItemLabel, getGradientPaintTransformer, getItemMargin, getLegendItem, getLowerClip, getMaxBarWidth, getMinimumBarLength, getNegativeItemLabelPositionFallback, getPositiveItemLabelPositionFallback, getUpperClip, initialise, isDrawBarOutline, setDrawBarOutline, setGradientPaintTransformer, setItemMargin, setMaxBarWidth, setMinimumBarLength, setNegativeItemLabelPositionFallback, setPositiveItemLabelPositionFallback`

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

`clone, drawBackground, drawDomainGridline, drawItemLabel, drawOutline, drawRangeGridline, drawRangeMarker, getBaseItemURLGenerator, getBaseLabelGenerator, getBaseToolTipGenerator, getColumnCount, getDomainAxis, getDrawingSupplier, getItemURLGenerator, getLabelGenerator, getLegendItems, getPassCount, getPlot, getRangeAxis, getRowCount, getSeriesItemURLGenerator, getSeriesLabelGenerator, getSeriesToolTipGenerator, getToolTipGenerator, getToolTipGenerator, hashCode, setBaseItemURLGenerator, setBaseLabelGenerator, setBaseToolTipGenerator, setItemURLGenerator, setLabelGenerator, setPlot, setSeriesItemURLGenerator, setSeriesLabelGenerator, setSeriesToolTipGenerator, setToolTipGenerator`

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

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

Methods inherited from class java.lang.Object
`finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.jfree.util.PublicCloneable
`clone`

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

`addChangeListener, getBaseItemLabelFont, getBaseItemLabelPaint, getBaseItemLabelsVisible, getBaseNegativeItemLabelPosition, getBaseOutlinePaint, getBaseOutlineStroke, getBasePaint, getBasePositiveItemLabelPosition, getBaseShape, getBaseStroke, getItemLabelFont, getItemLabelFont, getItemLabelPaint, getItemLabelPaint, getItemOutlinePaint, getItemOutlineStroke, getItemPaint, getItemShape, getItemStroke, getNegativeItemLabelPosition, getNegativeItemLabelPosition, getPositiveItemLabelPosition, getPositiveItemLabelPosition, getSeriesItemLabelFont, getSeriesItemLabelPaint, getSeriesNegativeItemLabelPosition, getSeriesOutlinePaint, getSeriesOutlineStroke, getSeriesPaint, getSeriesPositiveItemLabelPosition, getSeriesShape, getSeriesStroke, isItemLabelVisible, isSeriesItemLabelsVisible, removeChangeListener, setBaseItemLabelFont, setBaseItemLabelPaint, setBaseItemLabelsVisible, setBaseItemLabelsVisible, setBaseItemLabelsVisible, setBaseNegativeItemLabelPosition, setBaseNegativeItemLabelPosition, setBaseOutlinePaint, setBaseOutlineStroke, setBasePaint, setBasePositiveItemLabelPosition, setBasePositiveItemLabelPosition, 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, setShape, setStroke`

Constructor Detail

### WaterfallBarRenderer

    public WaterfallBarRenderer()

  Constructs a new renderer with default values for the bar colors.

### WaterfallBarRenderer

    public WaterfallBarRenderer(java.awt.Paint firstBarPaint,
                                java.awt.Paint positiveBarPaint,
                                java.awt.Paint negativeBarPaint,
                                java.awt.Paint lastBarPaint)

  Constructs a new waterfall renderer.

  Parameters:
    `firstBarPaint` - the color of the first bar (`null` not permitted).
    `positiveBarPaint` - the color for bars with positive values (`null` not permitted).
    `negativeBarPaint` - the color for bars with negative values (`null` not permitted).
    `lastBarPaint` - the color of the last bar (`null` not permitted).

Method Detail

### findRangeBounds

    public Range findRangeBounds(CategoryDataset dataset)

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

  Specified by:
    `findRangeBounds` in interface `CategoryItemRenderer`
  Overrides:
    `findRangeBounds` in class `AbstractCategoryItemRenderer`
  Parameters:
    `dataset` - the dataset (`null` not permitted).
  Returns:
    The range (or `null` if the dataset is empty).

### getFirstBarPaint

    public java.awt.Paint getFirstBarPaint()

  Returns the paint used to draw the first bar.

  Returns:
    The paint (never `null`).

### setFirstBarPaint

    public void setFirstBarPaint(java.awt.Paint paint)

  Sets the paint that will be used to draw the first bar and sends a `RendererChangeEvent` to all registered listeners.

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

### getLastBarPaint

    public java.awt.Paint getLastBarPaint()

  Returns the paint used to draw the last bar.

  Returns:
    The paint (never `null`).

### setLastBarPaint

    public void setLastBarPaint(java.awt.Paint paint)

  Sets the paint that will be used to draw the last bar.

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

### getPositiveBarPaint

    public java.awt.Paint getPositiveBarPaint()

  Returns the paint used to draw bars with positive values.

  Returns:
    The paint (never `null`).

### setPositiveBarPaint

    public void setPositiveBarPaint(java.awt.Paint paint)

  Sets the paint that will be used to draw bars having positive values.

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

### getNegativeBarPaint

    public java.awt.Paint getNegativeBarPaint()

  Returns the paint used to draw bars with negative values.

  Returns:
    The paint (never `null`).

### setNegativeBarPaint

    public void setNegativeBarPaint(java.awt.Paint paint)

  Sets the paint that will be used to draw bars having negative values.

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

### 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`
  Overrides:
    `drawItem` in class `BarRenderer`
  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.

### equals

    public boolean equals(java.lang.Object obj)

  Tests an object for equality with this instance.

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