Package org.jfree.chart.plot
Class CombinedRangeCategoryPlot
- java.lang.Object
-
- org.jfree.chart.plot.Plot
-
- org.jfree.chart.plot.CategoryPlot
-
- org.jfree.chart.plot.CombinedRangeCategoryPlot
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,java.util.EventListener
,AnnotationChangeListener
,AxisChangeListener
,MarkerChangeListener
,PlotChangeListener
,RendererChangeListener
,LegendItemSource
,Pannable
,ValueAxisPlot
,Zoomable
,PublicCloneable
,DatasetChangeListener
public class CombinedRangeCategoryPlot extends CategoryPlot implements PlotChangeListener
A combined category plot where the range axis is shared.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private double
gap
The gap between subplots.private static long
serialVersionUID
For serialization.private java.awt.geom.Rectangle2D[]
subplotArea
Temporary storage for the subplot areas.private java.util.List
subplots
Storage for the subplot references.-
Fields inherited from class org.jfree.chart.plot.CategoryPlot
DEFAULT_CROSSHAIR_PAINT, DEFAULT_CROSSHAIR_STROKE, DEFAULT_CROSSHAIR_VISIBLE, DEFAULT_DOMAIN_GRIDLINES_VISIBLE, DEFAULT_GRIDLINE_PAINT, DEFAULT_GRIDLINE_STROKE, DEFAULT_RANGE_GRIDLINES_VISIBLE, DEFAULT_VALUE_LABEL_FONT, 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
Constructors Constructor Description CombinedRangeCategoryPlot()
Default constructor.CombinedRangeCategoryPlot(ValueAxis rangeAxis)
Creates a new plot.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(CategoryPlot subplot)
Adds a subplot (with a default 'weight' of 1) and sends aPlotChangeEvent
to all registered listeners.void
add(CategoryPlot subplot, int weight)
Adds a subplot and sends aPlotChangeEvent
to all registered listeners.protected AxisSpace
calculateAxisSpace(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D plotArea)
Calculates the space required for the axes.boolean
canEqual(java.lang.Object other)
Ensures symmetry between super/subclass implementations of equals.java.lang.Object
clone()
Returns a clone of the plot.void
draw(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D area, java.awt.geom.Point2D anchor, PlotState parentState, PlotRenderingInfo info)
Draws the plot on a Java 2D graphics device (such as the screen or a printer).boolean
equals(java.lang.Object obj)
Tests the plot for equality with an arbitrary object.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 space between subplots.LegendItemCollection
getLegendItems()
Returns a collection of legend items for the 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 value.int
hashCode()
void
plotChanged(PlotChangeEvent event)
Receives aPlotChangeEvent
and responds by notifying all listeners.private void
readObject(java.io.ObjectInputStream stream)
Provides serialization support.void
remove(CategoryPlot subplot)
Removes a subplot from the combined chart.protected void
setFixedDomainAxisSpaceForSubplots(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 aPlotChangeEvent
to all registered listeners.void
setOrientation(PlotOrientation orientation)
Sets the orientation for the plot (and all the subplots).void
setShadowGenerator(ShadowGenerator generator)
Sets the shadow generator for the plot (and all subplots) and sends aPlotChangeEvent
to all registered listeners.-
Methods inherited from class org.jfree.chart.plot.CategoryPlot
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, drawRangeCrosshair, drawRangeGridlines, drawRangeLine, drawRangeMarkers, drawZeroRangeBaseline, getAnchorValue, getAnnotations, getAxisOffset, getCategories, getCategoriesForAxis, getColumnRenderingOrder, getCrosshairDatasetIndex, getDataset, getDataset, getDatasetCount, getDatasetRenderingOrder, getDatasets, getDomainAxes, getDomainAxis, getDomainAxis, getDomainAxisCount, getDomainAxisEdge, getDomainAxisEdge, getDomainAxisForDataset, getDomainAxisIndex, getDomainAxisLocation, getDomainAxisLocation, getDomainCrosshairColumnKey, getDomainCrosshairPaint, getDomainCrosshairRowKey, getDomainCrosshairStroke, getDomainGridlinePaint, getDomainGridlinePosition, getDomainGridlineStroke, getDomainMarkers, getDomainMarkers, getDrawSharedDomainAxis, getFixedDomainAxisSpace, getFixedLegendItems, getFixedRangeAxisSpace, getIndexOf, getOrientation, getPlotType, getRangeAxes, getRangeAxis, getRangeAxis, getRangeAxisCount, getRangeAxisEdge, getRangeAxisEdge, getRangeAxisForDataset, getRangeAxisIndex, getRangeAxisLocation, getRangeAxisLocation, getRangeCrosshairPaint, getRangeCrosshairStroke, getRangeCrosshairValue, getRangeGridlinePaint, getRangeGridlineStroke, getRangeMarkers, getRangeMarkers, getRangeMinorGridlinePaint, getRangeMinorGridlineStroke, getRangeZeroBaselinePaint, getRangeZeroBaselineStroke, getRenderer, getRenderer, getRendererCount, getRendererForDataset, getRenderers, getRowRenderingOrder, getShadowGenerator, getWeight, indexOf, isDomainCrosshairVisible, isDomainGridlinesVisible, isDomainPannable, isDomainZoomable, isRangeCrosshairLockedOnData, isRangeCrosshairVisible, isRangeGridlinesVisible, isRangeMinorGridlinesVisible, isRangePannable, isRangeZeroBaselineVisible, isRangeZoomable, mapDatasetToDomainAxes, mapDatasetToDomainAxis, mapDatasetToRangeAxes, mapDatasetToRangeAxis, panDomainAxes, panRangeAxes, removeAnnotation, removeAnnotation, removeDomainMarker, removeDomainMarker, removeDomainMarker, removeDomainMarker, removeRangeMarker, removeRangeMarker, removeRangeMarker, removeRangeMarker, render, rendererChanged, setAnchorValue, setAnchorValue, setAxisOffset, setColumnRenderingOrder, setCrosshairDatasetIndex, setCrosshairDatasetIndex, setDataset, setDataset, setDatasetRenderingOrder, setDomainAxes, setDomainAxis, setDomainAxis, setDomainAxis, setDomainAxisLocation, setDomainAxisLocation, setDomainAxisLocation, setDomainAxisLocation, setDomainCrosshairColumnKey, setDomainCrosshairColumnKey, setDomainCrosshairPaint, setDomainCrosshairRowKey, setDomainCrosshairRowKey, setDomainCrosshairStroke, setDomainCrosshairVisible, setDomainGridlinePaint, setDomainGridlinePosition, setDomainGridlineStroke, setDomainGridlinesVisible, setDrawSharedDomainAxis, setFixedDomainAxisSpace, setFixedDomainAxisSpace, setFixedLegendItems, setFixedRangeAxisSpace, setFixedRangeAxisSpace, setRangeAxes, setRangeAxis, setRangeAxis, setRangeAxis, setRangeAxisLocation, setRangeAxisLocation, setRangeAxisLocation, setRangeAxisLocation, setRangeCrosshairLockedOnData, setRangeCrosshairPaint, setRangeCrosshairStroke, setRangeCrosshairValue, setRangeCrosshairValue, setRangeCrosshairVisible, setRangeGridlinePaint, setRangeGridlineStroke, setRangeGridlinesVisible, setRangeMinorGridlinePaint, setRangeMinorGridlineStroke, setRangeMinorGridlinesVisible, setRangePannable, setRangeZeroBaselinePaint, setRangeZeroBaselineStroke, setRangeZeroBaselineVisible, setRenderer, setRenderer, setRenderer, setRenderer, setRenderers, setRowRenderingOrder, setWeight, zoom, zoomDomainAxes, zoomDomainAxes, zoomDomainAxes, zoomRangeAxes, zoomRangeAxes, zoomRangeAxes
-
Methods inherited from class org.jfree.chart.plot.Plot
addChangeListener, axisChanged, createAndAddEntity, drawBackgroundImage, drawNoDataMessage, drawOutline, fetchElementHintingFlag, fillBackground, fillBackground, fireChangeEvent, getBackgroundAlpha, getBackgroundImage, getBackgroundImageAlignment, getBackgroundImageAlpha, getBackgroundPaint, getChart, 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, setChart, setDatasetGroup, setDrawingSupplier, setDrawingSupplier, setForegroundAlpha, setInsets, setInsets, setNoDataMessage, setNoDataMessageFont, setNoDataMessagePaint, setNotify, setOutlinePaint, setOutlineStroke, setOutlineVisible, setParent
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
For serialization.- See Also:
- Constant Field Values
-
subplots
private java.util.List subplots
Storage for the subplot references.
-
gap
private double gap
The gap between subplots.
-
subplotArea
private transient java.awt.geom.Rectangle2D[] subplotArea
Temporary storage for the subplot areas.
-
-
Constructor Detail
-
CombinedRangeCategoryPlot
public CombinedRangeCategoryPlot()
Default constructor.
-
CombinedRangeCategoryPlot
public CombinedRangeCategoryPlot(ValueAxis rangeAxis)
Creates a new plot.- Parameters:
rangeAxis
- the shared range axis.
-
-
Method Detail
-
getGap
public double getGap()
Returns the space between subplots.- Returns:
- The gap (in Java2D units).
-
setGap
public void setGap(double gap)
Sets the amount of space between subplots and sends aPlotChangeEvent
to all registered listeners.- Parameters:
gap
- the gap between subplots (in Java2D units).
-
add
public void add(CategoryPlot subplot)
Adds a subplot (with a default 'weight' of 1) and sends aPlotChangeEvent
to all registered listeners.
You must ensure that the subplot has a non-null domain axis. The range axis for the subplot will be set tonull
.- Parameters:
subplot
- the subplot (null
not permitted).
-
add
public void add(CategoryPlot subplot, int weight)
Adds a subplot and sends aPlotChangeEvent
to all registered listeners.
You must ensure that the subplot has a non-null domain axis. The range axis for the subplot will be set tonull
.- Parameters:
subplot
- the subplot (null
not permitted).weight
- the weight (must be >= 1).
-
remove
public void remove(CategoryPlot subplot)
Removes a subplot from the combined chart.- Parameters:
subplot
- the subplot (null
not permitted).
-
getSubplots
public java.util.List getSubplots()
Returns the list of subplots. The returned list may be empty, but is nevernull
.- Returns:
- An unmodifiable 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 classCategoryPlot
- 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, java.awt.geom.Point2D anchor, 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 classCategoryPlot
- Parameters:
g2
- the graphics device.area
- the area within which the plot (including axis labels) should be drawn.anchor
- the anchor point (null
permitted).parentState
- the parent state.info
- collects information about the drawing (null
permitted).
-
setOrientation
public void setOrientation(PlotOrientation orientation)
Sets the orientation for the plot (and all the subplots).- Overrides:
setOrientation
in classCategoryPlot
- Parameters:
orientation
- the orientation.- See Also:
CategoryPlot.getOrientation()
-
setShadowGenerator
public void setShadowGenerator(ShadowGenerator generator)
Sets the shadow generator for the plot (and all subplots) and sends aPlotChangeEvent
to all registered listeners.- Overrides:
setShadowGenerator
in classCategoryPlot
- Parameters:
generator
- the new generator (null
permitted).
-
getDataRange
public 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. NOTE: This method is intended for internal JFreeChart use, and is public only so that code in the axis classes can call it. Since only the range axis is shared between subplots, the JFreeChart code will only call this method for the range values (although this is not checked/enforced).- Specified by:
getDataRange
in interfaceValueAxisPlot
- Overrides:
getDataRange
in classCategoryPlot
- Parameters:
axis
- the axis.- Returns:
- The range.
-
getLegendItems
public LegendItemCollection getLegendItems()
Returns a collection of legend items for the plot.- Specified by:
getLegendItems
in interfaceLegendItemSource
- Overrides:
getLegendItems
in classCategoryPlot
- Returns:
- The legend items.
-
setFixedDomainAxisSpaceForSubplots
protected void setFixedDomainAxisSpaceForSubplots(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.
-
handleClick
public void handleClick(int x, int y, PlotRenderingInfo info)
Handles a 'click' on the plot by updating the anchor value.- Overrides:
handleClick
in classCategoryPlot
- Parameters:
x
- x-coordinate of the click.y
- y-coordinate of the click.info
- information about the plot's dimensions.
-
plotChanged
public void plotChanged(PlotChangeEvent event)
Receives aPlotChangeEvent
and responds by notifying all listeners.- Specified by:
plotChanged
in interfacePlotChangeListener
- Parameters:
event
- the event.
-
equals
public boolean equals(java.lang.Object obj)
Tests the plot for equality with an arbitrary object.- Overrides:
equals
in classCategoryPlot
- Parameters:
obj
- the object (null
permitted).- Returns:
true
orfalse
.
-
canEqual
public boolean canEqual(java.lang.Object other)
Ensures symmetry between super/subclass implementations of equals. For more detail, see http://jqno.nl/equalsverifier/manual/inheritance.- Overrides:
canEqual
in classCategoryPlot
- Parameters:
other
- Object- Returns:
- true ONLY if the parameter is THIS class type
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classCategoryPlot
-
clone
public java.lang.Object clone() throws java.lang.CloneNotSupportedException
Returns a clone of the plot.- Specified by:
clone
in interfacePublicCloneable
- Overrides:
clone
in classCategoryPlot
- Returns:
- A clone.
- Throws:
java.lang.CloneNotSupportedException
- this class will not throw this exception, but subclasses (if any) might.
-
readObject
private void readObject(java.io.ObjectInputStream stream) throws java.io.IOException, java.lang.ClassNotFoundException
Provides serialization support.- Parameters:
stream
- the input stream.- Throws:
java.io.IOException
- if there is an I/O error.java.lang.ClassNotFoundException
- if there is a classpath problem.
-
-