org.jfree.chart.plot
Class PiePlot

java.lang.Object
  extended byorg.jfree.chart.plot.Plot
      extended byorg.jfree.chart.plot.PiePlot
All Implemented Interfaces:
AxisChangeListener, java.lang.Cloneable, DatasetChangeListener, java.util.EventListener, LegendItemSource, java.io.Serializable
Direct Known Subclasses:
PiePlot3D, RingPlot

public class PiePlot
extends Plot
implements java.lang.Cloneable, java.io.Serializable

A plot that displays data in the form of a pie chart, using data from any class that implements the PieDataset interface.

Special notes:

  1. the default starting point is 12 o'clock and the pie sections proceed in a clockwise direction, but these settings can be changed;
  2. negative values in the dataset are ignored;
  3. there are utility methods for creating a PieDataset from a CategoryDataset;

See Also:
Plot, PieDataset, Serialized Form

Field Summary
static double DEFAULT_INTERIOR_GAP
          The default interior gap.
static java.awt.Paint DEFAULT_LABEL_BACKGROUND_PAINT
          The default section label background paint.
static java.awt.Font DEFAULT_LABEL_FONT
          The default section label font.
static java.awt.Paint DEFAULT_LABEL_OUTLINE_PAINT
          The default section label outline paint.
static java.awt.Stroke DEFAULT_LABEL_OUTLINE_STROKE
          The default section label outline stroke.
static java.awt.Paint DEFAULT_LABEL_PAINT
          The default section label paint.
static java.awt.Paint DEFAULT_LABEL_SHADOW_PAINT
          The default section label shadow paint.
static double DEFAULT_MINIMUM_ARC_ANGLE_TO_DRAW
          The default minimum arc angle to draw.
static double DEFAULT_START_ANGLE
          The default starting angle for the pie chart.
protected static java.util.ResourceBundle localizationResources
          The resourceBundle for the localization.
static double MAX_INTERIOR_GAP
          The maximum interior gap (currently 40%).
 
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
PiePlot()
          Creates a new plot.
PiePlot(PieDataset dataset)
          Creates a plot that will draw a pie chart for the specified dataset.
 
Method Summary
 java.lang.Object clone()
          Returns a clone of the plot.
 void draw(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D plotArea, PlotState parentState, PlotRenderingInfo info)
          Draws the plot on a Java 2D graphics device (such as the screen or a printer).
protected  void drawItem(java.awt.Graphics2D g2, int section, java.awt.geom.Rectangle2D dataArea, PiePlotState state, int currentPass)
          Draws a single data item.
protected  void drawLabels(java.awt.Graphics2D g2, java.util.List keys, double totalValue, java.awt.geom.Rectangle2D plotArea, java.awt.geom.Rectangle2D linkArea, PiePlotState state)
          Draws the labels for the pie sections.
protected  void drawLeftLabel(java.awt.Graphics2D g2, PiePlotState state, PieLabelRecord record)
          Draws a section label on the left side of the pie chart.
protected  void drawLeftLabels(KeyedValues leftKeys, java.awt.Graphics2D g2, java.awt.geom.Rectangle2D plotArea, java.awt.geom.Rectangle2D linkArea, float maxLabelWidth, PiePlotState state)
          Draws the left labels.
protected  void drawPie(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D plotArea, PlotRenderingInfo info)
          Draws the pie.
protected  void drawRightLabel(java.awt.Graphics2D g2, PiePlotState state, PieLabelRecord record)
          Draws a section label on the right side of the pie chart.
protected  void drawRightLabels(KeyedValues keys, java.awt.Graphics2D g2, java.awt.geom.Rectangle2D plotArea, java.awt.geom.Rectangle2D linkArea, float maxLabelWidth, PiePlotState state)
          Draws the right labels.
 boolean equals(java.lang.Object obj)
          Tests this plot for equality with an arbitrary object.
