## org.jfree.chart.plot
Class RingPlot

    java.lang.Object
      org.jfree.chart.plot.Plot
          org.jfree.chart.plot.PiePlot
              org.jfree.chart.plot.RingPlot

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

    public class RingPlot

extends PiePlot
implements java.lang.Cloneable, java.io.Serializable

A customised pie plot that leaves a hole in the middle.

See Also:
  Serialized Form

Field Summary

Fields inherited from class org.jfree.chart.plot.PiePlot
`DEFAULT_INTERIOR_GAP, DEFAULT_LABEL_BACKGROUND_PAINT, DEFAULT_LABEL_FONT, DEFAULT_LABEL_OUTLINE_PAINT, DEFAULT_LABEL_OUTLINE_STROKE, DEFAULT_LABEL_PAINT, DEFAULT_LABEL_SHADOW_PAINT, DEFAULT_MINIMUM_ARC_ANGLE_TO_DRAW, DEFAULT_START_ANGLE, localizationResources, MAX_INTERIOR_GAP`

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
`RingPlot()` Creates a new plot with a `null` dataset.
`RingPlot(PieDataset dataset)` Creates a new plot for the specified dataset.

Method Summary
`protected void` `drawItem(java.awt.Graphics2D g2, int section, java.awt.geom.Rectangle2D dataArea, PiePlotState state, int currentPass)` Draws a single data item.
`boolean` `equals(java.lang.Object obj)` Tests this plot for equality with an arbitrary object.
`double` `getInnerSeparatorExtension()` Returns the length of the inner extension of the separator line that is drawn between sections, expressed as a percentage of the depth of the section.
`protected double` `getLabelLinkDepth()` This method overrides the default value for cases where the ring plot is very thin.
`double` `getOuterSeparatorExtension()` Returns the length of the outer extension of the separator line that is drawn between sections, expressed as a percentage of the depth of the section.
`double` `getSectionDepth()` Returns the depth of each section, expressed as a percentage of the plot radius.
`java.awt.Paint` `getSeparatorPaint()` Returns the separator paint.
`java.awt.Stroke` `getSeparatorStroke()` Returns the separator stroke.
`boolean` `getSeparatorsVisible()` Returns a flag that indicates whether or not separators are drawn between the sections in the chart.
`PiePlotState` `initialise(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D plotArea, PiePlot plot, java.lang.Integer index, PlotRenderingInfo info)` Initialises the plot state (which will store the total of all dataset values, among other things).
`void` `setInnerSeparatorExtension(double percent)` Sets the length of the inner extension of the separator line that is drawn between sections, as a percentage of the depth of the sections, and sends a `PlotChangeEvent` to all registered listeners.
`void` `setOuterSeparatorExtension(double percent)` Sets the length of the outer extension of the separator line that is drawn between sections, as a percentage of the depth of the sections, and sends a `PlotChangeEvent` to all registered listeners.
`void` `setSectionDepth(double sectionDepth)` The section depth is given as percentage of the plot radius.
`void` `setSeparatorPaint(java.awt.Paint paint)` Sets the paint used to draw the separator between sections and sends a `PlotChangeEvent` to all registered listeners.
`void` `setSeparatorStroke(java.awt.Stroke stroke)` Sets the stroke used to draw the separator between sections and sends a `PlotChangeEvent` to all registered listeners.
`void` `setSeparatorsVisible(boolean visible)` Sets the flag that controls whether or not separators are drawn between the sections in the chart, and sends a `PlotChangeEvent` to all registered listeners.

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

