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,PublicCloneable
public class WaterfallBarRenderer extends BarRenderer
A renderer that handles the drawing of waterfall bar charts, for use with theCategoryPlotclass. Some quirks to note:- the value in the last category of the dataset should be (redundantly) specified as the sum of the items in the preceding categories - otherwise the final bar in the plot will be incorrectly plotted;
- the bar colors are defined using special methods in this class - the
inherited methods (for example,
AbstractRenderer.setSeriesPaint(int, Paint)) are ignored;
WaterfallChartDemo1.javaprogram included in the JFreeChart Demo Collection:

- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private java.awt.PaintfirstBarPaintThe paint used to draw the first bar.private java.awt.PaintlastBarPaintThe paint used to draw the last bar.private java.awt.PaintnegativeBarPaintThe paint used to draw bars having negative values.private java.awt.PaintpositiveBarPaintThe paint used to draw bars having positive values.private static longserialVersionUIDFor serialization.-
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_ITEM_LABEL_INSETS, 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 Description 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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddrawItem(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.booleanequals(java.lang.Object obj)Tests an object for equality with this instance.RangefindRangeBounds(CategoryDataset dataset)Returns the range of values the renderer requires to display all the items from the specified dataset.java.awt.PaintgetFirstBarPaint()Returns the paint used to draw the first bar.java.awt.PaintgetLastBarPaint()Returns the paint used to draw the last bar.java.awt.PaintgetNegativeBarPaint()Returns the paint used to draw bars with negative values.java.awt.PaintgetPositiveBarPaint()Returns the paint used to draw bars with positive values.private voidreadObject(java.io.ObjectInputStream stream)Provides serialization support.voidsetFirstBarPaint(java.awt.Paint paint)Sets the paint that will be used to draw the first bar and sends aRendererChangeEventto all registered listeners.voidsetLastBarPaint(java.awt.Paint paint)Sets the paint that will be used to draw the last bar and sends aRendererChangeEventto all registered listeners.voidsetNegativeBarPaint(java.awt.Paint paint)Sets the paint that will be used to draw bars having negative values, and sends aRendererChangeEventto all registered listeners.voidsetPositiveBarPaint(java.awt.Paint paint)Sets the paint that will be used to draw bars having positive values.private voidwriteObject(java.io.ObjectOutputStream stream)Provides serialization support.-
Methods inherited from class org.jfree.chart.renderer.category.BarRenderer
calculateBarL0L1, calculateBarW0, calculateBarWidth, calculateSeriesWidth, drawItemLabel, findRangeBounds, getBarPainter, getBase, getDefaultBarPainter, getDefaultShadowsVisible, getGradientPaintTransformer, getIncludeBaseInRange, getItemMargin, getLegendItem, getLowerClip, getMaximumBarWidth, getMinimumBarLength, getNegativeItemLabelPositionFallback, getPositiveItemLabelPositionFallback, getShadowPaint, getShadowsVisible, getShadowXOffset, getShadowYOffset, getUpperClip, initialise, isDrawBarOutline, setBarPainter, setBase, setDefaultBarPainter, setDefaultShadowsVisible, setDrawBarOutline, setGradientPaintTransformer, setIncludeBaseInRange, setItemMargin, setMaximumBarWidth, setMinimumBarLength, setNegativeItemLabelPositionFallback, setPositiveItemLabelPositionFallback, setShadowPaint, setShadowVisible, setShadowXOffset, setShadowYOffset
-
Methods inherited from class org.jfree.chart.renderer.category.AbstractCategoryItemRenderer
addEntity, addItemEntity, beginElementGroup, calculateDomainMarkerTextAnchorPoint, calculateRangeMarkerTextAnchorPoint, clone, createState, drawBackground, drawDomainGridline, drawDomainMarker, drawItemLabel, drawOutline, drawRangeLine, drawRangeMarker, getColumnCount, getDefaultItemLabelGenerator, getDefaultItemURLGenerator, getDefaultToolTipGenerator, getDomainAxis, getDrawingSupplier, getItemLabelGenerator, getItemMiddle, getItemURLGenerator, getLegendItemLabelGenerator, getLegendItems, getLegendItemToolTipGenerator, getLegendItemURLGenerator, getPassCount, getPlot, getRangeAxis, getRowCount, getSeriesItemLabelGenerator, getSeriesItemURLGenerator, getSeriesToolTipGenerator, getToolTipGenerator, hashCode, setDefaultItemLabelGenerator, setDefaultItemLabelGenerator, setDefaultItemURLGenerator, setDefaultItemURLGenerator, setDefaultToolTipGenerator, setDefaultToolTipGenerator, setLegendItemLabelGenerator, setLegendItemToolTipGenerator, setLegendItemURLGenerator, setPlot, setSeriesItemLabelGenerator, setSeriesItemLabelGenerator, setSeriesItemURLGenerator, setSeriesItemURLGenerator, setSeriesToolTipGenerator, setSeriesToolTipGenerator, updateCrosshairValues
-
Methods inherited from class org.jfree.chart.renderer.AbstractRenderer
addChangeListener, beginElementGroup, calculateLabelAnchorPoint, clearSeriesPaints, clearSeriesStrokes, endElementGroup, fireChangeEvent, getAutoPopulateSeriesFillPaint, getAutoPopulateSeriesOutlinePaint, getAutoPopulateSeriesOutlineStroke, getAutoPopulateSeriesPaint, getAutoPopulateSeriesShape, getAutoPopulateSeriesStroke, getDataBoundsIncludesVisibleSeriesOnly, getDefaultCreateEntities, getDefaultEntityRadius, getDefaultFillPaint, getDefaultItemLabelFont, getDefaultItemLabelPaint, getDefaultItemLabelsVisible, getDefaultLegendShape, getDefaultLegendTextFont, getDefaultLegendTextPaint, getDefaultNegativeItemLabelPosition, getDefaultOutlinePaint, getDefaultOutlineStroke, getDefaultPaint, getDefaultPositiveItemLabelPosition, getDefaultSeriesVisible, getDefaultSeriesVisibleInLegend, getDefaultShape, getDefaultStroke, getItemCreateEntity, getItemFillPaint, getItemLabelAnchorOffset, getItemLabelFont, getItemLabelInsets, getItemLabelPaint, getItemOutlinePaint, getItemOutlineStroke, getItemPaint, getItemShape, getItemStroke, getItemVisible, getLegendShape, getLegendTextFont, getLegendTextPaint, getNegativeItemLabelPosition, getPositiveItemLabelPosition, getSeriesCreateEntities, getSeriesFillPaint, getSeriesItemLabelFont, getSeriesItemLabelPaint, getSeriesNegativeItemLabelPosition, getSeriesOutlinePaint, getSeriesOutlineStroke, getSeriesPaint, getSeriesPositiveItemLabelPosition, getSeriesShape, getSeriesStroke, getSeriesVisible, getSeriesVisibleInLegend, getTreatLegendShapeAsLine, hasListener, isComputeItemLabelContrastColor, isItemLabelVisible, isSeriesItemLabelsVisible, isSeriesVisible, isSeriesVisibleInLegend, lookupLegendShape, lookupLegendTextFont, lookupLegendTextPaint, lookupSeriesFillPaint, lookupSeriesOutlinePaint, lookupSeriesOutlineStroke, lookupSeriesPaint, lookupSeriesShape, lookupSeriesStroke, notifyListeners, removeChangeListener, setAutoPopulateSeriesFillPaint, setAutoPopulateSeriesOutlinePaint, setAutoPopulateSeriesOutlineStroke, setAutoPopulateSeriesPaint, setAutoPopulateSeriesShape, setAutoPopulateSeriesStroke, setComputeItemLabelContrastColor, setDataBoundsIncludesVisibleSeriesOnly, setDefaultCreateEntities, setDefaultCreateEntities, setDefaultEntityRadius, setDefaultFillPaint, setDefaultFillPaint, setDefaultItemLabelFont, setDefaultItemLabelFont, setDefaultItemLabelPaint, setDefaultItemLabelPaint, setDefaultItemLabelsVisible, setDefaultItemLabelsVisible, setDefaultLegendShape, setDefaultLegendTextFont, setDefaultLegendTextPaint, setDefaultNegativeItemLabelPosition, setDefaultNegativeItemLabelPosition, setDefaultOutlinePaint, setDefaultOutlinePaint, setDefaultOutlineStroke, setDefaultOutlineStroke, setDefaultPaint, setDefaultPaint, setDefaultPositiveItemLabelPosition, setDefaultPositiveItemLabelPosition, setDefaultSeriesVisible, setDefaultSeriesVisible, setDefaultSeriesVisibleInLegend, setDefaultSeriesVisibleInLegend, setDefaultShape, setDefaultShape, setDefaultStroke, setDefaultStroke, setItemLabelAnchorOffset, setItemLabelInsets, setLegendShape, setLegendTextFont, setLegendTextPaint, 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, setSeriesVisibleInLegend, setSeriesVisibleInLegend, setTreatLegendShapeAsLine
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.jfree.chart.renderer.category.CategoryItemRenderer
addChangeListener, getDefaultCreateEntities, getDefaultFillPaint, getDefaultItemLabelFont, getDefaultItemLabelPaint, getDefaultItemLabelsVisible, getDefaultNegativeItemLabelPosition, getDefaultOutlinePaint, getDefaultOutlineStroke, getDefaultPaint, getDefaultPositiveItemLabelPosition, getDefaultSeriesVisible, getDefaultSeriesVisibleInLegend, getDefaultShape, getDefaultStroke, getItemCreateEntity, getItemFillPaint, getItemLabelFont, getItemLabelPaint, getItemOutlinePaint, getItemOutlineStroke, getItemPaint, getItemShape, getItemStroke, getItemVisible, getNegativeItemLabelPosition, getPositiveItemLabelPosition, getSeriesCreateEntities, getSeriesFillPaint, getSeriesItemLabelFont, getSeriesItemLabelPaint, getSeriesNegativeItemLabelPosition, getSeriesOutlinePaint, getSeriesOutlineStroke, getSeriesPaint, getSeriesPositiveItemLabelPosition, getSeriesShape, getSeriesStroke, getSeriesVisible, getSeriesVisibleInLegend, isItemLabelVisible, isSeriesItemLabelsVisible, isSeriesVisible, isSeriesVisibleInLegend, removeChangeListener, setDefaultCreateEntities, setDefaultCreateEntities, setDefaultFillPaint, setDefaultItemLabelFont, setDefaultItemLabelFont, setDefaultItemLabelPaint, setDefaultItemLabelPaint, setDefaultItemLabelsVisible, setDefaultItemLabelsVisible, setDefaultNegativeItemLabelPosition, setDefaultNegativeItemLabelPosition, setDefaultOutlinePaint, setDefaultOutlinePaint, setDefaultOutlineStroke, setDefaultOutlineStroke, setDefaultPaint, setDefaultPaint, setDefaultPositiveItemLabelPosition, setDefaultPositiveItemLabelPosition, setDefaultSeriesVisible, setDefaultSeriesVisible, setDefaultSeriesVisibleInLegend, setDefaultSeriesVisibleInLegend, setDefaultShape, setDefaultShape, setDefaultStroke, setDefaultStroke, setSeriesCreateEntities, setSeriesCreateEntities, setSeriesFillPaint, setSeriesItemLabelFont, setSeriesItemLabelFont, setSeriesItemLabelPaint, setSeriesItemLabelPaint, setSeriesItemLabelsVisible, setSeriesItemLabelsVisible, setSeriesItemLabelsVisible, setSeriesNegativeItemLabelPosition, setSeriesNegativeItemLabelPosition, setSeriesOutlinePaint, setSeriesOutlinePaint, setSeriesOutlineStroke, setSeriesOutlineStroke, setSeriesPaint, setSeriesPaint, setSeriesPositiveItemLabelPosition, setSeriesPositiveItemLabelPosition, setSeriesShape, setSeriesShape, setSeriesStroke, setSeriesStroke, setSeriesVisible, setSeriesVisible, setSeriesVisibleInLegend, setSeriesVisibleInLegend
-
Methods inherited from interface org.jfree.chart.util.PublicCloneable
clone
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
For serialization.- See Also:
- Constant Field Values
-
firstBarPaint
private transient java.awt.Paint firstBarPaint
The paint used to draw the first bar.
-
lastBarPaint
private transient java.awt.Paint lastBarPaint
The paint used to draw the last bar.
-
positiveBarPaint
private transient java.awt.Paint positiveBarPaint
The paint used to draw bars having positive values.
-
negativeBarPaint
private transient java.awt.Paint negativeBarPaint
The paint used to draw bars having negative values.
-
-
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 (nullnot permitted).positiveBarPaint- the color for bars with positive values (nullnot permitted).negativeBarPaint- the color for bars with negative values (nullnot permitted).lastBarPaint- the color of the last bar (nullnot permitted).
-
-
Method Detail
-
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 aRendererChangeEventto all registered listeners.- Parameters:
paint- the paint (nullnot 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 and sends aRendererChangeEventto all registered listeners.- Parameters:
paint- the paint (nullnot 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 (nullnot 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, and sends aRendererChangeEventto all registered listeners.- Parameters:
paint- the paint (nullnot permitted).
-
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:
findRangeBoundsin interfaceCategoryItemRenderer- Overrides:
findRangeBoundsin classAbstractCategoryItemRenderer- Parameters:
dataset- the dataset (nullnot permitted).- Returns:
- The range (or
nullif the dataset is empty).
-
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:
drawItemin interfaceCategoryItemRenderer- Overrides:
drawItemin classBarRenderer- 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:
equalsin classBarRenderer- Parameters:
obj- the object (nullpermitted).- Returns:
- A boolean.
-
writeObject
private void writeObject(java.io.ObjectOutputStream stream) throws java.io.IOExceptionProvides serialization support.- Parameters:
stream- the output stream.- Throws:
java.io.IOException- if there is an I/O error.
-
readObject
private void readObject(java.io.ObjectInputStream stream) throws java.io.IOException, java.lang.ClassNotFoundExceptionProvides serialization support.- Parameters:
stream- the input stream.- Throws:
java.io.IOException- if there is an I/O error.java.lang.ClassNotFoundException- if there is a classpath problem.
-
-