protected  java.awt.geom.Rectangle2D getArcBounds(java.awt.geom.Rectangle2D unexploded, java.awt.geom.Rectangle2D exploded, double angle, double extent, double explodePercent)
          Returns a rectangle that can be used to create a pie section (taking into account the amount by which the pie section is 'exploded').
 java.awt.Paint getBaseSectionOutlinePaint()
          Returns the base section paint.
 java.awt.Stroke getBaseSectionOutlineStroke()
          Returns the base section stroke.
 java.awt.Paint getBaseSectionPaint()
          Returns the base section paint.
 PieDataset getDataset()
          Returns the dataset.
 Rotation getDirection()
          Returns the direction in which the pie sections are drawn (clockwise or anti-clockwise).
 double getExplodePercent(int section)
          Returns the amount that a section should be 'exploded'.
 boolean getIgnoreNullValues()
          Returns the flag that controls whether null values in the dataset are ignored.
 double getInteriorGap()
          Returns the interior gap, measured as a percentage of the available drawing space.
 java.awt.Paint getLabelBackgroundPaint()
          Returns the section label background paint.
 java.awt.Font getLabelFont()
          Returns the section label font.
 double getLabelGap()
          Returns the gap between the edge of the pie and the labels, expressed as a percentage of the plot width.
 PieSectionLabelGenerator getLabelGenerator()
          Returns the section label generator.
 double getLabelLinkMargin()
          Returns the margin (expressed as a percentage of the width or height) between the edge of the pie and the link point.
 java.awt.Paint getLabelLinkPaint()
          Returns the paint used for the lines that connect pie sections to their corresponding labels.
 java.awt.Stroke getLabelLinkStroke()
          Returns the stroke used for the label linking lines.
 java.awt.Paint getLabelOutlinePaint()
          Returns the section label outline paint.
 java.awt.Stroke getLabelOutlineStroke()
          Returns the section label outline stroke.
 java.awt.Paint getLabelPaint()
          Returns the section label paint.
 java.awt.Paint getLabelShadowPaint()
          Returns the section label shadow paint.
 LegendItemCollection getLegendItems()
          Returns a collection of legend items for the pie chart.
 java.awt.Shape getLegendItemShape()
          Returns the shape used for legend items.
 PieSectionLabelGenerator getLegendLabelGenerator()
          Returns the legend label generator.
 double getMaximumExplodePercent()
          Returns the maximum explode percent.
 double getMaximumLabelWidth()
          Returns the maximum label width as a percentage of the plot width.
 double getMinimumArcAngleToDraw()
          Returns the minimum arc angle that will be drawn.
 int getPieIndex()
          Returns the pie index (this is used by the MultiplePiePlot class to track subplots).
 java.lang.String getPlotType()
          Returns a short string describing the type of plot.
 java.awt.Paint getSectionOutlinePaint()
          Returns the outline paint for ALL sections in the plot.
 java.awt.Paint getSectionOutlinePaint(int section)
          Returns the paint for the specified section.
 java.awt.Stroke getSectionOutlineStroke()
          Returns the outline stroke for ALL sections in the plot.
 java.awt.Stroke getSectionOutlineStroke(int section)
          Returns the stroke for the specified section.
 java.awt.Paint getSectionPaint()
          Returns the paint for ALL sections in the plot.
 java.awt.Paint getSectionPaint(int section)
          Returns the paint for the specified section.
 java.awt.Paint getShadowPaint()
          Returns the shadow paint.
 double getShadowXOffset()
          Returns the x-offset for the shadow effect.
 double getShadowYOffset()
          Returns the y-offset for the shadow effect.
 double getStartAngle()
          Returns the start angle for the first pie section.
 PieToolTipGenerator getToolTipGenerator()
          Returns the tool tip generator, an object that is responsible for generating the text items used for tool tips by the plot.
 PieURLGenerator getURLGenerator()
          Returns the URL generator.
 PiePlotState initialise(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D plotArea, PiePlot plot, java.lang.Integer index, PlotRenderingInfo info)
          Initialises the drawing procedure.
 boolean isCircular()
          Returns a flag indicating whether the pie chart is circular, or stretched into an elliptical shape.
 void setBaseSectionOutlinePaint(java.awt.Paint paint)
          Sets the base section paint.
 void setBaseSectionOutlineStroke(java.awt.Stroke stroke)
          Sets the base section stroke.
 void setBaseSectionPaint(java.awt.Paint paint)
          Sets the base section paint.
 void setCircular(boolean flag)
          A flag indicating whether the pie chart is circular, or stretched into an elliptical shape.
 void setCircular(boolean circular, boolean notify)
          Sets the circular attribute and, if requested, sends a PlotChangeEvent to all registered listeners.
 void setDataset(PieDataset dataset)
          Sets the dataset and sends a DatasetChangeEvent to 'this'.
 void setDirection(Rotation direction)
          Sets the direction in which the pie sections are drawn and sends a PlotChangeEvent to all registered listeners.
 void setExplodePercent(int section, double percent)
          Sets the amount that a pie section should be exploded and sends a PlotChangeEvent to all registered listeners.
 void setIgnoreNullValues(boolean flag)
          Sets a flag that controls whether null values are ignored, and sends a PlotChangeEvent to all registered listeners.
 void setInteriorGap(double percent)
          Sets the interior gap and sends a PlotChangeEvent to all registered listeners.
 void setLabelBackgroundPaint(java.awt.Paint paint)
          Sets the section label background paint and sends a PlotChangeEvent to all registered listeners.
 void setLabelFont(java.awt.Font font)
          Sets the section label font and sends a PlotChangeEvent to all registered listeners.
 void setLabelGap(double gap)
          Sets the gap between the edge of the pie and the labels (expressed as a percentage of the plot width) and sends a PlotChangeEvent to all registered listeners.
 void setLabelGenerator(PieSectionLabelGenerator generator)
          Sets the section label generator and sends a PlotChangeEvent to all registered listeners.
 void setLabelLinkMargin(double margin)
          Sets the link margin and sends a PlotChangeEvent to all registered listeners.
 void setLabelLinkPaint(java.awt.Paint paint)
          Sets the paint used for the lines that connect pie sections to their corresponding labels, and sends a PlotChangeEvent to all registered listeners.
 void setLabelLinkStroke(java.awt.Stroke stroke)
          Sets the link stroke and sends a PlotChangeEvent to all registered listeners.
 void setLabelOutlinePaint(java.awt.Paint paint)
          Sets the section label outline paint and sends a PlotChangeEvent to all registered listeners.
 void setLabelOutlineStroke(java.awt.Stroke stroke)
          Sets the section label outline stroke and sends a PlotChangeEvent to all registered listeners.
 void setLabelPaint(java.awt.Paint paint)
          Sets the section label paint and sends a PlotChangeEvent to all registered listeners.
 void setLabelShadowPaint(java.awt.Paint paint)
          Sets the section label shadow paint and sends a PlotChangeEvent to all registered listeners.
 void setLegendItemShape(java.awt.Shape shape)
          Sets the shape used for legend items.
 void setLegendLabelGenerator(PieSectionLabelGenerator generator)
          Sets the legend label generator and sends a PlotChangeEvent to all registered listeners.
 void setMaximumLabelWidth(double width)
          Sets the maximum label width as a percentage of the plot width and sends a PlotChangeEvent to all registered listeners.
 void setMinimumArcAngleToDraw(double angle)
          Sets the minimum arc angle that will be drawn.
 void setPieIndex(int index)
          Sets the pie index (this is used by the MultiplePiePlot class to track subplots).
 void setSectionOutlinePaint(int section, java.awt.Paint paint)
          Sets the paint used to fill a section of the pie and sends a PlotChangeEvent to all registered listeners.
 void setSectionOutlinePaint(java.awt.Paint paint)
          Sets the outline paint for ALL sections in the plot.
 void setSectionOutlineStroke(int section, java.awt.Stroke stroke)
          Sets the stroke used to fill a section of the pie and sends a PlotChangeEvent to all registered listeners.
 void setSectionOutlineStroke(java.awt.Stroke stroke)
          Sets the outline stroke for ALL sections in the plot.
 void setSectionPaint(int section, java.awt.Paint paint)
          Sets the paint used to fill a section of the pie and sends a PlotChangeEvent to all registered listeners.
 void setSectionPaint(java.awt.Paint paint)
          Sets the paint for ALL sections in the plot.
 void setShadowPaint(java.awt.Paint paint)
          Sets the shadow paint and sends a PlotChangeEvent to all registered listeners.
 void setShadowXOffset(double offset)
          Sets the x-offset for the shadow effect and sends a PlotChangeEvent to all registered listeners.
 void setShadowYOffset(double offset)
          Sets the y-offset for the shadow effect and sends a PlotChangeEvent to all registered listeners.
 void setStartAngle(double angle)
          Sets the starting angle and sends a PlotChangeEvent to all registered listeners.
 void setToolTipGenerator(PieToolTipGenerator generator)
          Sets the tool tip generator and sends a PlotChangeEvent to all registered listeners.
 void setURLGenerator(PieURLGenerator generator)
          Sets the URL generator and sends a PlotChangeEvent to all registered listeners.
 void zoom(double percent)
          A zoom method that does nothing.
 
