org.jfree.chart.renderer
Class ClusteredXYBarRenderer

java.lang.Object
  |
  +--org.jfree.chart.renderer.AbstractRenderer
        |
        +--org.jfree.chart.renderer.AbstractXYItemRenderer
              |
              +--org.jfree.chart.renderer.VerticalXYBarRenderer
                    |
                    +--org.jfree.chart.renderer.ClusteredXYBarRenderer
All Implemented Interfaces:
Renderer, java.io.Serializable, XYItemRenderer

public class ClusteredXYBarRenderer
extends VerticalXYBarRenderer
implements java.io.Serializable

An extension of VerticalXYBarRenderer that displays bars for different series values at the same x next to each other. The assumption here is that for each x (time or else) there is a y value for each series. If this is not the case, there will be spaces between bars for a given x.

Author:
Paolo Cova
See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.jfree.chart.renderer.AbstractRenderer
DEFAULT_OUTLINE_PAINT, DEFAULT_OUTLINE_STROKE, DEFAULT_PAINT, DEFAULT_SHAPE, DEFAULT_STROKE
 
Constructor Summary
ClusteredXYBarRenderer()
          Default constructor.
ClusteredXYBarRenderer(double margin, boolean centerBarAtStartValue)
          Constructs a new XY clustered bar renderer.
 
Method Summary
 void drawItem(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, ChartRenderingInfo info, XYPlot plot, ValueAxis domainAxis, ValueAxis rangeAxis, XYDataset data, int datasetIndex, int series, int item, CrosshairInfo crosshairInfo)
          Draws the visual representation of a single data item.
 void initialise(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, XYPlot plot, XYDataset data, ChartRenderingInfo info)
          Initialises the renderer.
 void setMargin(double margin)
          Sets the margin.
 
Methods inherited from class org.jfree.chart.renderer.AbstractXYItemRenderer
drawDomainGridLine, drawDomainMarker, drawRangeGridLine, drawRangeMarker, equals, getLegendItem, getToolTipGenerator, getURLGenerator, setToolTipGenerator, setURLGenerator
 
Methods inherited from class org.jfree.chart.renderer.AbstractRenderer
addPropertyChangeListener, createTransformedShape, firePropertyChanged, getDefaultOutlinePaint, getDefaultOutlineStroke, getDefaultPaint, getDefaultShape, getDefaultStroke, getDrawingSupplier, getInfo, getItemOutlinePaint, getItemOutlineStroke, getItemPaint, getItemShape, getItemStroke, getPlot, getSeriesOutlinePaint, getSeriesOutlineStroke, getSeriesPaint, getSeriesShape, getSeriesStroke, isOutlinePaintTableActive, isOutlineStrokeTableActive, isPaintTableActive, isShapeTableActive, isStrokeTableActive, removePropertyChangeListener, setDefaultOutlinePaint, setDefaultOutlineStroke, setDefaultPaint, setDefaultShape, setDefaultStroke, setDrawingSupplier, setInfo, setOutlinePaintTableActive, setOutlineStrokeTableActive, setPaintTableActive, setPlot, setSeriesOutlinePaint, setSeriesOutlinePaint, setSeriesOutlineStroke, setSeriesOutlineStroke, setSeriesPaint, setSeriesPaint, setSeriesShape, setSeriesShape, setSeriesStroke, setSeriesStroke, setShapeTableActive, setStrokeTableActive
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.jfree.chart.renderer.XYItemRenderer
addPropertyChangeListener, drawDomainGridLine, drawDomainMarker, drawRangeGridLine, drawRangeMarker, getItemOutlinePaint, getItemPaint, getItemShape, getItemStroke, getLegendItem, getPlot, getSeriesOutlinePaint, getSeriesPaint, getSeriesShape, getSeriesStroke, getToolTipGenerator, getURLGenerator, removePropertyChangeListener, setDrawingSupplier, setPlot, setSeriesPaint, setSeriesPaint, setToolTipGenerator, setURLGenerator
 
Methods inherited from interface org.jfree.chart.renderer.Renderer
getDefaultOutlinePaint, getDefaultOutlineStroke, getDefaultPaint, getDefaultShape, getDefaultStroke, getDrawingSupplier, isOutlinePaintTableActive, isOutlineStrokeTableActive, isPaintTableActive, isShapeTableActive, isStrokeTableActive, setDefaultOutlinePaint, setDefaultOutlineStroke, setDefaultPaint, setDefaultShape, setDefaultStroke, setOutlinePaintTableActive, setOutlineStrokeTableActive, setPaintTableActive, setSeriesStroke, setSeriesStroke, setShapeTableActive, setStrokeTableActive
 

Constructor Detail

ClusteredXYBarRenderer

public ClusteredXYBarRenderer()
Default constructor. Bar margin is set to 0.0.


ClusteredXYBarRenderer

public ClusteredXYBarRenderer(double margin,
                              boolean centerBarAtStartValue)
Constructs a new XY clustered bar renderer.

Parameters:
margin - the percentage amount to trim from the width of each bar.
centerBarAtStartValue - If true, bars will be centered on the start of the time period.
Method Detail

initialise

public void initialise(java.awt.Graphics2D g2,
                       java.awt.geom.Rectangle2D dataArea,
                       XYPlot plot,
                       XYDataset data,
                       ChartRenderingInfo info)
Initialises the renderer. Here we calculate the Java2D y-coordinate for zero, since all the bars have their bases fixed at zero. Copied from superclass to initialize local variables.

Specified by:
initialise in interface XYItemRenderer
Overrides:
initialise in class VerticalXYBarRenderer
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.

setMargin

public void setMargin(double margin)
Sets the margin.

Overrides:
setMargin in class VerticalXYBarRenderer
Parameters:
margin - the margin.

drawItem

public void drawItem(java.awt.Graphics2D g2,
                     java.awt.geom.Rectangle2D dataArea,
                     ChartRenderingInfo info,
                     XYPlot plot,
                     ValueAxis domainAxis,
                     ValueAxis rangeAxis,
                     XYDataset data,
                     int datasetIndex,
                     int series,
                     int item,
                     CrosshairInfo crosshairInfo)
Draws the visual representation of a single data item. This method is mostly copied from the superclass, the change is that in the calculated space for a singe bar we draw bars for each series next to each other. The width of each bar is the available width divided by the number of series. Bars for each series are drawn in order left to right.

Specified by:
drawItem in interface XYItemRenderer
Overrides:
drawItem in class VerticalXYBarRenderer
Parameters:
g2 - the graphics device.
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.
data - the dataset.
datasetIndex - the dataset index.
series - the series index.
item - the item index.
crosshairInfo - collects information about crosshairs.