`clearSectionOutlinePaints, clearSectionOutlineStrokes, clearSectionPaints, clone, draw, drawLabels, drawLeftLabel, drawLeftLabels, drawPie, drawRightLabel, drawRightLabels, drawSimpleLabels, getArcBounds, getArcCenter, getAutoPopulateSectionOutlinePaint, getAutoPopulateSectionOutlineStroke, getAutoPopulateSectionPaint, getBaseSectionOutlinePaint, getBaseSectionOutlineStroke, getBaseSectionPaint, getDataset, getDirection, getExplodePercent, getExplodePercent, getIgnoreNullValues, getIgnoreZeroValues, getInteriorGap, getLabelBackgroundPaint, getLabelDistributor, getLabelFont, getLabelGap, getLabelGenerator, getLabelLinkMargin, getLabelLinkPaint, getLabelLinkStroke, getLabelLinkStyle, getLabelLinksVisible, getLabelOutlinePaint, getLabelOutlineStroke, getLabelPadding, getLabelPaint, getLabelShadowPaint, getLegendItems, getLegendItemShape, getLegendLabelGenerator, getLegendLabelToolTipGenerator, getLegendLabelURLGenerator, getMaximumExplodePercent, getMaximumLabelWidth, getMinimumArcAngleToDraw, getPieIndex, getPlotType, getSectionKey, getSectionOutlinePaint, getSectionOutlinePaint, getSectionOutlinePaint, getSectionOutlineStroke, getSectionOutlineStroke, getSectionOutlineStroke, getSectionOutlinesVisible, getSectionPaint, getSectionPaint, getSectionPaint, getShadowGenerator, getShadowPaint, getShadowXOffset, getShadowYOffset, getSimpleLabelOffset, getSimpleLabels, getStartAngle, getToolTipGenerator, getURLGenerator, handleMouseWheelRotation, isCircular, lookupSectionOutlinePaint, lookupSectionOutlinePaint, lookupSectionOutlineStroke, lookupSectionOutlineStroke, lookupSectionPaint, lookupSectionPaint, lookupSectionPaint, setAutoPopulateSectionOutlinePaint, setAutoPopulateSectionOutlineStroke, setAutoPopulateSectionPaint, setBaseSectionOutlinePaint, setBaseSectionOutlineStroke, setBaseSectionPaint, setCircular, setCircular, setDataset, setDirection, setExplodePercent, setExplodePercent, setIgnoreNullValues, setIgnoreZeroValues, setInteriorGap, setLabelBackgroundPaint, setLabelDistributor, setLabelFont, setLabelGap, setLabelGenerator, setLabelLinkMargin, setLabelLinkPaint, setLabelLinkStroke, setLabelLinkStyle, setLabelLinksVisible, setLabelOutlinePaint, setLabelOutlineStroke, setLabelPadding, setLabelPaint, setLabelShadowPaint, setLegendItemShape, setLegendLabelGenerator, setLegendLabelToolTipGenerator, setLegendLabelURLGenerator, setMaximumLabelWidth, setMinimumArcAngleToDraw, setPieIndex, setSectionOutlinePaint, setSectionOutlinePaint, setSectionOutlinePaint, setSectionOutlineStroke, setSectionOutlineStroke, setSectionOutlineStroke, setSectionOutlinesVisible, setSectionPaint, setSectionPaint, setSectionPaint, setShadowGenerator, setShadowPaint, setShadowXOffset, setShadowYOffset, setSimpleLabelOffset, setSimpleLabels, setStartAngle, setToolTipGenerator, setURLGenerator`

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

`addChangeListener, annotationChanged, axisChanged, createAndAddEntity, datasetChanged, drawBackground, drawBackgroundImage, drawNoDataMessage, drawOutline, fillBackground, fillBackground, fireChangeEvent, getBackgroundAlpha, getBackgroundImage, getBackgroundImageAlignment, getBackgroundImageAlpha, getBackgroundPaint, getDatasetGroup, getDrawingSupplier, getForegroundAlpha, getInsets, getNoDataMessage, getNoDataMessageFont, getNoDataMessagePaint, getOutlinePaint, getOutlineStroke, getParent, getRectX, getRectY, getRootPlot, handleClick, 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`

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

Constructor Detail

### RingPlot

    public RingPlot()

  Creates a new plot with a `null` dataset.

### RingPlot

    public RingPlot(PieDataset dataset)

  Creates a new plot for the specified dataset.

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

Method Detail

### getSeparatorsVisible

    public boolean getSeparatorsVisible()

  Returns a flag that indicates whether or not separators are drawn between the sections in the chart.

  Returns:
    A boolean.
  See Also:
    `setSeparatorsVisible(boolean)`

### setSeparatorsVisible

    public void setSeparatorsVisible(boolean visible)

  Sets the flag that controls whether or not separators are drawn between the sections in the chart, and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `visible` - the flag.
  See Also:
    `getSeparatorsVisible()`

### getSeparatorStroke

    public java.awt.Stroke getSeparatorStroke()

  Returns the separator stroke.

  Returns:
    The stroke (never `null`).
  See Also:
    `setSeparatorStroke(Stroke)`