Methods inherited from class org.jfree.chart.plot.Plot
addChangeListener, axisChanged, datasetChanged, draw, drawBackground, drawBackgroundImage, drawNoDataMessage, drawOutline, fillBackground, getBackgroundAlpha, getBackgroundImage, getBackgroundImageAlignment, getBackgroundPaint, getDataAreaRatio, getDatasetGroup, getDrawingSupplier, getForegroundAlpha, getInsets, getNoDataMessage, getNoDataMessageFont, getNoDataMessagePaint, getOutlinePaint, getOutlineStroke, getParent, getRectX, getRectY, getRootPlot, handleClick, 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

DEFAULT_INTERIOR_GAP

public static final double DEFAULT_INTERIOR_GAP
The default interior gap.

See Also:
Constant Field Values

MAX_INTERIOR_GAP

public static final double MAX_INTERIOR_GAP
The maximum interior gap (currently 40%).

See Also:
Constant Field Values

DEFAULT_START_ANGLE

public static final double DEFAULT_START_ANGLE
The default starting angle for the pie chart.

See Also:
Constant Field Values

DEFAULT_LABEL_FONT

public static final java.awt.Font DEFAULT_LABEL_FONT
The default section label font.


DEFAULT_LABEL_PAINT

public static final java.awt.Paint DEFAULT_LABEL_PAINT
The default section label paint.


