org.jfree.chart.plot
Class CombinedRangeXYPlot

java.lang.Object
  extended byorg.jfree.chart.plot.Plot
      extended byorg.jfree.chart.plot.XYPlot
          extended byorg.jfree.chart.plot.CombinedRangeXYPlot
All Implemented Interfaces:
AxisChangeListener, AxisConstants, java.lang.Cloneable, DatasetChangeListener, java.util.EventListener, PlotChangeListener, java.beans.PropertyChangeListener, org.jfree.util.PublicCloneable, java.io.Serializable, ValueAxisPlot

public class CombinedRangeXYPlot
extends XYPlot
implements java.lang.Cloneable, org.jfree.util.PublicCloneable, java.io.Serializable, PlotChangeListener

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

Author:
Bill Kelemen (bill@kelemen-usa.com)., David Gilbert.
See Also:
Serialized Form

Field Summary
protected static java.util.ResourceBundle localizationResources
          The resourceBundle for the localization.
 
Fields inherited from class org.jfree.chart.plot.XYPlot
DEFAULT_CROSSHAIR_PAINT, DEFAULT_CROSSHAIR_STROKE, DEFAULT_CROSSHAIR_VISIBLE, DEFAULT_GRIDLINE_PAINT, DEFAULT_GRIDLINE_STROKE
 
Fields inherited from class org.jfree.chart.plot.Plot
DEFAULT_BACKGROUND_ALPHA, DEFAULT_BACKGROUND_PAINT, DEFAULT_FOREGROUND_ALPHA, DEFAULT_INSETS, DEFAULT_OUTLINE_PAINT, DEFAULT_OUTLINE_STROKE, MINIMUM_HEIGHT_TO_DRAW, MINIMUM_WIDTH_TO_DRAW, ZERO
 
Fields inherited from interface org.jfree.chart.axis.AxisConstants
DEFAULT_AXIS_LABEL_FONT, DEFAULT_AXIS_LABEL_INSETS, DEFAULT_AXIS_LABEL_PAINT, DEFAULT_AXIS_LINE_PAINT, DEFAULT_AXIS_LINE_STROKE, DEFAULT_AXIS_VISIBLE, DEFAULT_TICK_LABEL_FONT, DEFAULT_TICK_LABEL_INSETS, DEFAULT_TICK_LABEL_PAINT, DEFAULT_TICK_LABELS_VISIBLE, DEFAULT_TICK_MARK_INSIDE_LENGTH, DEFAULT_TICK_MARK_OUTSIDE_LENGTH, DEFAULT_TICK_MARK_PAINT, DEFAULT_TICK_MARK_STROKE, DEFAULT_TICK_MARKS_VISIBLE
 
Constructor Summary
CombinedRangeXYPlot()
          Default constructor.
CombinedRangeXYPlot(ValueAxis rangeAxis)
          Creates a new plot.
 
Method Summary
 void add(XYPlot subplot)
          Adds a subplot, with a default 'weight' of 1.
 void add(XYPlot subplot, int weight)
          Adds a subplot with a particular weight (greater than or equal to one).
protected  AxisSpace calculateAxisSpace(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D plotArea)
          Calculates the space required for the axes.
 java.lang.Object clone()
          Returns a clone of the plot.
 void draw(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D area, PlotState parentState, PlotRenderingInfo info)
          Draws the plot on a Java 2D graphics device (such as the screen or a printer).
 void draw(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D area, java.awt.geom.Point2D anchor, PlotState parentState, PlotRenderingInfo info)
          Draws the plot within the specified area on a graphics device.
 boolean equals(java.lang.Object obj)
          Tests this plot for equality with another object.
 Range getDataRange(ValueAxis axis)
          Returns the range for the axis.
 double getGap()
          Returns the space between subplots.
 LegendItemCollection getLegendItems()
          Returns a collection of legend items for the plot.
 java.lang.String getPlotType()
          Returns a string describing the type of plot.
 java.util.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.
