org.jfree.chart.plot

Class CombinedDomainXYPlot

Implemented Interfaces:
Cloneable, EventListener, PublicCloneable, Serializable, AxisChangeListener, DatasetChangeListener, LegendItemSource, MarkerChangeListener, PlotChangeListener, PublicCloneable, RendererChangeListener, Serializable, ValueAxisPlot, Zoomable

public class CombinedDomainXYPlot
extends XYPlot
implements Cloneable, PublicCloneable, Serializable, PlotChangeListener

An extension of XYPlot that contains multiple subplots that share a common domain axis.

Field Summary

Fields inherited from class org.jfree.chart.plot.XYPlot

DEFAULT_CROSSHAIR_PAINT, DEFAULT_CROSSHAIR_STROKE, DEFAULT_CROSSHAIR_VISIBLE, DEFAULT_GRIDLINE_PAINT, DEFAULT_GRIDLINE_STROKE, localizationResources

Fields inherited from class org.jfree.chart.plot.Plot

DEFAULT_BACKGROUND_ALPHA, DEFAULT_BACKGROUND_PAINT, DEFAULT_FOREGROUND_ALPHA, DEFAULT_INSETS, DEFAULT_LEGEND_ITEM_BOX, DEFAULT_LEGEND_ITEM_CIRCLE, DEFAULT_OUTLINE_PAINT, DEFAULT_OUTLINE_STROKE, MINIMUM_HEIGHT_TO_DRAW, MINIMUM_WIDTH_TO_DRAW, ZERO

Constructor Summary

CombinedDomainXYPlot()
Default constructor.
CombinedDomainXYPlot(ValueAxis domainAxis)
Creates a new combined plot that shares a domain axis among multiple subplots.

Method Summary

void
add(XYPlot subplot)
Adds a subplot (with a default 'weight' of 1) and sends a PlotChangeEvent to all registered listeners.
void
add(XYPlot subplot, int weight)
Adds a subplot with the specified weight and sends a PlotChangeEvent to all registered listeners.
protected AxisSpace
calculateAxisSpace(Graphics2D g2, Rectangle2D plotArea)
Calculates the axis space required.
Object
clone()
Returns a clone of the annotation.
void
draw(Graphics2D g2, Rectangle2D area, Point2D anchor, PlotState parentState, PlotRenderingInfo info)
Draws the plot within the specified area on a graphics device.
boolean
equals(Object obj)
Tests this plot for equality with another object.
XYPlot
findSubplot(PlotRenderingInfo info, Point2D source)
Returns the subplot (if any) that contains the (x, y) point (specified in Java2D space).
Range
getDataRange(ValueAxis axis)
Returns the range for the specified axis.
double
getGap()
Returns the gap between subplots, measured in Java2D units.
LegendItemCollection
getLegendItems()
Returns a collection of legend items for the plot.
String
getPlotType()
Returns a string describing the type of plot.
List
getSubplots()
Returns the list of subplots.
void
handleClick(int x, int y, PlotRenderingInfo info)
Handles a 'click' on the plot by updating the anchor values.
void
plotChanged(PlotChangeEvent event)
Receives a PlotChangeEvent and responds by notifying all listeners.
void
remove(XYPlot subplot)
Removes a subplot from the combined chart and sends a PlotChangeEvent to all registered listeners.
void
setFixedRangeAxisSpace(AxisSpace space)
Sets the fixed range axis space.
protected void
setFixedRangeAxisSpaceForSubplots(AxisSpace space)
Sets the size (width or height, depending on the orientation of the plot) for the domain axis of each subplot.
void
setGap(double gap)
Sets the amount of space between subplots and sends a PlotChangeEvent to all registered listeners.
void
setOrientation(PlotOrientation orientation)
Sets the orientation for the plot (also changes the orientation for all the subplots to match).
void
setRenderer(XYItemRenderer renderer)
Sets the item renderer FOR ALL SUBPLOTS.
void
zoomRangeAxes(double lowerPercent, double upperPercent, PlotRenderingInfo info, Point2D source)
Zooms in on the range axes.
void
zoomRangeAxes(double factor, PlotRenderingInfo info, Point2D source)
Multiplies the range on the range axis/axes by the specified factor.