DEFAULT_LABEL_BACKGROUND_PAINT

public static final java.awt.Paint DEFAULT_LABEL_BACKGROUND_PAINT
The default section label background paint.


DEFAULT_LABEL_OUTLINE_PAINT

public static final java.awt.Paint DEFAULT_LABEL_OUTLINE_PAINT
The default section label outline paint.


DEFAULT_LABEL_OUTLINE_STROKE

public static final java.awt.Stroke DEFAULT_LABEL_OUTLINE_STROKE
The default section label outline stroke.


DEFAULT_LABEL_SHADOW_PAINT

public static final java.awt.Paint DEFAULT_LABEL_SHADOW_PAINT
The default section label shadow paint.


DEFAULT_MINIMUM_ARC_ANGLE_TO_DRAW

public static final double DEFAULT_MINIMUM_ARC_ANGLE_TO_DRAW
The default minimum arc angle to draw.

See Also:
Constant Field Values

localizationResources

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

Constructor Detail

PiePlot

public PiePlot()
Creates a new plot. The dataset is initially set to null.


PiePlot

public PiePlot(PieDataset dataset)
Creates a plot that will draw a pie chart for the specified dataset.

Parameters:
dataset - the dataset (null permitted).
Method Detail

getDataset

public PieDataset getDataset()
Returns the dataset.

Returns:
The dataset (possibly null).

setDataset

public void setDataset(PieDataset dataset)
Sets the dataset and sends a DatasetChangeEvent to 'this'.

Parameters:
dataset - the dataset (null permitted).

getPieIndex

public int getPieIndex()
Returns the pie index (this is used by the MultiplePiePlot class to track subplots).

Returns:
The pie index.

setPieIndex

public void setPieIndex(int index)
Sets the pie index (this is used by the MultiplePiePlot class to track subplots).

Parameters:
index - the index.

getStartAngle

public double getStartAngle()
Returns the start angle for the first pie section. This is measured in degrees starting from 3 o'clock and measuring anti-clockwise.

Returns:
The start angle.

setStartAngle

public void setStartAngle(double angle)
Sets the starting angle and sends a PlotChangeEvent to all registered listeners. The initial default value is 90 degrees, which corresponds to 12 o'clock. A value of zero corresponds to 3 o'clock... this is the encoding used by Java's Arc2D class.

Parameters:
angle - the angle (in degrees).

getDirection

public Rotation getDirection()
Returns the direction in which the pie sections are drawn (clockwise or anti-clockwise).

Returns:
The direction (never null).

setDirection

public void setDirection(Rotation direction)
Sets the direction in which the pie sections are drawn and sends a PlotChangeEvent to all registered listeners.

Parameters:
direction - the direction (null not permitted).

getInteriorGap

public double getInteriorGap()
Returns the interior gap, measured as a percentage of the available drawing space.

Returns:
The gap (as a percentage of the available drawing space).

setInteriorGap

public void setInteriorGap(double percent)
Sets the interior gap and sends a PlotChangeEvent to all registered listeners. This controls the space between the edges of the pie plot and the plot area itself (the region where the section labels appear).

Parameters:
percent - the gap (as a percentage of the available drawing space).

isCircular

public boolean isCircular()
Returns a flag indicating whether the pie chart is circular, or stretched into an elliptical shape.

Returns:
A flag indicating whether the pie chart is circular.

setCircular