protected  void setFixedDomainAxisSpaceForSubplots(AxisSpace space)
          Sets the space (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.
 void setOrientation(PlotOrientation orientation)
          Sets the orientation for the plot (and all its subplots).
 void setRenderer(XYItemRenderer renderer)
          Sets the item renderer FOR ALL SUBPLOTS.
 void zoom(double percent)
          A zoom method that (currently) does nothing.
 
Methods inherited from class org.jfree.chart.plot.XYPlot
addAnnotation, addDomainMarker, addDomainMarker, addRangeMarker, addRangeMarker, addSecondaryDomainMarker, addSecondaryDomainMarker, addSecondaryRangeMarker, addSecondaryRangeMarker, calculateDomainAxisSpace, calculateRangeAxisSpace, clearAnnotations, clearDomainMarkers, clearRangeMarkers, clearSecondaryDomainAxes, clearSecondaryRangeAxes, clearSecondaryRangeMarkers, clearSecondaryRangeMarkers, configureSecondaryDomainAxes, configureSecondaryRangeAxes, datasetChanged, drawAnnotations, drawAxes, drawDomainGridlines, drawDomainMarkers, drawDomainTickBands, drawHorizontalLine, drawRangeGridlines, drawRangeMarkers, drawRangeTickBands, drawSecondaryDomainMarkers, drawSecondaryRangeMarkers, drawVerticalLine, getAxisOffset, getDataset, getDomainAxis, getDomainAxisEdge, getDomainAxisLocation, getDomainCrosshairPaint, getDomainCrosshairStroke, getDomainCrosshairValue, getDomainGridlinePaint, getDomainGridlineStroke, getDomainMarkers, getDomainTickBandPaint, getFixedDomainAxisSpace, getFixedRangeAxisSpace, getOrientation, getRangeAxis, getRangeAxisEdge, getRangeAxisLocation, getRangeCrosshairPaint, getRangeCrosshairStroke, getRangeCrosshairValue, getRangeGridlinePaint, getRangeGridlineStroke, getRangeMarkers, getRangeTickBandPaint, getRenderer, getSecondaryDataset, getSecondaryDatasetCount, getSecondaryDomainAxis, getSecondaryDomainAxisCount, getSecondaryDomainAxisEdge, getSecondaryDomainAxisLocation, getSecondaryDomainAxisMappedToDataset, getSecondaryDomainMarkers, getSecondaryRangeAxis, getSecondaryRangeAxisCount, getSecondaryRangeAxisEdge, getSecondaryRangeAxisLocation, getSecondaryRangeAxisMappedToDataset, getSecondaryRangeMarkers, getSecondaryRenderer, getSeriesCount, getWeight, isDomainCrosshairLockedOnData, isDomainCrosshairVisible, isDomainGridlinesVisible, isRangeCrosshairLockedOnData, isRangeCrosshairVisible, isRangeGridlinesVisible, mapSecondaryDatasetToDomainAxis, mapSecondaryDatasetToRangeAxis, propertyChange, render, render2, setAxisOffset, setDataset, setDomainAxis, setDomainAxisLocation, setDomainAxisLocation, setDomainCrosshairLockedOnData, setDomainCrosshairPaint, setDomainCrosshairStroke, setDomainCrosshairValue, setDomainCrosshairValue, setDomainCrosshairVisible, setDomainGridlinePaint, setDomainGridlineStroke, setDomainGridlinesVisible, setDomainTickBandPaint, setFixedDomainAxisSpace, setFixedRangeAxisSpace, setRangeAxis, setRangeAxisLocation, setRangeAxisLocation, setRangeCrosshairLockedOnData, setRangeCrosshairPaint, setRangeCrosshairStroke, setRangeCrosshairValue, setRangeCrosshairValue, setRangeCrosshairVisible, setRangeGridlinePaint, setRangeGridlineStroke, setRangeGridlinesVisible, setRangeTickBandPaint, setSecondaryDataset, setSecondaryDomainAxis, setSecondaryDomainAxisLocation, setSecondaryRangeAxis, setSecondaryRangeAxisLocation, setSecondaryRenderer, setWeight, zoomHorizontalAxes, zoomHorizontalAxes, zoomVerticalAxes, zoomVerticalAxes
 
Methods inherited from class org.jfree.chart.plot.Plot
addChangeListener, axisChanged, drawBackground, drawNoDataMessage, drawOutline, getBackgroundAlpha, getBackgroundImage, getBackgroundImageAlignment, getBackgroundPaint, getDataAreaRatio, getDatasetGroup, getDrawingSupplier, getForegroundAlpha, getInsets, getNoDataMessage, getNoDataMessageFont, getNoDataMessagePaint, getOutlinePaint, getOutlineStroke, getParent, getRectX, getRectY, getRootPlot, isSubplot, notifyListeners, removeChangeListener, resolveDomainAxisLocation, resolveRangeAxisLocation, setBackgroundAlpha, setBackgroundImage, setBackgroundImageAlignment, setBackgroundPaint, setDataAreaRatio, setDatasetGroup, setDrawingSupplier, setForegroundAlpha, setInsets, setInsets, setNoDataMessage, setNoDataMessageFont, setNoDataMessagePaint, setOutlinePaint, setOutlineStroke, setParent
 
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

localizationResources

protected static java.util.ResourceBundle localizationResources
The resourceBundle for the localization.

Constructor Detail

CombinedRangeXYPlot

public CombinedRangeXYPlot()
Default constructor.


CombinedRangeXYPlot

public CombinedRangeXYPlot(ValueAxis rangeAxis)
Creates a new plot.

Parameters:
rangeAxis - the shared axis.
Method Detail

getPlotType

public java.lang.String getPlotType()
Returns a string describing the type of plot.

Overrides:
getPlotType in class XYPlot
Returns:
the type of plot.

getGap

public double getGap()
Returns the space between subplots.

Returns:
the gap

setGap

public void setGap(double gap)
Sets the amount of space between subplots.

Parameters:
gap - the gap between subplots

add

public void add(XYPlot subplot)
Adds a subplot, with a default 'weight' of 1.

Parameters:
subplot - the subplot.

add

public void add(XYPlot subplot,
                int weight)
Adds a subplot with a particular weight (greater than or equal to one). The weight determines how much space is allocated to the subplot relative to all the other subplots.

Parameters:
subplot - the subplot.
weight - the weight (must be 1 or greater).

remove

public void remove(XYPlot subplot)
Removes a subplot from the combined chart.

Parameters:
subplot - the subplot.

getSubplots

public java.util.List getSubplots()
Returns the list of subplots.

Returns:
the list of subplots.

calculateAxisSpace

protected AxisSpace calculateAxisSpace(java.awt.Graphics2D g2,
                                       java.awt.geom.Rectangle2D plotArea)
Calculates the space required for the axes.

Overrides:
calculateAxisSpace in class XYPlot
Parameters:
g2 - the graphics device.
plotArea - the plot area.
Returns:
The space required for the axes.

draw

public void draw(java.awt.Graphics2D g2,
                 java.awt.geom.Rectangle2D area,
                 PlotState parentState,
                 PlotRenderingInfo info)
Draws the plot on a Java 2D graphics device (such as the screen or a printer). Will perform all the placement calculations for each sub-plots and then tell these to draw themselves.

Overrides:
draw in class XYPlot
Parameters:
g2 - the graphics device.
area - the area within which the plot (including axis labels) should be drawn.
parentState - the state from the parent plot (if there is one).
info - collects information about the drawing (null permitted).

draw

public void draw(java.awt.Graphics2D g2,
                 java.awt.geom.Rectangle2D area,
                 java.awt.geom.Point2D anchor,
                 PlotState parentState,
                 PlotRenderingInfo info)
Draws the plot within the specified area on a graphics device.

Overrides:
draw in class 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).

