## org.jfree.chart.plot
Class CombinedDomainCategoryPlot

    java.lang.Object
      org.jfree.chart.plot.Plot
          org.jfree.chart.plot.CategoryPlot
              org.jfree.chart.plot.CombinedDomainCategoryPlot

All Implemented Interfaces:
  java.io.Serializable, java.lang.Cloneable, java.util.EventListener, AxisChangeListener, MarkerChangeListener, PlotChangeListener, RendererChangeListener, LegendItemSource, ValueAxisPlot, Zoomable, DatasetChangeListener, org.jfree.util.PublicCloneable

    public class CombinedDomainCategoryPlot

extends CategoryPlot
implements PlotChangeListener

A combined category plot where the domain axis is shared.

See Also:
  Serialized Form

Field Summary

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
`CombinedDomainCategoryPlot()` Default constructor.
`CombinedDomainCategoryPlot(CategoryAxis domainAxis)` Creates a new plot.

Method Summary
`void` `add(CategoryPlot subplot)` Adds a subplot to the combined chart and sends a `PlotChangeEvent` to all registered listeners.
`void` `add(CategoryPlot subplot, int weight)` Adds a subplot to the combined chart and sends a `PlotChangeEvent` to all registered listeners.
`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, 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.
`CategoryPlot` `findSubplot(PlotRenderingInfo info, java.awt.geom.Point2D source)` Returns the subplot (if any) that contains the (x, y) point (specified in Java2D space).
`java.util.List` `getCategories()` Returns an unmodifiable list of the categories contained in all the subplots.
`java.util.List` `getCategoriesForAxis(CategoryAxis axis)` Overridden to return the categories in the subplots.
`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.
`void` `plotChanged(PlotChangeEvent event)` Receives a `PlotChangeEvent` and responds by notifying all listeners.
`void` `remove(CategoryPlot subplot)` Removes a subplot from the combined chart.
`protected void` `setFixedRangeAxisSpaceForSubplots(AxisSpace space)` Sets the size (width or height, depending on the orientation of the plot) for the range 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 of the plot (and all subplots).
`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 info, java.awt.geom.Point2D source, boolean useAnchor)` Multiplies the range on the range axis/axes by the specified factor.

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

`addAnnotation, addAnnotation, addDomainMarker, addDomainMarker, addDomainMarker, addDomainMarker, addRangeMarker, addRangeMarker, addRangeMarker, addRangeMarker, calculateDomainAxisSpace, calculateRangeAxisSpace, clearAnnotations, clearDomainAxes, clearDomainMarkers, clearDomainMarkers, clearRangeAxes, clearRangeMarkers, clearRangeMarkers, configureDomainAxes, configureRangeAxes, datasetChanged, drawAnnotations, drawAxes, drawBackground, drawDomainGridlines, drawDomainMarkers, drawRangeCrosshair, drawRangeGridlines, drawRangeLine, drawRangeMarkers, getAnchorValue, getAnnotations, getAxisOffset, getColumnRenderingOrder, getDataset, getDataset, getDatasetCount, getDatasetRenderingOrder, getDomainAxis, getDomainAxis, getDomainAxisCount, getDomainAxisEdge, getDomainAxisEdge, getDomainAxisForDataset, getDomainAxisIndex, getDomainAxisLocation, getDomainAxisLocation, getDomainGridlinePaint, getDomainGridlinePosition, getDomainGridlineStroke, getDomainMarkers, getDomainMarkers, getDrawSharedDomainAxis, getFixedDomainAxisSpace, getFixedLegendItems, getFixedRangeAxisSpace, getIndexOf, getOrientation, getPlotType, getRangeAxis, getRangeAxis, getRangeAxisCount, getRangeAxisEdge, getRangeAxisEdge, getRangeAxisForDataset, getRangeAxisIndex, getRangeAxisLocation, getRangeAxisLocation, getRangeCrosshairPaint, getRangeCrosshairStroke, getRangeCrosshairValue, getRangeGridlinePaint, getRangeGridlineStroke, getRangeMarkers, getRangeMarkers, getRenderer, getRenderer, getRendererForDataset, getRowRenderingOrder, getWeight, isDomainGridlinesVisible, isDomainZoomable, isRangeCrosshairLockedOnData, isRangeCrosshairVisible, isRangeGridlinesVisible, isRangeZoomable, mapDatasetToDomainAxis, mapDatasetToRangeAxis, removeAnnotation, removeAnnotation, removeDomainMarker, removeDomainMarker, removeDomainMarker, removeDomainMarker, removeRangeMarker, removeRangeMarker, removeRangeMarker, removeRangeMarker, render, rendererChanged, setAnchorValue, setAnchorValue, setAxisOffset, setColumnRenderingOrder, setDataset, setDataset, setDatasetRenderingOrder, setDomainAxes, setDomainAxis, setDomainAxis, setDomainAxis, setDomainAxisLocation, setDomainAxisLocation, setDomainAxisLocation, setDomainAxisLocation, 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, setRenderer, setRenderer, setRenderer, setRenderer, setRenderers, setRowRenderingOrder, setWeight, zoom, zoomDomainAxes, zoomDomainAxes, zoomDomainAxes`

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

