org.jfree.chart.renderer.xy

Class XYBarRenderer

Implemented Interfaces:
Cloneable, LegendItemSource, PublicCloneable, Serializable, XYItemRenderer
Known Direct Subclasses:
ClusteredXYBarRenderer, StackedXYBarRenderer

public class XYBarRenderer
extends AbstractXYItemRenderer
implements XYItemRenderer, Cloneable, PublicCloneable, Serializable

A renderer that draws bars on an XYPlot (requires an IntervalXYDataset).

Nested Class Summary

protected class
XYBarRenderer.XYBarRendererState
The state class used by this renderer.

Field Summary

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

DEFAULT_OUTLINE_PAINT, DEFAULT_OUTLINE_STROKE, DEFAULT_PAINT, DEFAULT_SHAPE, DEFAULT_STROKE, DEFAULT_VALUE_LABEL_FONT, DEFAULT_VALUE_LABEL_PAINT, ZERO

Constructor Summary

XYBarRenderer()
The default constructor.
XYBarRenderer(double margin)
Constructs a new renderer.

Method Summary

Object
clone()
Returns a clone of the renderer.
void
drawItem(Graphics2D g2, XYItemRendererState state, Rectangle2D dataArea, PlotRenderingInfo info, XYPlot plot, ValueAxis domainAxis, ValueAxis rangeAxis, XYDataset dataset, int series, int item, CrosshairState crosshairState, int pass)
Draws the visual representation of a single data item.
protected void
drawItemLabel(Graphics2D g2, XYDataset dataset, int series, int item, XYPlot plot, XYItemLabelGenerator generator, Rectangle2D bar, boolean negative)
Draws an item label.
boolean
equals(Object obj)
Tests this renderer for equality with an arbitrary object.
Range
findDomainBounds(XYDataset dataset)
Returns the lower and upper bounds (range) of the x-values in the specified dataset.
double
getBase()
Returns the base value for the bars.
GradientPaintTransformer
getGradientPaintTransformer()
Returns the gradient paint transformer (an object used to transform gradient paint objects to fit each bar.
Shape
getLegendBar()
Returns the shape used to represent bars in each legend item.
LegendItem
getLegendItem(int datasetIndex, int series)
Returns a default legend item for the specified series.
double
getMargin()
Returns the margin which is a percentage amount by which the bars are trimmed.
ItemLabelPosition
getNegativeItemLabelPositionFallback()
Returns the fallback position for negative item labels that don't fit within a bar.
ItemLabelPosition
getPositiveItemLabelPositionFallback()
Returns the fallback position for positive item labels that don't fit within a bar.
boolean
getUseYInterval()
Returns a flag that determines whether the y-interval from the dataset is used to calculate the length of each bar.
XYItemRendererState
initialise(Graphics2D g2, Rectangle2D dataArea, XYPlot plot, XYDataset dataset, PlotRenderingInfo info)
Initialises the renderer and returns a state object that should be passed to all subsequent calls to the drawItem() method.
boolean
isDrawBarOutline()
Returns a flag that controls whether or not bar outlines are drawn.
void
setBase(double base)
Sets the base value for the bars and sends a RendererChangeEvent to all registered listeners.
void
setDrawBarOutline(boolean draw)
Sets the flag that controls whether or not bar outlines are drawn and sends a RendererChangeEvent to all registered listeners.
void
setGradientPaintTransformer(GradientPaintTransformer transformer)
Sets the gradient paint transformer and sends a RendererChangeEvent to all registered listeners.
void
setLegendBar(Shape bar)
Sets the shape used to represent bars in each legend item and sends a RendererChangeEvent to all registered listeners.
void
setMargin(double margin)
Sets the percentage amount by which the bars are trimmed and sends a RendererChangeEvent to all registered listeners.
void
setNegativeItemLabelPositionFallback(ItemLabelPosition position)
Sets the fallback position for negative item labels that don't fit within a bar, and sends a RendererChangeEvent to all registered listeners.
void
setPositiveItemLabelPositionFallback(ItemLabelPosition position)
Sets the fallback position for positive item labels that don't fit within a bar, and sends a RendererChangeEvent to all registered listeners.
void
setUseYInterval(boolean use)
Sets the flag that determines whether the y-interval from the dataset is used to calculate the length of each bar, and sends a RendererChangeEvent to all registered listeners.

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

addAnnotation, addAnnotation, addEntity, calculateDomainMarkerTextAnchorPoint, clone, drawAnnotations, drawDomainGridLine, drawDomainLine, drawDomainMarker, drawItemLabel, drawRangeLine, drawRangeMarker, equals, fillDomainGridBand, fillRangeGridBand, findDomainBounds, findRangeBounds, getBaseItemLabelGenerator, getBaseToolTipGenerator, getDefaultEntityRadius, getDrawingSupplier, getItemLabelGenerator, getItemLabelGenerator, getLegendItem, getLegendItemLabelGenerator, getLegendItemToolTipGenerator, getLegendItemURLGenerator, getLegendItems, getPassCount, getPlot, getSeriesItemLabelGenerator, getSeriesToolTipGenerator, getToolTipGenerator, getToolTipGenerator, getURLGenerator, initialise, removeAnnotation, removeAnnotations, setBaseItemLabelGenerator, setBaseToolTipGenerator, setDefaultEntityRadius, setItemLabelGenerator, setLegendItemLabelGenerator, setLegendItemToolTipGenerator, setLegendItemURLGenerator, setPlot, setSeriesItemLabelGenerator, setSeriesToolTipGenerator, setToolTipGenerator, setURLGenerator, updateCrosshairValues, updateCrosshairValues

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

addChangeListener, calculateLabelAnchorPoint, clone, equals, fireChangeEvent, getBaseCreateEntities, getBaseFillPaint, getBaseItemLabelFont, getBaseItemLabelPaint, getBaseItemLabelsVisible, getBaseNegativeItemLabelPosition, getBaseOutlinePaint, getBaseOutlineStroke, getBasePaint, getBasePositiveItemLabelPosition, getBaseSeriesVisible, getBaseSeriesVisibleInLegend, getBaseShape, getBaseStroke, getCreateEntities, getDrawingSupplier, 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, hasListener, hashCode, isItemLabelVisible, isSeriesItemLabelsVisible, isSeriesVisible, 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

Constructor Details

XYBarRenderer

public XYBarRenderer()
The default constructor.

XYBarRenderer

public XYBarRenderer(double margin)
Constructs a new renderer.
Parameters:
margin - the percentage amount to trim from the width of each bar.

Method Details

clone

public Object clone()
            throws CloneNotSupportedException
Returns a clone of the renderer.
Overrides:
clone in interface AbstractXYItemRenderer
Returns:
A clone.

drawItem

public void drawItem(Graphics2D g2,
                     XYItemRendererState state,
                     Rectangle2D dataArea,
                     PlotRenderingInfo info,
                     XYPlot plot,
                     ValueAxis domainAxis,
                     ValueAxis rangeAxis,
                     XYDataset dataset,
                     int series,
                     int item,
                     CrosshairState crosshairState,
                     int pass)
Draws the visual representation of a single data item.
Specified by:
drawItem in interface XYItemRenderer
Parameters:
g2 - the graphics device.
state - the renderer state.
dataArea - the area within which the plot is being drawn.
info - collects information about the drawing.
plot - the plot (can be used to obtain standard color information etc).
domainAxis - the domain axis.
rangeAxis - the range axis.
dataset - the dataset.
series - the series index (zero-based).
item - the item index (zero-based).
crosshairState - crosshair information for the plot (null permitted).
pass - the pass index.

drawItemLabel

protected void drawItemLabel(Graphics2D g2,
                             XYDataset dataset,
                             int series,
                             int item,
                             XYPlot plot,
                             XYItemLabelGenerator generator,
                             Rectangle2D bar,
                             boolean negative)
Draws an item label. This method is overridden so that the bar can be used to calculate the label anchor point.
Parameters:
g2 - the graphics device.
dataset - the dataset.
series - the series index.
item - the item index.
plot - the plot.
generator - the label generator.
bar - the bar.
negative - a flag indicating a negative value.

equals

public boolean equals(Object obj)
Tests this renderer for equality with an arbitrary object.
Overrides:
equals in interface AbstractXYItemRenderer
Parameters:
obj - the object to test against (null permitted).
Returns:
A boolean.

findDomainBounds

public Range findDomainBounds(XYDataset dataset)
Returns the lower and upper bounds (range) of the x-values in the specified dataset. Since this renderer uses the x-interval in the dataset, this is taken into account for the range.
Specified by:
findDomainBounds in interface XYItemRenderer
Overrides:
findDomainBounds in interface AbstractXYItemRenderer
Parameters:
dataset - the dataset (null permitted).
Returns:
The range (null if the dataset is null or empty).

getBase

public double getBase()
Returns the base value for the bars.
Returns:
The base value for the bars.

getGradientPaintTransformer

public GradientPaintTransformer getGradientPaintTransformer()
Returns the gradient paint transformer (an object used to transform gradient paint objects to fit each bar.
Returns:
A transformer (null possible).

getLegendBar

public Shape getLegendBar()
Returns the shape used to represent bars in each legend item.
Returns:
The shape used to represent bars in each legend item (never null).

getLegendItem

public LegendItem getLegendItem(int datasetIndex,
                                int series)
Returns a default legend item for the specified series. Subclasses should override this method to generate customised items.
Specified by:
getLegendItem in interface XYItemRenderer
Overrides:
getLegendItem in interface AbstractXYItemRenderer
Parameters:
datasetIndex - the dataset index (zero-based).
series - the series index (zero-based).
Returns:
A legend item for the series.

getMargin

public double getMargin()
Returns the margin which is a percentage amount by which the bars are trimmed.
Returns:
The margin.

getNegativeItemLabelPositionFallback

public ItemLabelPosition getNegativeItemLabelPositionFallback()
Returns the fallback position for negative item labels that don't fit within a bar.
Returns:
The fallback position (null possible).
Since:
1.0.2

getPositiveItemLabelPositionFallback

public ItemLabelPosition getPositiveItemLabelPositionFallback()
Returns the fallback position for positive item labels that don't fit within a bar.
Returns:
The fallback position (null possible).
Since:
1.0.2

getUseYInterval

public boolean getUseYInterval()
Returns a flag that determines whether the y-interval from the dataset is used to calculate the length of each bar.
Returns:
A boolean.

initialise

public XYItemRendererState initialise(Graphics2D g2,
                                      Rectangle2D dataArea,
                                      XYPlot plot,
                                      XYDataset dataset,
                                      PlotRenderingInfo info)
Initialises the renderer and returns a state object that should be passed to all subsequent calls to the drawItem() method. Here we calculate the Java2D y-coordinate for zero, since all the bars have their bases fixed at zero.
Specified by:
initialise in interface XYItemRenderer
Overrides:
initialise in interface AbstractXYItemRenderer
Parameters:
g2 - the graphics device.
dataArea - the area inside the axes.
plot - the plot.
dataset - the data.
info - an optional info collection object to return data back to the caller.
Returns:
A state object.

isDrawBarOutline

public boolean isDrawBarOutline()
Returns a flag that controls whether or not bar outlines are drawn.
Returns:
A boolean.

setBase

public void setBase(double base)
Sets the base value for the bars and sends a RendererChangeEvent to all registered listeners. The base value is not used if the dataset's y-interval is being used to determine the bar length.
Parameters:
base - the new base value.

setDrawBarOutline

public void setDrawBarOutline(boolean draw)
Sets the flag that controls whether or not bar outlines are drawn and sends a RendererChangeEvent to all registered listeners.
Parameters:
draw - the flag.

setGradientPaintTransformer

public void setGradientPaintTransformer(GradientPaintTransformer transformer)
Sets the gradient paint transformer and sends a RendererChangeEvent to all registered listeners.
Parameters:
transformer - the transformer (null permitted).

setLegendBar

public void setLegendBar(Shape bar)
Sets the shape used to represent bars in each legend item and sends a RendererChangeEvent to all registered listeners.
Parameters:
bar - the bar shape (null not permitted).

setMargin

public void setMargin(double margin)
Sets the percentage amount by which the bars are trimmed and sends a RendererChangeEvent to all registered listeners.
Parameters:
margin - the new margin.
See Also:
getMargin()

setNegativeItemLabelPositionFallback

public void setNegativeItemLabelPositionFallback(ItemLabelPosition position)
Sets the fallback position for negative item labels that don't fit within a bar, and sends a RendererChangeEvent to all registered listeners.
Parameters:
position - the position (null permitted).
Since:
1.0.2

setPositiveItemLabelPositionFallback

public void setPositiveItemLabelPositionFallback(ItemLabelPosition position)
Sets the fallback position for positive item labels that don't fit within a bar, and sends a RendererChangeEvent to all registered listeners.
Parameters:
position - the position (null permitted).
Since:
1.0.2

setUseYInterval

public void setUseYInterval(boolean use)
Sets the flag that determines whether the y-interval from the dataset is used to calculate the length of each bar, and sends a RendererChangeEvent to all registered listeners.
Parameters:
use - the flag.