getLegendItems

public LegendItemCollection getLegendItems()
Returns a collection of legend items for the plot.

Overrides:
getLegendItems in class XYPlot
Returns:
the legend items.

zoom

public void zoom(double percent)
A zoom method that (currently) does nothing.

Overrides:
zoom in class XYPlot
Parameters:
percent - the zoom percentage.

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 class XYPlot
Parameters:
renderer - the new renderer.

setOrientation

public void setOrientation(PlotOrientation orientation)
Sets the orientation for the plot (and all its subplots).

Overrides:
setOrientation in class XYPlot
Parameters:
orientation - the orientation.

getDataRange

public Range getDataRange(ValueAxis axis)
Returns the range for the axis. This is the combined range of all the subplots.

Specified by:
getDataRange in interface ValueAxisPlot
Overrides:
getDataRange in class XYPlot
Parameters:
axis - the axis.
Returns:
the range.

setFixedDomainAxisSpaceForSubplots

protected void setFixedDomainAxisSpaceForSubplots(AxisSpace space)
Sets the space (width or height, depending on the orientation of the plot) for the domain axis of each subplot.

Parameters:
space - the space.

handleClick

public void handleClick(int x,
                        int y,
                        PlotRenderingInfo info)
Handles a 'click' on the plot by updating the anchor values...

Overrides:
handleClick in class 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.

equals

public boolean equals(java.lang.Object obj)
Tests this plot for equality with another object.

Overrides:
equals in class XYPlot
Parameters:
obj - the other object.
Returns:
true or false.

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
Returns a clone of the plot.

Specified by:
clone in interface org.jfree.util.PublicCloneable
Overrides:
clone in class XYPlot
Returns:
A clone.
Throws:
java.lang.CloneNotSupportedException - this class will not throw this exception, but subclasses (if any) might.