Methods inherited from class org.jfree.chart.plot.XYPlot

addAnnotation, addDomainMarker, addDomainMarker, addDomainMarker, addRangeMarker, addRangeMarker, addRangeMarker, calculateAxisSpace, calculateDomainAxisSpace, calculateRangeAxisSpace, clearAnnotations, clearDomainAxes, clearDomainMarkers, clearDomainMarkers, clearRangeAxes, clearRangeMarkers, clearRangeMarkers, clone, configureDomainAxes, configureRangeAxes, datasetChanged, draw, drawAnnotations, drawAxes, drawBackground, drawDomainCrosshair, drawDomainGridlines, drawDomainMarkers, drawDomainTickBands, drawHorizontalLine, drawQuadrants, drawRangeCrosshair, drawRangeGridlines, drawRangeMarkers, drawRangeTickBands, drawVerticalLine, drawZeroDomainBaseline, drawZeroRangeBaseline, equals, getAnnotations, getAxisOffset, getDataRange, getDataset, getDataset, getDatasetCount, getDatasetRenderingOrder, getDomainAxis, getDomainAxis, getDomainAxisCount, getDomainAxisEdge, getDomainAxisEdge, getDomainAxisForDataset, getDomainAxisIndex, getDomainAxisLocation, getDomainAxisLocation, getDomainCrosshairPaint, getDomainCrosshairStroke, getDomainCrosshairValue, getDomainGridlinePaint, getDomainGridlineStroke, getDomainMarkers, getDomainMarkers, getDomainTickBandPaint, getDomainZeroBaselinePaint, getDomainZeroBaselineStroke, getFixedDomainAxisSpace, getFixedLegendItems, getFixedRangeAxisSpace, getIndexOf, getLegendItems, getOrientation, getPlotType, getQuadrantOrigin, getQuadrantPaint, getRangeAxis, getRangeAxis, getRangeAxisCount, getRangeAxisEdge, getRangeAxisEdge, getRangeAxisForDataset, getRangeAxisIndex, getRangeAxisLocation, getRangeAxisLocation, getRangeCrosshairPaint, getRangeCrosshairStroke, getRangeCrosshairValue, getRangeGridlinePaint, getRangeGridlineStroke, getRangeMarkers, getRangeMarkers, getRangeTickBandPaint, getRangeZeroBaselinePaint, getRangeZeroBaselineStroke, getRenderer, getRenderer, getRendererForDataset, getSeriesCount, getSeriesRenderingOrder, getWeight, handleClick, indexOf, isDomainCrosshairLockedOnData, isDomainCrosshairVisible, isDomainGridlinesVisible, isDomainZeroBaselineVisible, isDomainZoomable, isRangeCrosshairLockedOnData, isRangeCrosshairVisible, isRangeGridlinesVisible, isRangeZeroBaselineVisible, isRangeZoomable, mapDatasetToDomainAxis, mapDatasetToRangeAxis, removeAnnotation, render, rendererChanged, setAxisOffset, setDataset, setDataset, setDatasetRenderingOrder, setDomainAxes, setDomainAxis, setDomainAxis, setDomainAxis, setDomainAxisLocation, setDomainAxisLocation, setDomainAxisLocation, setDomainAxisLocation, setDomainCrosshairLockedOnData, setDomainCrosshairPaint, setDomainCrosshairStroke, setDomainCrosshairValue, setDomainCrosshairValue, setDomainCrosshairVisible, setDomainGridlinePaint, setDomainGridlineStroke, setDomainGridlinesVisible, setDomainTickBandPaint, setDomainZeroBaselinePaint, setDomainZeroBaselineStroke, setDomainZeroBaselineVisible, setFixedDomainAxisSpace, setFixedLegendItems, setFixedRangeAxisSpace, setOrientation, setQuadrantOrigin, setQuadrantPaint, setRangeAxes, setRangeAxis, setRangeAxis, setRangeAxis, setRangeAxisLocation, setRangeAxisLocation, setRangeAxisLocation, setRangeAxisLocation, setRangeCrosshairLockedOnData, setRangeCrosshairPaint, setRangeCrosshairStroke, setRangeCrosshairValue, setRangeCrosshairValue, setRangeCrosshairVisible, setRangeGridlinePaint, setRangeGridlineStroke, setRangeGridlinesVisible, setRangeTickBandPaint, setRangeZeroBaselinePaint, setRangeZeroBaselineStroke, setRangeZeroBaselineVisible, setRenderer, setRenderer, setRenderer, setRenderers, setSeriesRenderingOrder, setWeight, zoomDomainAxes, zoomDomainAxes, zoomRangeAxes, zoomRangeAxes