public void setCircular(boolean flag)
A flag indicating whether the pie chart is circular, or stretched into an elliptical shape.

Parameters:
flag - the new value.

setCircular

public void setCircular(boolean circular,
                        boolean notify)
Sets the circular attribute and, if requested, sends a PlotChangeEvent to all registered listeners.

Parameters:
circular - the new value of the flag.
notify - notify listeners?

getSectionPaint

public java.awt.Paint getSectionPaint()
Returns the paint for ALL sections in the plot.

Returns:
The paint (possibly null).

setSectionPaint

public void setSectionPaint(java.awt.Paint paint)
Sets the paint for ALL sections in the plot. If this is set to null, then a list of paints is used instead (to allow different colors to be used for each section).

Parameters:
paint - the paint (null permitted).

getSectionPaint

public java.awt.Paint getSectionPaint(int section)
Returns the paint for the specified section.

Parameters:
section - the section index (zero-based).
Returns:
The paint (never null).

setSectionPaint

public void setSectionPaint(int section,
                            java.awt.Paint paint)
Sets the paint used to fill a section of the pie and sends a PlotChangeEvent to all registered listeners.

Parameters:
section - the section index (zero-based).
paint - the paint (null permitted).

getBaseSectionPaint

public java.awt.Paint getBaseSectionPaint()
Returns the base section paint. This is used when no other paint is available.

Returns:
The paint (never null).

setBaseSectionPaint

public void setBaseSectionPaint(java.awt.Paint paint)
Sets the base section paint.

Parameters:
paint - the paint (null not permitted).

getSectionOutlinePaint

public java.awt.Paint getSectionOutlinePaint()
Returns the outline paint for ALL sections in the plot.

Returns:
The paint (possibly null).

setSectionOutlinePaint

public void setSectionOutlinePaint(java.awt.Paint paint)
Sets the outline paint for ALL sections in the plot. If this is set to null, then a list of paints is used instead (to allow different colors to be used for each section).

Parameters:
paint - the paint (null permitted).

getSectionOutlinePaint

public java.awt.Paint getSectionOutlinePaint(int section)
Returns the paint for the specified section.

Parameters:
section - the section index (zero-based).
Returns:
The paint (never null).

setSectionOutlinePaint

public void setSectionOutlinePaint(int section,
                                   java.awt.Paint paint)
Sets the paint used to fill a section of the pie and sends a PlotChangeEvent to all registered listeners.

Parameters:
section - the section index (zero-based).
paint - the paint (null permitted).

getBaseSectionOutlinePaint

public java.awt.Paint getBaseSectionOutlinePaint()
Returns the base section paint. This is used when no other paint is available.

Returns:
The paint (never null).

setBaseSectionOutlinePaint

public void setBaseSectionOutlinePaint(java.awt.Paint paint)
Sets the base section paint.

Parameters:
paint - the paint (null not permitted).

getSectionOutlineStroke

public java.awt.Stroke getSectionOutlineStroke()
Returns the outline stroke for ALL sections in the plot.

Returns:
The stroke (possibly null).

setSectionOutlineStroke

public void setSectionOutlineStroke(java.awt.Stroke stroke)
Sets the outline stroke for ALL sections in the plot. If this is set to null, then a list of paints is used instead (to allow different colors to be used for each section).

Parameters:
stroke - the stroke (null permitted).

getSectionOutlineStroke

public java.awt.Stroke getSectionOutlineStroke(int section)
Returns the stroke for the specified section.

Parameters:
section - the section index (zero-based).
Returns:
The stroke (never null).

setSectionOutlineStroke

public void setSectionOutlineStroke(int section,
                                    java.awt.Stroke stroke)
Sets the stroke used to fill a section of the pie and sends a PlotChangeEvent to all registered listeners.

Parameters:
section - the section index (zero-based).
stroke - the stroke (null permitted).

getBaseSectionOutlineStroke

public java.awt.Stroke getBaseSectionOutlineStroke()
Returns the base section stroke. This is used when no other stroke is available.

Returns:
The stroke (never null).

setBaseSectionOutlineStroke

public void setBaseSectionOutlineStroke(java.awt.Stroke stroke)
Sets the base section stroke.

Parameters:
stroke - the stroke (null not permitted).

getShadowPaint

public java.awt.Paint getShadowPaint()
Returns the shadow paint.

Returns:
The paint (possibly null).

setShadowPaint

public void setShadowPaint(java.awt.Paint paint)
Sets the shadow paint and sends a PlotChangeEvent to all registered listeners.

