public class CombinedDomainXYPlot extends XYPlot implements PlotChangeListener
XYPlot
that contains multiple subplots that share a
common domain axis.DEFAULT_CROSSHAIR_PAINT, DEFAULT_CROSSHAIR_STROKE, DEFAULT_CROSSHAIR_VISIBLE, DEFAULT_GRIDLINE_PAINT, DEFAULT_GRIDLINE_STROKE, localizationResources
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 and Description |
---|
CombinedDomainXYPlot()
Default constructor.
|
CombinedDomainXYPlot(ValueAxis domainAxis)
Creates a new combined plot that shares a domain axis among multiple
subplots.
|
Modifier and Type | Method and Description |
---|---|
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(java.awt.Graphics2D g2,
java.awt.geom.Rectangle2D plotArea)
Calculates the axis space required.
|
java.lang.Object |
clone()
Returns a clone of the annotation.
|
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.
|
XYPlot |
findSubplot(PlotRenderingInfo info,
java.awt.geom.Point2D source)
Returns the subplot (if any) that contains the (x, y) point (specified
in Java2D space).
|
Range |
getDataRange(ValueAxis axis)
Returns a range representing the extent of the data values in this plot
(obtained from the subplots) that will be rendered against 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.
|
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.
|
boolean |
isRangePannable()
Returns
true if the range is pannable for at least one subplot,
and false otherwise. |
void |
panRangeAxes(double panRange,
PlotRenderingInfo info,
java.awt.geom.Point2D source)
Pans all range axes by the specified percentage.
|
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 and sends a
PlotChangeEvent to
all registered listeners. |
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 |
setRangePannable(boolean pannable)
Sets the flag, on each of the subplots, that controls whether or not the
range is pannable.
|
void |
setRenderer(XYItemRenderer renderer)
Sets the item renderer FOR ALL SUBPLOTS.
|
void |
setShadowGenerator(ShadowGenerator generator)
Sets the shadow generator for the plot (and all subplots) and sends
a
PlotChangeEvent to all registered listeners. |
void |
zoomRangeAxes(double lowerPercent,
double upperPercent,
PlotRenderingInfo info,
java.awt.geom.Point2D source)
Zooms in on the range axes.
|
void |
zoomRangeAxes(double factor,
PlotRenderingInfo info,
java.awt.geom.Point2D source)
Multiplies the range on the range axis/axes by the specified factor.
|
void |
zoomRangeAxes(double factor,
PlotRenderingInfo state,
java.awt.geom.Point2D source,
boolean useAnchor)
Multiplies the range on the range axis/axes by the specified factor.
|
addAnnotation, addAnnotation, addDomainMarker, addDomainMarker, addDomainMarker, addDomainMarker, addRangeMarker, addRangeMarker, addRangeMarker, addRangeMarker, annotationChanged, calculateDomainAxisSpace, calculateRangeAxisSpace, clearAnnotations, clearDomainAxes, clearDomainMarkers, clearDomainMarkers, clearRangeAxes, clearRangeMarkers, clearRangeMarkers, configureDomainAxes, configureRangeAxes, datasetChanged, drawAnnotations, drawAxes, drawBackground, drawDomainCrosshair, drawDomainGridlines, drawDomainMarkers, drawDomainTickBands, drawHorizontalLine, drawQuadrants, drawRangeCrosshair, drawRangeGridlines, drawRangeMarkers, drawRangeTickBands, drawVerticalLine, drawZeroDomainBaseline, drawZeroRangeBaseline, getAnnotations, getAxisOffset, getDataset, getDataset, getDatasetCount, getDatasetRenderingOrder, getDomainAxis, getDomainAxis, getDomainAxisCount, getDomainAxisEdge, getDomainAxisEdge, getDomainAxisForDataset, getDomainAxisIndex, getDomainAxisLocation, getDomainAxisLocation, getDomainCrosshairPaint, getDomainCrosshairStroke, getDomainCrosshairValue, getDomainGridlinePaint, getDomainGridlineStroke, getDomainMarkers, getDomainMarkers, getDomainMinorGridlinePaint, getDomainMinorGridlineStroke, getDomainTickBandPaint, getDomainZeroBaselinePaint, getDomainZeroBaselineStroke, getFixedDomainAxisSpace, getFixedLegendItems, getFixedRangeAxisSpace, getIndexOf, getOrientation, getQuadrantOrigin, getQuadrantPaint, getRangeAxis, getRangeAxis, getRangeAxisCount, getRangeAxisEdge, getRangeAxisEdge, getRangeAxisForDataset, getRangeAxisIndex, getRangeAxisLocation, getRangeAxisLocation, getRangeCrosshairPaint, getRangeCrosshairStroke, getRangeCrosshairValue, getRangeGridlinePaint, getRangeGridlineStroke, getRangeMarkers, getRangeMarkers, getRangeMinorGridlinePaint, getRangeMinorGridlineStroke, getRangeTickBandPaint, getRangeZeroBaselinePaint, getRangeZeroBaselineStroke, getRenderer, getRenderer, getRendererCount, getRendererForDataset, getSeriesCount, getSeriesRenderingOrder, getShadowGenerator, getWeight, indexOf, isDomainCrosshairLockedOnData, isDomainCrosshairVisible, isDomainGridlinesVisible, isDomainMinorGridlinesVisible, isDomainPannable, isDomainZeroBaselineVisible, isDomainZoomable, isRangeCrosshairLockedOnData, isRangeCrosshairVisible, isRangeGridlinesVisible, isRangeMinorGridlinesVisible, isRangeZeroBaselineVisible, isRangeZoomable, mapDatasetToDomainAxes, mapDatasetToDomainAxis, mapDatasetToRangeAxes, mapDatasetToRangeAxis, panDomainAxes, removeAnnotation, removeAnnotation, removeDomainMarker, removeDomainMarker, removeDomainMarker, removeDomainMarker, removeRangeMarker, removeRangeMarker, removeRangeMarker, removeRangeMarker, render, rendererChanged, setAxisOffset, setDataset, setDataset, setDatasetRenderingOrder, setDomainAxes, setDomainAxis, setDomainAxis, setDomainAxis, setDomainAxisLocation, setDomainAxisLocation, setDomainAxisLocation, setDomainAxisLocation, setDomainCrosshairLockedOnData, setDomainCrosshairPaint, setDomainCrosshairStroke, setDomainCrosshairValue, setDomainCrosshairValue, setDomainCrosshairVisible, setDomainGridlinePaint, setDomainGridlineStroke, setDomainGridlinesVisible, setDomainMinorGridlinePaint, setDomainMinorGridlineStroke, setDomainMinorGridlinesVisible, setDomainPannable, setDomainTickBandPaint, setDomainZeroBaselinePaint, setDomainZeroBaselineStroke, setDomainZeroBaselineVisible, setFixedDomainAxisSpace, setFixedDomainAxisSpace, setFixedLegendItems, setFixedRangeAxisSpace, setQuadrantOrigin, setQuadrantPaint, setRangeAxes, setRangeAxis, setRangeAxis, setRangeAxis, setRangeAxisLocation, setRangeAxisLocation, setRangeAxisLocation, setRangeAxisLocation, setRangeCrosshairLockedOnData, setRangeCrosshairPaint, setRangeCrosshairStroke, setRangeCrosshairValue, setRangeCrosshairValue, setRangeCrosshairVisible, setRangeGridlinePaint, setRangeGridlineStroke, setRangeGridlinesVisible, setRangeMinorGridlinePaint, setRangeMinorGridlineStroke, setRangeMinorGridlinesVisible, setRangeTickBandPaint, setRangeZeroBaselinePaint, setRangeZeroBaselineStroke, setRangeZeroBaselineVisible, setRenderer, setRenderer, setRenderers, setSeriesRenderingOrder, setWeight, zoomDomainAxes, zoomDomainAxes, zoomDomainAxes
addChangeListener, axisChanged, createAndAddEntity, drawBackgroundImage, drawNoDataMessage, drawOutline, fillBackground, fillBackground, fireChangeEvent, getBackgroundAlpha, getBackgroundImage, getBackgroundImageAlignment, getBackgroundImageAlpha, getBackgroundPaint, getDatasetGroup, getDrawingSupplier, getForegroundAlpha, getInsets, getNoDataMessage, getNoDataMessageFont, getNoDataMessagePaint, getOutlinePaint, getOutlineStroke, getParent, getRectX, getRectY, getRootPlot, isNotify, isOutlineVisible, isSubplot, markerChanged, notifyListeners, removeChangeListener, resolveDomainAxisLocation, resolveRangeAxisLocation, setBackgroundAlpha, setBackgroundImage, setBackgroundImageAlignment, setBackgroundImageAlpha, setBackgroundPaint, setDatasetGroup, setDrawingSupplier, setDrawingSupplier, setForegroundAlpha, setInsets, setInsets, setNoDataMessage, setNoDataMessageFont, setNoDataMessagePaint, setNotify, setOutlinePaint, setOutlineStroke, setOutlineVisible, setParent, zoom
public CombinedDomainXYPlot()
public CombinedDomainXYPlot(ValueAxis domainAxis)
domainAxis
- the shared axis.public java.lang.String getPlotType()
getPlotType
in class XYPlot
public double getGap()
setGap(double)
public void setGap(double gap)
PlotChangeEvent
to all registered listeners.gap
- the gap between subplots (in Java2D units).getGap()
public boolean isRangePannable()
true
if the range is pannable for at least one subplot,
and false
otherwise.isRangePannable
in interface Pannable
isRangePannable
in class XYPlot
public void setRangePannable(boolean pannable)
setRangePannable
in class XYPlot
pannable
- the new flag value.public void setOrientation(PlotOrientation orientation)
setOrientation
in class XYPlot
orientation
- the orientation (null
not allowed).XYPlot.getOrientation()
public void setShadowGenerator(ShadowGenerator generator)
PlotChangeEvent
to all registered listeners.setShadowGenerator
in class XYPlot
generator
- the new generator (null
permitted).public Range getDataRange(ValueAxis axis)
getDataRange
in interface ValueAxisPlot
getDataRange
in class XYPlot
axis
- the axis.null
).public void add(XYPlot subplot)
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.
subplot
- the subplot (null
not permitted).public void add(XYPlot subplot, int weight)
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.
subplot
- the subplot (null
not permitted).weight
- the weight (must be >= 1).public void remove(XYPlot subplot)
PlotChangeEvent
to all registered listeners.subplot
- the subplot (null
not permitted).public java.util.List getSubplots()
null
.protected AxisSpace calculateAxisSpace(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D plotArea)
calculateAxisSpace
in class XYPlot
g2
- the graphics device.plotArea
- the plot area.public void draw(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D area, java.awt.geom.Point2D anchor, PlotState parentState, PlotRenderingInfo info)
draw
in class XYPlot
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).public LegendItemCollection getLegendItems()
getLegendItems
in interface LegendItemSource
getLegendItems
in class XYPlot
public void zoomRangeAxes(double factor, PlotRenderingInfo info, java.awt.geom.Point2D source)
zoomRangeAxes
in interface Zoomable
zoomRangeAxes
in class XYPlot
factor
- the zoom factor.info
- the plot rendering info (null
not permitted).source
- the source point (null
not permitted).XYPlot.zoomDomainAxes(double, PlotRenderingInfo, Point2D, boolean)
public void zoomRangeAxes(double factor, PlotRenderingInfo state, java.awt.geom.Point2D source, boolean useAnchor)
zoomRangeAxes
in interface Zoomable
zoomRangeAxes
in class XYPlot
factor
- the zoom factor.state
- the plot state.source
- the source point (in Java2D coordinates).useAnchor
- use source point as zoom anchor?XYPlot.zoomDomainAxes(double, PlotRenderingInfo, Point2D, boolean)
public void zoomRangeAxes(double lowerPercent, double upperPercent, PlotRenderingInfo info, java.awt.geom.Point2D source)
zoomRangeAxes
in interface Zoomable
zoomRangeAxes
in class XYPlot
lowerPercent
- the lower bound.upperPercent
- the upper bound.info
- the plot rendering info (null
not permitted).source
- the source point (null
not permitted).XYPlot.zoomDomainAxes(double, double, PlotRenderingInfo, Point2D)
public void panRangeAxes(double panRange, PlotRenderingInfo info, java.awt.geom.Point2D source)
panRangeAxes
in interface Pannable
panRangeAxes
in class XYPlot
panRange
- the distance to pan (as a percentage of the axis length).info
- the plot info (null
not permitted).source
- the source point where the pan action started.public XYPlot findSubplot(PlotRenderingInfo info, java.awt.geom.Point2D source)
info
- the chart rendering info (null
not permitted).source
- the source point (null
not permitted).null
).public void setRenderer(XYItemRenderer renderer)
Note: usually you will want to set the renderer independently for each subplot, which is NOT what this method does.
setRenderer
in class XYPlot
renderer
- the new renderer.XYPlot.getRenderer()
public void setFixedRangeAxisSpace(AxisSpace space)
PlotChangeEvent
to
all registered listeners.setFixedRangeAxisSpace
in class XYPlot
space
- the space (null
permitted).XYPlot.getFixedRangeAxisSpace()
protected void setFixedRangeAxisSpaceForSubplots(AxisSpace space)
space
- the space.public void handleClick(int x, int y, PlotRenderingInfo info)
handleClick
in class XYPlot
x
- x-coordinate, where the click occured.y
- y-coordinate, where the click occured.info
- object containing information about the plot dimensions.public void plotChanged(PlotChangeEvent event)
PlotChangeEvent
and responds by notifying all
listeners.plotChanged
in interface PlotChangeListener
event
- the event.public boolean equals(java.lang.Object obj)
public java.lang.Object clone() throws java.lang.CloneNotSupportedException