Methods inherited from class org.jfree.chart.plot.Plot

addChangeListener, axisChanged, clone, datasetChanged, draw, drawBackground, drawBackgroundImage, drawNoDataMessage, drawOutline, equals, fillBackground, getBackgroundAlpha, getBackgroundImage, getBackgroundImageAlignment, getBackgroundImageAlpha, getBackgroundPaint, getDatasetGroup, getDrawingSupplier, getForegroundAlpha, getInsets, getLegendItems, getNoDataMessage, getNoDataMessageFont, getNoDataMessagePaint, getOutlinePaint, getOutlineStroke, getParent, getPlotType, getRectX, getRectY, getRootPlot, handleClick, isSubplot, markerChanged, notifyListeners, removeChangeListener, resolveDomainAxisLocation, resolveRangeAxisLocation, setBackgroundAlpha, setBackgroundImage, setBackgroundImageAlignment, setBackgroundImageAlpha, setBackgroundPaint, setDatasetGroup, setDrawingSupplier, setForegroundAlpha, setInsets, setInsets, setNoDataMessage, setNoDataMessageFont, setNoDataMessagePaint, setOutlinePaint, setOutlineStroke, setParent, zoom

Constructor Details

CombinedDomainXYPlot

public CombinedDomainXYPlot()
Default constructor.

CombinedDomainXYPlot

public CombinedDomainXYPlot(ValueAxis domainAxis)
Creates a new combined plot that shares a domain axis among multiple subplots.
Parameters:
domainAxis - the shared axis.

Method Details

add

public void add(XYPlot subplot)
Adds a subplot (with a default 'weight' of 1) and sends a PlotChangeEvent to all registered listeners.

The domain axis for the subplot will be set to null. You must ensure that the subplot has a non-null range axis.

Parameters:
subplot - the subplot (null not permitted).

add

public void add(XYPlot subplot,
                int weight)
Adds a subplot with the specified weight and sends a PlotChangeEvent to all registered listeners. The weight determines how much space is allocated to the subplot relative to all the other subplots.

The domain axis for the subplot will be set to null. You must ensure that the subplot has a non-null range axis.

Parameters:
subplot - the subplot (null not permitted).
weight - the weight (must be >= 1).

calculateAxisSpace

protected AxisSpace calculateAxisSpace(Graphics2D g2,
                                       Rectangle2D plotArea)
Calculates the axis space required.
Overrides:
calculateAxisSpace in interface XYPlot
Parameters:
g2 - the graphics device.
plotArea - the plot area.
Returns:
The space.

clone

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

draw

public void draw(Graphics2D g2,
                 Rectangle2D area,
                 Point2D anchor,
                 PlotState parentState,
                 PlotRenderingInfo info)
Draws the plot within the specified area on a graphics device.
Overrides:
draw in interface XYPlot
Parameters:
g2 - the graphics device.
area - the plot area (in Java2D space).
anchor - an anchor point in Java2D space (null permitted).
parentState - the state from the parent plot, if there is one (null permitted).
info - collects chart drawing information (null permitted).

equals

public boolean equals(Object obj)
Tests this plot for equality with another object.
Overrides:
equals in interface XYPlot
Parameters:
obj - the other object.
Returns:
true or false.

findSubplot