### setSeparatorStroke

    public void setSeparatorStroke(java.awt.Stroke stroke)

  Sets the stroke used to draw the separator between sections and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `stroke` - the stroke (`null` not permitted).
  See Also:
    `getSeparatorStroke()`

### getSeparatorPaint

    public java.awt.Paint getSeparatorPaint()

  Returns the separator paint.

  Returns:
    The paint (never `null`).
  See Also:
    `setSeparatorPaint(Paint)`

### setSeparatorPaint

    public void setSeparatorPaint(java.awt.Paint paint)

  Sets the paint used to draw the separator between sections and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `paint` - the paint (`null` not permitted).
  See Also:
    `getSeparatorPaint()`

### getInnerSeparatorExtension

    public double getInnerSeparatorExtension()

  Returns the length of the inner extension of the separator line that is drawn between sections, expressed as a percentage of the depth of the section.

  Returns:
    The inner separator extension (as a percentage).
  See Also:
    `setInnerSeparatorExtension(double)`

### setInnerSeparatorExtension

    public void setInnerSeparatorExtension(double percent)

  Sets the length of the inner extension of the separator line that is drawn between sections, as a percentage of the depth of the sections, and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `percent` - the percentage.
  See Also:
    `getInnerSeparatorExtension()`, `setOuterSeparatorExtension(double)`

### getOuterSeparatorExtension

    public double getOuterSeparatorExtension()

  Returns the length of the outer extension of the separator line that is drawn between sections, expressed as a percentage of the depth of the section.

  Returns:
    The outer separator extension (as a percentage).
  See Also:
    `setOuterSeparatorExtension(double)`

### setOuterSeparatorExtension

    public void setOuterSeparatorExtension(double percent)

  Sets the length of the outer extension of the separator line that is drawn between sections, as a percentage of the depth of the sections, and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `percent` - the percentage.
  See Also:
    `getOuterSeparatorExtension()`

### getSectionDepth

    public double getSectionDepth()

  Returns the depth of each section, expressed as a percentage of the plot radius.

  Returns:
    The depth of each section.
  Since:
    1.0.3
  See Also:
    `setSectionDepth(double)`

### setSectionDepth

    public void setSectionDepth(double sectionDepth)

  The section depth is given as percentage of the plot radius. Specifying 1.0 results in a straightforward pie chart.

  Parameters:
    `sectionDepth` - the section depth.
  Since:
    1.0.3
  See Also:
    `getSectionDepth()`

### initialise

    public PiePlotState initialise(java.awt.Graphics2D g2,
                                   java.awt.geom.Rectangle2D plotArea,
                                   PiePlot plot,
                                   java.lang.Integer index,
                                   PlotRenderingInfo info)

  Initialises the plot state (which will store the total of all dataset values, among other things). This method is called once at the beginning of each drawing.

  Overrides:
    `initialise` in class `PiePlot`
  Parameters:
    `g2` - the graphics device.
    `plotArea` - the plot area (`null` not permitted).
    `plot` - the plot.
    `index` - the secondary index (`null` for primary renderer).
    `info` - collects chart rendering information for return to caller.
  Returns:
    A state object (maintains state information relevant to one chart drawing).

### drawItem

    protected void drawItem(java.awt.Graphics2D g2,
                            int section,
                            java.awt.geom.Rectangle2D dataArea,
                            PiePlotState state,
                            int currentPass)

  Draws a single data item.

  Overrides:
    `drawItem` in class `PiePlot`
  Parameters:
    `g2` - the graphics device (`null` not permitted).
    `section` - the section index.
    `dataArea` - the data plot area.
    `state` - state information for one chart.
    `currentPass` - the current pass index.

### getLabelLinkDepth

    protected double getLabelLinkDepth()

  This method overrides the default value for cases where the ring plot is very thin. This fixes bug 2121818.

  Overrides:
    `getLabelLinkDepth` in class `PiePlot`
  Returns:
    The label link depth, as a percentage of the plot's radius.

### equals

    public boolean equals(java.lang.Object obj)

  Tests this plot for equality with an arbitrary object.

  Overrides:
    `equals` in class `PiePlot`
  Parameters:
    `obj` - the object to test against (`null` permitted).
  Returns:
    A boolean.