Parameters:
paint - the paint (null permitted).

getShadowXOffset

public double getShadowXOffset()
Returns the x-offset for the shadow effect.

Returns:
The offset (in Java2D units).

setShadowXOffset

public void setShadowXOffset(double offset)
Sets the x-offset for the shadow effect and sends a PlotChangeEvent to all registered listeners.

Parameters:
offset - the offset (in Java2D units).

getShadowYOffset

public double getShadowYOffset()
Returns the y-offset for the shadow effect.

Returns:
The offset (in Java2D units).

setShadowYOffset

public void setShadowYOffset(double offset)
Sets the y-offset for the shadow effect and sends a PlotChangeEvent to all registered listeners.

Parameters:
offset - the offset (in Java2D units).

getExplodePercent

public double getExplodePercent(int section)
Returns the amount that a section should be 'exploded'.

Parameters:
section - the section number.
Returns:
The amount that a section should be 'exploded'.

setExplodePercent

public void setExplodePercent(int section,
                              double percent)
Sets the amount that a pie section should be exploded and sends a PlotChangeEvent to all registered listeners.

Parameters:
section - the section index.
percent - the explode percentage (0.30 = 30 percent).

getMaximumExplodePercent

public double getMaximumExplodePercent()
Returns the maximum explode percent.

Returns:
The percent.

getLabelGenerator

public PieSectionLabelGenerator getLabelGenerator()
Returns the section label generator.

Returns:
The generator (possibly null).

setLabelGenerator

public void setLabelGenerator(PieSectionLabelGenerator generator)
Sets the section label generator and sends a PlotChangeEvent to all registered listeners.

Parameters:
generator - the generator (null permitted).

getLabelGap

public double getLabelGap()
Returns the gap between the edge of the pie and the labels, expressed as a percentage of the plot width.

Returns:
The gap (a percentage, where 0.05 = five percent).

setLabelGap

public void setLabelGap(double gap)
Sets the gap between the edge of the pie and the labels (expressed as a percentage of the plot width) and sends a PlotChangeEvent to all registered listeners.

Parameters:
gap - the gap (a percentage, where 0.05 = five percent).

getMaximumLabelWidth

public double getMaximumLabelWidth()
Returns the maximum label width as a percentage of the plot width.

Returns:
The width (a percentage, where 0.20 = 20 percent).

setMaximumLabelWidth

public void setMaximumLabelWidth(double width)
Sets the maximum label width as a percentage of the plot width and sends a PlotChangeEvent to all registered listeners.

Parameters:
width - the width (a percentage, where 0.20 = 20 percent).

getLabelLinkMargin

public double getLabelLinkMargin()
Returns the margin (expressed as a percentage of the width or height) between the edge of the pie and the link point.

Returns:
The link margin (as a percentage, where 0.05 is five percent).

setLabelLinkMargin

public void setLabelLinkMargin(double margin)
Sets the link margin and sends a PlotChangeEvent to all registered listeners.

Parameters:
margin - the margin.

getLabelLinkPaint

public java.awt.Paint getLabelLinkPaint()
Returns the paint used for the lines that connect pie sections to their corresponding labels.

Returns:
The paint (never null).

setLabelLinkPaint

public void setLabelLinkPaint(java.awt.Paint paint)
Sets the paint used for the lines that connect pie sections to their corresponding labels, and sends a PlotChangeEvent to all registered listeners.

Parameters:
paint - the paint (null not permitted).

getLabelLinkStroke

public java.awt.Stroke getLabelLinkStroke()
Returns the stroke used for the label linking lines.

Returns:
The stroke.

setLabelLinkStroke

public void setLabelLinkStroke(java.awt.Stroke stroke)
Sets the link stroke and sends a PlotChangeEvent to all registered listeners.

Parameters:
stroke - the stroke.

getLabelFont

public java.awt.Font getLabelFont()
Returns the section label font.

Returns:
The font (never null).

setLabelFont

public void setLabelFont(java.awt.Font font)
Sets the section label font and sends a PlotChangeEvent to all registered listeners.

Parameters:
font - the font (null not permitted).

getLabelPaint

public java.awt.Paint getLabelPaint()
Returns the section label paint.

Returns:
The paint (never null).

setLabelPaint

public void setLabelPaint(java.awt.Paint paint)
Sets the section label paint and sends a PlotChangeEvent to all registered listeners.

Parameters:
paint - the paint (null not permitted).

getLabelBackgroundPaint