`addChangeListener, axisChanged, drawBackgroundImage, drawNoDataMessage, drawOutline, fillBackground, fillBackground, fireChangeEvent, getBackgroundAlpha, getBackgroundImage, getBackgroundImageAlignment, getBackgroundImageAlpha, getBackgroundPaint, getDatasetGroup, getDrawingSupplier, getForegroundAlpha, getInsets, getNoDataMessage, getNoDataMessageFont, getNoDataMessagePaint, getOutlinePaint, getOutlineStroke, getParent, getRectX, getRectY, getRootPlot, isOutlineVisible, isSubplot, markerChanged, notifyListeners, removeChangeListener, resolveDomainAxisLocation, resolveRangeAxisLocation, setBackgroundAlpha, setBackgroundImage, setBackgroundImageAlignment, setBackgroundImageAlpha, setBackgroundPaint, setDatasetGroup, setDrawingSupplier, setForegroundAlpha, setInsets, setInsets, setNoDataMessage, setNoDataMessageFont, setNoDataMessagePaint, setOutlinePaint, setOutlineStroke, setOutlineVisible, setParent`

Methods inherited from class java.lang.Object
`finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### CombinedDomainCategoryPlot

    public CombinedDomainCategoryPlot()

  Default constructor.

### CombinedDomainCategoryPlot

    public CombinedDomainCategoryPlot(CategoryAxis domainAxis)

  Creates a new plot.

  Parameters:
    `domainAxis` - the shared domain axis (`null` not permitted).

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 a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `gap` - the gap between subplots (in Java2D units).

### add

    public void add(CategoryPlot subplot)

  Adds a subplot to the combined chart 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(CategoryPlot subplot,
                    int weight)

  Adds a subplot to the combined chart 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).
    `weight` - the weight (must be >= 1).

### remove

    public void remove(CategoryPlot subplot)

  Removes a subplot from the combined chart. Potentially, this removes some unique categories from the overall union of the datasets...so the domain axis is reconfigured, then a `PlotChangeEvent` is sent to all registered listeners.

  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 never `null`.

  Returns:
    An unmodifiable list of subplots.

### findSubplot

    public CategoryPlot findSubplot(PlotRenderingInfo info,
                                    java.awt.geom.Point2D source)

  Returns the subplot (if any) that contains the (x, y) point (specified in Java2D space).

  Parameters:
    `info` - the chart rendering info (`null` not permitted).
    `source` - the source point (`null` not permitted).
  Returns:
    A subplot (possibly `null`).

### zoomRangeAxes

    public void zoomRangeAxes(double factor,
                              PlotRenderingInfo info,
                              java.awt.geom.Point2D source)

  Multiplies the range on the range axis/axes by the specified factor.

  Specified by:
    `zoomRangeAxes` in interface `Zoomable`
  Overrides:
    `zoomRangeAxes` in class `CategoryPlot`
  Parameters:
    `factor` - the zoom factor.
    `info` - the plot rendering info (`null` not permitted).
    `source` - the source point (`null` not permitted).
  See Also:
    `Zoomable.zoomDomainAxes(double, PlotRenderingInfo, Point2D)`

### zoomRangeAxes

    public void zoomRangeAxes(double factor,
                              PlotRenderingInfo info,
                              java.awt.geom.Point2D source,
                              boolean useAnchor)

  Multiplies the range on the range axis/axes by the specified factor.

  Specified by:
    `zoomRangeAxes` in interface `Zoomable`
  Overrides:
    `zoomRangeAxes` in class `CategoryPlot`
  Parameters:
    `factor` - the zoom factor.
    `info` - the plot rendering info (`null` not permitted).
    `source` - the source point (`null` not permitted).
    `useAnchor` - zoom about the anchor point?
  See Also:
    `CategoryPlot.zoomDomainAxes(double, PlotRenderingInfo, Point2D, boolean)`

### zoomRangeAxes

    public void zoomRangeAxes(double lowerPercent,
                              double upperPercent,
                              PlotRenderingInfo info,
                              java.awt.geom.Point2D source)

  Zooms in on the range axes.

  Specified by:
    `zoomRangeAxes` in interface `Zoomable`
  Overrides:
    `zoomRangeAxes` in class `CategoryPlot`
  Parameters:
    `lowerPercent` - the lower bound.
    `upperPercent` - the upper bound.
    `info` - the plot rendering info (`null` not permitted).
    `source` - the source point (`null` not permitted).
  See Also:
    `Zoomable.zoomDomainAxes(double, double, PlotRenderingInfo, Point2D)`

### calculateAxisSpace

    protected AxisSpace calculateAxisSpace(java.awt.Graphics2D g2,
                                           java.awt.geom.Rectangle2D plotArea)

  Calculates the space required for the axes.

  Overrides:
    `calculateAxisSpace` in class `CategoryPlot`
  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 of the sub-plots and then tell these to draw themselves.

  Overrides:
    `draw` in class `CategoryPlot`
  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 state from the parent plot, if there is one.
    `info` - collects information about the drawing (`null` permitted).

### setFixedRangeAxisSpaceForSubplots

    protected void setFixedRangeAxisSpaceForSubplots(AxisSpace space)

  Sets the size (width or height, depending on the orientation of the plot) for the range axis of each subplot.

  Parameters:
    `space` - the space (`null` permitted).

### setOrientation

    public void setOrientation(PlotOrientation orientation)

  Sets the orientation of the plot (and all subplots).

  Overrides:
    `setOrientation` in class `CategoryPlot`
  Parameters:
    `orientation` - the orientation (`null` not permitted).
  See Also:
    `CategoryPlot.getOrientation()`

### 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, for this class, the domain axis is a `CategoryAxis` (not a `ValueAxis</code}) and subplots have independent range axes, the JFreeChart code will never call this method (although this is not checked/enforced). <P>`
  Specified by:
    `getDataRange` in interface `ValueAxisPlot`
  Overrides:
    `getDataRange` in class `CategoryPlot`
  Parameters:
    `axis` - the axis.
  Returns:
    The range.

### getLegendItems

    public LegendItemCollection getLegendItems()

  Returns a collection of legend items for the plot.

  Specified by:
    `getLegendItems` in interface `LegendItemSource`
  Overrides:
    `getLegendItems` in class `CategoryPlot`
  Returns:
    The legend items.

### getCategories

    public java.util.List getCategories()

  Returns an unmodifiable list of the categories contained in all the subplots.

  Overrides:
    `getCategories` in class `CategoryPlot`
  Returns:
    The list.
  See Also:
    `CategoryPlot.getCategoriesForAxis(CategoryAxis)`

### getCategoriesForAxis

    public java.util.List getCategoriesForAxis(CategoryAxis axis)

  Overridden to return the categories in the subplots.

  Overrides:
    `getCategoriesForAxis` in class `CategoryPlot`
  Parameters:
    `axis` - ignored.
  Returns:
    A list of the categories in the subplots.
  Since:
    1.0.3

### handleClick

    public void handleClick(int x,
                            int y,
                            PlotRenderingInfo info)

  Handles a 'click' on the plot.

  Overrides:
    `handleClick` in class `CategoryPlot`
  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 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 the plot for equality with an arbitrary object.

  Overrides:
    `equals` in class `CategoryPlot`
  Parameters:
    `obj` - the object (`null` permitted).
  Returns:
    A boolean.

### 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 `CategoryPlot`
  Returns:
    A clone.
  Throws:
    `java.lang.CloneNotSupportedException` - this class will not throw this exception, but subclasses (if any) might.