org.jfree.chart.renderer.xy

Class StackedXYBarRenderer

Implemented Interfaces:
Cloneable, LegendItemSource, PublicCloneable, Serializable, XYItemRenderer

public class StackedXYBarRenderer
extends XYBarRenderer

A bar renderer that displays the series items stacked. The dataset used together with this renderer must be a IntervalXYDataset and a TableXYDataset. For example, the dataset class CategoryTableXYDataset implements both interfaces.

Nested Class Summary

Nested classes/interfaces inherited from class org.jfree.chart.renderer.xy.XYBarRenderer

XYBarRenderer.XYBarRendererState

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

StackedXYBarRenderer()
Creates a new renderer.
StackedXYBarRenderer(double margin)
Creates a new renderer.

Method Summary

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.
boolean
equals(Object obj)
Tests this renderer for equality with an arbitrary object.
Range
findRangeBounds(XYDataset dataset)
Returns the range of values the renderer requires to display all the items from the specified dataset.
int
getPassCount()
Returns 2 to indicate that this renderer requires two passes for drawing (item labels are drawn in the second pass so that they always appear in front of all the bars).
boolean
getRenderAsPercentages()
Returns true if the renderer displays each item value as a percentage (so that the stacked bars add to 100%), and false otherwise.
int
hashCode()
Returns a hash code for this instance.
XYItemRendererState
initialise(Graphics2D g2, Rectangle2D dataArea, XYPlot plot, XYDataset data, PlotRenderingInfo info)
Initialises the renderer and returns a state object that should be passed to all subsequent calls to the drawItem() method.
void
setRenderAsPercentages(boolean asPercentages)
Sets the flag that controls whether the renderer displays each item value as a percentage (so that the stacked bars add to 100%), and sends a RendererChangeEvent to all registered listeners.

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

clone, drawItem, drawItemLabel, equals, findDomainBounds, getBase, getGradientPaintTransformer, getLegendBar, getLegendItem, getMargin, getNegativeItemLabelPositionFallback, getPositiveItemLabelPositionFallback, getUseYInterval, initialise, isDrawBarOutline, setBase, setDrawBarOutline, setGradientPaintTransformer, setLegendBar, setMargin, setNegativeItemLabelPositionFallback, setPositiveItemLabelPositionFallback, setUseYInterval

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

StackedXYBarRenderer

public StackedXYBarRenderer()
Creates a new renderer.

StackedXYBarRenderer

public StackedXYBarRenderer(double margin)
Creates a new renderer.
Parameters:
margin - the percentual amount of the bars that are cut away.

Method Details

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
Overrides:
drawItem in interface XYBarRenderer
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.

equals

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

findRangeBounds

public Range findRangeBounds(XYDataset dataset)
Returns the range of values the renderer requires to display all the items from the specified dataset.
Specified by:
findRangeBounds in interface XYItemRenderer
Overrides:
findRangeBounds in interface AbstractXYItemRenderer
Parameters:
dataset - the dataset (null permitted).
Returns:
The range (null if the dataset is null or empty).

getPassCount

public int getPassCount()
Returns 2 to indicate that this renderer requires two passes for drawing (item labels are drawn in the second pass so that they always appear in front of all the bars).
Specified by:
getPassCount in interface XYItemRenderer
Overrides:
getPassCount in interface AbstractXYItemRenderer
Returns:
2.

getRenderAsPercentages

public boolean getRenderAsPercentages()
Returns true if the renderer displays each item value as a percentage (so that the stacked bars add to 100%), and false otherwise.
Returns:
A boolean.
Since:
1.0.5

hashCode

public int hashCode()
Returns a hash code for this instance.
Overrides:
hashCode in interface AbstractRenderer
Returns:
A hash code.

initialise

public XYItemRendererState initialise(Graphics2D g2,
                                      Rectangle2D dataArea,
                                      XYPlot plot,
                                      XYDataset data,
                                      PlotRenderingInfo info)
Initialises the renderer and returns a state object that should be passed to all subsequent calls to the drawItem() method. Here there is nothing to do.
Specified by:
initialise in interface XYItemRenderer
Overrides:
initialise in interface XYBarRenderer
Parameters:
g2 - the graphics device.
dataArea - the area inside the axes.
plot - the plot.
data - the data.
info - an optional info collection object to return data back to the caller.
Returns:
A state object.

setRenderAsPercentages

public void setRenderAsPercentages(boolean asPercentages)
Sets the flag that controls whether the renderer displays each item value as a percentage (so that the stacked bars add to 100%), and sends a RendererChangeEvent to all registered listeners.
Parameters:
asPercentages - the flag.
Since:
1.0.5