public java.awt.Paint getLabelBackgroundPaint()
Returns the section label background paint.

Returns:
The paint (possibly null).

setLabelBackgroundPaint

public void setLabelBackgroundPaint(java.awt.Paint paint)
Sets the section label background paint and sends a PlotChangeEvent to all registered listeners.

Parameters:
paint - the paint (null permitted).

getLabelOutlinePaint

public java.awt.Paint getLabelOutlinePaint()
Returns the section label outline paint.

Returns:
The paint (possibly null).

setLabelOutlinePaint

public void setLabelOutlinePaint(java.awt.Paint paint)
Sets the section label outline paint and sends a PlotChangeEvent to all registered listeners.

Parameters:
paint - the paint (null permitted).

getLabelOutlineStroke

public java.awt.Stroke getLabelOutlineStroke()
Returns the section label outline stroke.

Returns:
The stroke (possibly null).

setLabelOutlineStroke

public void setLabelOutlineStroke(java.awt.Stroke stroke)
Sets the section label outline stroke and sends a PlotChangeEvent to all registered listeners.

Parameters:
stroke - the stroke (null permitted).

getLabelShadowPaint

public java.awt.Paint getLabelShadowPaint()
Returns the section label shadow paint.

Returns:
The paint (possibly null).

setLabelShadowPaint

public void setLabelShadowPaint(java.awt.Paint paint)
Sets the section label shadow paint and sends a PlotChangeEvent to all registered listeners.

Parameters:
paint - the paint (null permitted).

getToolTipGenerator

public PieToolTipGenerator getToolTipGenerator()
Returns the tool tip generator, an object that is responsible for generating the text items used for tool tips by the plot. If the generator is null, no tool tips will be created.

Returns:
The generator (possibly null).

setToolTipGenerator

public void setToolTipGenerator(PieToolTipGenerator generator)
Sets the tool tip generator and sends a PlotChangeEvent to all registered listeners. Set the generator to null if you don't want any tool tips.

Parameters:
generator - the generator (null permitted).

getURLGenerator

public PieURLGenerator getURLGenerator()
Returns the URL generator.

Returns:
The generator (possibly null).

setURLGenerator

public void setURLGenerator(PieURLGenerator generator)
Sets the URL generator and sends a PlotChangeEvent to all registered listeners.

Parameters:
generator - the generator (null permitted).

getMinimumArcAngleToDraw

public double getMinimumArcAngleToDraw()
Returns the minimum arc angle that will be drawn. Pie sections for an angle smaller than this are not drawn, to avoid a JDK bug.

Returns:
The minimum angle.

setMinimumArcAngleToDraw

public void setMinimumArcAngleToDraw(double angle)
Sets the minimum arc angle that will be drawn. Pie sections for an angle smaller than this are not drawn, to avoid a JDK bug. See this link for details: http://www.jfree.org/phpBB2/viewtopic.php?t=2707 ...and this bug report in the Java Bug Parade: http://developer.java.sun.com/developer/bugParade/bugs/4836495.html

Parameters:
angle - the minimum angle.

getIgnoreNullValues

public boolean getIgnoreNullValues()
Returns the flag that controls whether null values in the dataset are ignored.

Returns:
A boolean.

setIgnoreNullValues

public void setIgnoreNullValues(boolean flag)
Sets a flag that controls whether null values are ignored, and sends a PlotChangeEvent to all registered listeners. At present, this only affects whether or not the key is presented in the legend.

Parameters:
flag - the flag.

getLegendItemShape

public java.awt.Shape getLegendItemShape()
Returns the shape used for legend items.

Returns:
The shape.

setLegendItemShape

public void setLegendItemShape(java.awt.Shape shape)
Sets the shape used for legend items.

Parameters:
shape - the shape (null not permitted).

getLegendLabelGenerator

public PieSectionLabelGenerator getLegendLabelGenerator()
Returns the legend label generator.

Returns:
The legend label generator (never null).

setLegendLabelGenerator

public void setLegendLabelGenerator(PieSectionLabelGenerator generator)
Sets the legend label generator and sends a PlotChangeEvent to all registered listeners.

Parameters:
generator - the generator (null not permitted).

initialise

public PiePlotState initialise(java.awt.Graphics2D g2,
                               java.awt.geom.Rectangle2D plotArea,
                               PiePlot plot,
                               java.lang.Integer index,
                               PlotRenderingInfo info)
Initialises the drawing procedure. This method will be called before the first item is rendered, giving the plot an opportunity to initialise any state information it wants to maintain.

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).

