org.jfree.chart.renderer.category

Class BarRenderer

public class BarRenderer extends AbstractCategoryItemRenderer implements Cloneable, PublicCloneable, Serializable

A CategoryItemRenderer that draws individual data items as bars. The example shown here is generated by the BarChartDemo1.java program included in the JFreeChart Demo Collection:

BarRendererSample.png
Field Summary
static doubleBAR_OUTLINE_WIDTH_THRESHOLD
Constant that controls the minimum width before a bar has an outline drawn.
static doubleDEFAULT_ITEM_MARGIN
The default item margin percentage.
Constructor Summary
BarRenderer()
Creates a new bar renderer with default settings.
Method Summary
protected double[]calculateBarL0L1(double value)
Calculates the coordinates for the length of a single bar.
protected doublecalculateBarW0(CategoryPlot plot, PlotOrientation orientation, Rectangle2D dataArea, CategoryAxis domainAxis, CategoryItemRendererState state, int row, int column)
Calculates the coordinate of the first "side" of a bar.
protected voidcalculateBarWidth(CategoryPlot plot, Rectangle2D dataArea, int rendererIndex, CategoryItemRendererState state)
Calculates the bar width and stores it in the renderer state.
protected doublecalculateSeriesWidth(double space, CategoryAxis axis, int categories, int series)
Calculates the available space for each series.
voiddrawItem(Graphics2D g2, CategoryItemRendererState state, 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.
protected voiddrawItemLabel(Graphics2D g2, CategoryDataset data, int row, int column, CategoryPlot plot, CategoryItemLabelGenerator generator, Rectangle2D bar, boolean negative)
Draws an item label.
booleanequals(Object obj)
Tests this instance for equality with an arbitrary object.
RangefindRangeBounds(CategoryDataset dataset)
Returns the range of values the renderer requires to display all the items from the specified dataset.
BarPaintergetBarPainter()
Returns the bar painter.
doublegetBase()
Returns the base value for the bars.
static BarPaintergetDefaultBarPainter()
Returns the default bar painter.
static booleangetDefaultShadowsVisible()
Returns the default value for the shadowsVisible flag.
GradientPaintTransformergetGradientPaintTransformer()
Returns the gradient paint transformer (an object used to transform gradient paint objects to fit each bar).
booleangetIncludeBaseInRange()
Returns the flag that controls whether or not the base value for the bars is included in the range calculated by findRangeBounds.
doublegetItemMargin()
Returns the item margin as a percentage of the available space for all bars.
LegendItemgetLegendItem(int datasetIndex, int series)
Returns a legend item for a series.
doublegetLowerClip()
Returns the lower clip value.
doublegetMaximumBarWidth()
Returns the maximum bar width, as a percentage of the available drawing space.
doublegetMinimumBarLength()
Returns the minimum bar length (in Java2D units).
ItemLabelPositiongetNegativeItemLabelPositionFallback()
Returns the fallback position for negative item labels that don't fit within a bar.
ItemLabelPositiongetPositiveItemLabelPositionFallback()
Returns the fallback position for positive item labels that don't fit within a bar.
PaintgetShadowPaint()
Returns the shadow paint.
booleangetShadowsVisible()
Returns the flag that controls whether or not shadows are drawn for the bars.
doublegetShadowXOffset()
Returns the shadow x-offset.
doublegetShadowYOffset()
Returns the shadow y-offset.
doublegetUpperClip()
Returns the upper clip value.
CategoryItemRendererStateinitialise(Graphics2D g2, 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.
booleanisDrawBarOutline()
Returns a flag that controls whether or not bar outlines are drawn.
voidsetBarPainter(BarPainter painter)
Sets the bar painter for this renderer and sends a RendererChangeEvent to all registered listeners.
voidsetBase(double base)
Sets the base value for the bars and sends a RendererChangeEvent to all registered listeners.
static voidsetDefaultBarPainter(BarPainter painter)
Sets the default bar painter.
static voidsetDefaultShadowsVisible(boolean visible)
Sets the default value for the shadows visible flag.
voidsetDrawBarOutline(boolean draw)
Sets the flag that controls whether or not bar outlines are drawn and sends a RendererChangeEvent to all registered listeners.
voidsetGradientPaintTransformer(GradientPaintTransformer transformer)
Sets the gradient paint transformer and sends a RendererChangeEvent to all registered listeners.
voidsetIncludeBaseInRange(boolean include)
Sets the flag that controls whether or not the base value for the bars is included in the range calculated by findRangeBounds.
voidsetItemMargin(double percent)
Sets the item margin and sends a RendererChangeEvent to all registered listeners.
voidsetMaximumBarWidth(double percent)
Sets the maximum bar width, which is specified as a percentage of the available space for all bars, and sends a RendererChangeEvent to all registered listeners.
voidsetMinimumBarLength(double min)
Sets the minimum bar length and sends a RendererChangeEvent to all registered listeners.
voidsetNegativeItemLabelPositionFallback(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.
voidsetPositiveItemLabelPositionFallback(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.
voidsetShadowPaint(Paint paint)
Sets the shadow paint and sends a RendererChangeEvent to all registered listeners.
voidsetShadowVisible(boolean visible)
Sets the flag that controls whether or not shadows are drawn by the renderer.
voidsetShadowXOffset(double offset)
Sets the x-offset for the bar shadow and sends a RendererChangeEvent to all registered listeners.
voidsetShadowYOffset(double offset)
Sets the y-offset for the bar shadow and sends a RendererChangeEvent to all registered listeners.

Field Detail

BAR_OUTLINE_WIDTH_THRESHOLD

public static final double BAR_OUTLINE_WIDTH_THRESHOLD
Constant that controls the minimum width before a bar has an outline drawn.

DEFAULT_ITEM_MARGIN

public static final double DEFAULT_ITEM_MARGIN
The default item margin percentage.

Constructor Detail

BarRenderer

public BarRenderer()
Creates a new bar renderer with default settings.

Method Detail

calculateBarL0L1

protected double[] calculateBarL0L1(double value)
Calculates the coordinates for the length of a single bar.

Parameters: value the value represented by the bar.

Returns: The coordinates for each end of the bar (or null if the bar is not visible for the current axis range).

calculateBarW0

protected double calculateBarW0(CategoryPlot plot, PlotOrientation orientation, 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.

calculateBarWidth

protected void calculateBarWidth(CategoryPlot plot, 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.

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.

drawItem

public void drawItem(Graphics2D g2, CategoryItemRendererState state, 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.

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.

drawItemLabel

protected void drawItemLabel(Graphics2D g2, CategoryDataset data, int row, int column, CategoryPlot plot, CategoryItemLabelGenerator 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. data the dataset. row the row. column the column. 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 instance for equality with an arbitrary object.

Parameters: obj the object (null permitted).

Returns: A boolean.

findRangeBounds

public Range findRangeBounds(CategoryDataset dataset)
Returns the range of values the renderer requires to display all the items from the specified dataset. This takes into account the range of values in the dataset, plus the flag that determines whether or not the base value for the bars should be included in the range.

Parameters: dataset the dataset (null permitted).

Returns: The range (or null if the dataset is null or empty).

getBarPainter

public BarPainter getBarPainter()
Returns the bar painter.

Returns: The bar painter (never null).

Since: 1.0.11

See Also:

getBase

public double getBase()
Returns the base value for the bars. The default value is 0.0.

Returns: The base value for the bars.

See Also: BarRenderer

getDefaultBarPainter

public static BarPainter getDefaultBarPainter()
Returns the default bar painter.

Returns: The default bar painter.

Since: 1.0.11

getDefaultShadowsVisible

public static boolean getDefaultShadowsVisible()
Returns the default value for the shadowsVisible flag.

Returns: A boolean.

Since: 1.0.13

See Also:

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

See Also: setGradientPaintTransformer

getIncludeBaseInRange

public boolean getIncludeBaseInRange()
Returns the flag that controls whether or not the base value for the bars is included in the range calculated by findRangeBounds.

Returns: true if the base is included in the range, and false otherwise.

Since: 1.0.1

See Also: BarRenderer

getItemMargin

public double getItemMargin()
Returns the item margin as a percentage of the available space for all bars.

Returns: The margin percentage (where 0.10 is ten percent).

See Also: BarRenderer

getLegendItem

public LegendItem getLegendItem(int datasetIndex, int series)
Returns a legend item for a series.

Parameters: datasetIndex the dataset index (zero-based). series the series index (zero-based).

Returns: The legend item (possibly null).

getLowerClip

public double getLowerClip()
Returns the lower clip value. This value is recalculated in the initialise() method.

Returns: The value.

getMaximumBarWidth

public double getMaximumBarWidth()
Returns the maximum bar width, as a percentage of the available drawing space.

Returns: The maximum bar width.

See Also: BarRenderer

getMinimumBarLength

public double getMinimumBarLength()
Returns the minimum bar length (in Java2D units). The default value is 0.0.

Returns: The minimum bar length.

See Also: BarRenderer

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

See Also: setPositiveItemLabelPositionFallback

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

See Also: setPositiveItemLabelPositionFallback

getShadowPaint

public Paint getShadowPaint()
Returns the shadow paint.

Returns: The shadow paint.

Since: 1.0.11

See Also:

getShadowsVisible

public boolean getShadowsVisible()
Returns the flag that controls whether or not shadows are drawn for the bars.

Returns: A boolean.

Since: 1.0.11

getShadowXOffset

public double getShadowXOffset()
Returns the shadow x-offset.

Returns: The shadow x-offset.

Since: 1.0.11

getShadowYOffset

public double getShadowYOffset()
Returns the shadow y-offset.

Returns: The shadow y-offset.

Since: 1.0.11

getUpperClip

public double getUpperClip()
Returns the upper clip value. This value is recalculated in the initialise() method.

Returns: The value.

initialise

public CategoryItemRendererState initialise(Graphics2D g2, 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.

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.

isDrawBarOutline

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

Returns: A boolean.

See Also: BarRenderer

setBarPainter

public void setBarPainter(BarPainter painter)
Sets the bar painter for this renderer and sends a RendererChangeEvent to all registered listeners.

Parameters: painter the painter (null not permitted).

Since: 1.0.11

See Also:

setBase

public void setBase(double base)
Sets the base value for the bars and sends a RendererChangeEvent to all registered listeners.

Parameters: base the new base value.

See Also: getBase

setDefaultBarPainter

public static void setDefaultBarPainter(BarPainter painter)
Sets the default bar painter.

Parameters: painter the painter (null not permitted).

Since: 1.0.11

setDefaultShadowsVisible

public static void setDefaultShadowsVisible(boolean visible)
Sets the default value for the shadows visible flag.

Parameters: visible the new value for the default.

Since: 1.0.13

See Also:

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.

See Also: isDrawBarOutline

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

See Also: getGradientPaintTransformer

setIncludeBaseInRange

public void setIncludeBaseInRange(boolean include)
Sets the flag that controls whether or not the base value for the bars is included in the range calculated by findRangeBounds. If the flag is changed, a RendererChangeEvent is sent to all registered listeners.

Parameters: include the new value for the flag.

Since: 1.0.1

See Also: getIncludeBaseInRange

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 margin (where 0.10 is ten percent).

See Also: getItemMargin

setMaximumBarWidth

public void setMaximumBarWidth(double percent)
Sets the maximum bar width, which is specified as a percentage of the available space for all bars, and sends a RendererChangeEvent to all registered listeners.

Parameters: percent the percent (where 0.05 is five percent).

See Also: getMaximumBarWidth

setMinimumBarLength

public void setMinimumBarLength(double min)
Sets the minimum bar length and sends a RendererChangeEvent to all registered listeners. The minimum bar length is specified in Java2D units, and can be used to prevent bars that represent very small data values from disappearing when drawn on the screen. Typically you would set this to (say) 0.5 or 1.0 Java 2D units. Use this attribute with caution, however, because setting it to a non-zero value will artificially increase the length of bars representing small values, which may misrepresent your data.

Parameters: min the minimum bar length (in Java2D units, must be >= 0.0).

See Also: getMinimumBarLength

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

See Also: getNegativeItemLabelPositionFallback

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

See Also: getPositiveItemLabelPositionFallback

setShadowPaint

public void setShadowPaint(Paint paint)
Sets the shadow paint and sends a RendererChangeEvent to all registered listeners.

Parameters: paint the paint (null not permitted).

Since: 1.0.11

See Also:

setShadowVisible

public void setShadowVisible(boolean visible)
Sets the flag that controls whether or not shadows are drawn by the renderer.

Parameters: visible the new flag value.

Since: 1.0.11

setShadowXOffset

public void setShadowXOffset(double offset)
Sets the x-offset for the bar shadow and sends a RendererChangeEvent to all registered listeners.

Parameters: offset the offset.

Since: 1.0.11

setShadowYOffset

public void setShadowYOffset(double offset)
Sets the y-offset for the bar shadow and sends a RendererChangeEvent to all registered listeners.

Parameters: offset the offset.

Since: 1.0.11

Copyright © 2000-2009 by Object Refinery Limited. All Rights Reserved.