public XYPlot findSubplot(PlotRenderingInfo info,
                          Point2D source)
Returns the subplot (if any) that contains the (x, y) point (specified in Java2D space).
Parameters:
info - the chart rendering info.
source - the source point.
Returns:
A subplot (possibly null).

getDataRange

public Range getDataRange(ValueAxis axis)
Returns the range for the specified axis. This is the combined range of all the subplots.
Specified by:
getDataRange in interface ValueAxisPlot
Overrides:
getDataRange in interface XYPlot
Parameters:
axis - the axis.
Returns:
The range (possibly null).

getGap

public double getGap()
Returns the gap between subplots, measured in Java2D units.
Returns:
The gap (in Java2D units).

getLegendItems

public LegendItemCollection getLegendItems()
Returns a collection of legend items for the plot.
Specified by:
getLegendItems in interface LegendItemSource
Overrides:
getLegendItems in interface XYPlot
Returns:
The legend items.

getPlotType

public String getPlotType()
Returns a string describing the type of plot.
Overrides:
getPlotType in interface XYPlot
Returns:
The type of plot.

getSubplots

public List getSubplots()
Returns the list of subplots.
Returns:
An unmodifiable list of subplots.

handleClick

public void handleClick(int x,
                        int y,
                        PlotRenderingInfo info)
Handles a 'click' on the plot by updating the anchor values.
Overrides:
handleClick in interface XYPlot
Parameters:
x - x-coordinate, where the click occured.
y - y-coordinate, where the click occured.
info - object containing information about the plot dimensions.

plotChanged

public void plotChanged(PlotChangeEvent event)
Receives a PlotChangeEvent and responds by notifying all listeners.
Specified by:
plotChanged in interface PlotChangeListener
Parameters:
event - the event.

remove

public void remove(XYPlot subplot)
Removes a subplot from the combined chart and sends a PlotChangeEvent to all registered listeners.
Parameters:
subplot - the subplot (null not permitted).

setFixedRangeAxisSpace

public void setFixedRangeAxisSpace(AxisSpace space)
Sets the fixed range axis space.
Overrides:
setFixedRangeAxisSpace in interface XYPlot
Parameters:
space - the space (null permitted).

setFixedRangeAxisSpaceForSubplots

protected void setFixedRangeAxisSpaceForSubplots(AxisSpace space)
Sets the size (width or height, depending on the orientation of the plot) for the domain axis of each subplot.
Parameters:
space - the space.

setGap

public void setGap(double gap)
Sets the amount of space between subplots and sends a PlotChangeEvent to all registered listeners.
Parameters:
gap - the gap between subplots (in Java2D units).

setOrientation

public void setOrientation(PlotOrientation orientation)
Sets the orientation for the plot (also changes the orientation for all the subplots to match).
Overrides:
setOrientation in interface XYPlot
Parameters:
orientation - the orientation (null not allowed).

setRenderer

public void setRenderer(XYItemRenderer renderer)
Sets the item renderer FOR ALL SUBPLOTS. Registered listeners are notified that the plot has been modified.

Note: usually you will want to set the renderer independently for each subplot, which is NOT what this method does.

Overrides:
setRenderer in interface XYPlot
Parameters:
renderer - the new renderer.

zoomRangeAxes

public void zoomRangeAxes(double lowerPercent,
                          double upperPercent,
                          PlotRenderingInfo info,
                          Point2D source)
Zooms in on the range axes.
Specified by:
zoomRangeAxes in interface Zoomable
Overrides:
zoomRangeAxes in interface XYPlot
Parameters:
lowerPercent - the lower bound.
upperPercent - the upper bound.
info - the plot rendering info.
source - the source point.

zoomRangeAxes

public void zoomRangeAxes(double factor,
                          PlotRenderingInfo info,
                          Point2D source)
Multiplies the range on the range axis/axes by the specified factor.
Specified by:
zoomRangeAxes in interface Zoomable
Overrides:
zoomRangeAxes in interface XYPlot
Parameters:
factor - the zoom factor.
info - the plot rendering info.
source - the source point.