draw

public void draw(java.awt.Graphics2D g2,
                 java.awt.geom.Rectangle2D plotArea,
                 PlotState parentState,
                 PlotRenderingInfo info)
Draws the plot on a Java 2D graphics device (such as the screen or a printer).

Specified by:
draw in class Plot
Parameters:
g2 - the graphics device.
plotArea - the area within which the plot should be drawn.
parentState - the state from the parent plot, if there is one.
info - collects info about the drawing (null permitted).

drawPie

protected void drawPie(java.awt.Graphics2D g2,
                       java.awt.geom.Rectangle2D plotArea,
                       PlotRenderingInfo info)
Draws the pie.

Parameters:
g2 - the graphics device.
plotArea - the plot area.
info - chart rendering info.

drawItem

protected void drawItem(java.awt.Graphics2D g2,
                        int section,
                        java.awt.geom.Rectangle2D dataArea,
                        PiePlotState state,
                        int currentPass)
Draws a single data item.

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.

drawLabels

protected void drawLabels(java.awt.Graphics2D g2,
                          java.util.List keys,
                          double totalValue,
                          java.awt.geom.Rectangle2D plotArea,
                          java.awt.geom.Rectangle2D linkArea,
                          PiePlotState state)
Draws the labels for the pie sections.

Parameters:
g2 - the graphics device.
keys - the keys.
totalValue - the total value.
plotArea - the plot area.
linkArea - the link area.
state - the state.

drawLeftLabels

protected void drawLeftLabels(KeyedValues leftKeys,
                              java.awt.Graphics2D g2,
                              java.awt.geom.Rectangle2D plotArea,
                              java.awt.geom.Rectangle2D linkArea,
                              float maxLabelWidth,
                              PiePlotState state)
Draws the left labels.

Parameters:
leftKeys - the keys.
g2 - the graphics device.
plotArea - the plot area.
linkArea - the link area.
maxLabelWidth - the maximum label width.
state - the state.

drawRightLabels

protected void drawRightLabels(KeyedValues keys,
                               java.awt.Graphics2D g2,
                               java.awt.geom.Rectangle2D plotArea,
                               java.awt.geom.Rectangle2D linkArea,
                               float maxLabelWidth,
                               PiePlotState state)
Draws the right labels.

Parameters:
keys - the keys.
g2 - the graphics device.
plotArea - the plot area.
linkArea - the link area.
maxLabelWidth - the maximum label width.
state - the state.

getLegendItems

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

Specified by:
getLegendItems in interface LegendItemSource
Overrides:
getLegendItems in class Plot
Returns:
The legend items (never null).

getPlotType

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

Specified by:
getPlotType in class Plot
Returns:
The plot type.

zoom

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

Plots are required to support the zoom operation. In the case of a pie chart, it doesn't make sense to zoom in or out, so the method is empty.

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

getArcBounds

protected java.awt.geom.Rectangle2D getArcBounds(java.awt.geom.Rectangle2D unexploded,
                                                 java.awt.geom.Rectangle2D exploded,
                                                 double angle,
                                                 double extent,
                                                 double explodePercent)
Returns a rectangle that can be used to create a pie section (taking into account the amount by which the pie section is 'exploded').

Parameters:
unexploded - the area inside which the unexploded pie sections are drawn.
exploded - the area inside which the exploded pie sections are drawn.
angle - the start angle.
extent - the extent of the arc.
explodePercent - the amount by which the pie section is exploded.
Returns:
A rectangle that can be used to create a pie section.

drawLeftLabel

protected void drawLeftLabel(java.awt.Graphics2D g2,
                             PiePlotState state,
                             PieLabelRecord record)
Draws a section label on the left side of the pie chart.

Parameters:
g2 - the graphics device.
state - the state.
record - the label record.

drawRightLabel

protected void drawRightLabel(java.awt.Graphics2D g2,
                              PiePlotState state,
                              PieLabelRecord record)
Draws a section label on the right side of the pie chart.

Parameters:
g2 - the graphics device.
state - the state.
record - the label record.

equals

public boolean equals(java.lang.Object obj)
Tests this plot for equality with an arbitrary object. Note that the plot's dataset is NOT included in the test for equality.

Overrides:
equals in class Plot
Parameters:
obj - the object to test against (null permitted).
Returns:
true or false.

clone

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

Overrides:
clone in class Plot
Returns:
A clone.
Throws:
java.lang.CloneNotSupportedException - if some component of the plot does not support cloning.