org.jfree.chart.plot

Class PiePlot

Implemented Interfaces:
Cloneable, EventListener, PublicCloneable, Serializable, AxisChangeListener, DatasetChangeListener, LegendItemSource, MarkerChangeListener
Known Direct Subclasses:
PiePlot3D, RingPlot

public class PiePlot
extends Plot
implements Cloneable, 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

Field Summary

static double
DEFAULT_INTERIOR_GAP
The default interior gap.
static Paint
DEFAULT_LABEL_BACKGROUND_PAINT
The default section label background paint.
static Font
DEFAULT_LABEL_FONT
The default section label font.
static Paint
DEFAULT_LABEL_OUTLINE_PAINT
The default section label outline paint.
static Stroke
DEFAULT_LABEL_OUTLINE_STROKE
The default section label outline stroke.
static Paint
DEFAULT_LABEL_PAINT
The default section label paint.
static 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.
static double
MAX_INTERIOR_GAP
The maximum interior gap (currently 40%).
protected static ResourceBundle
localizationResources
The resourceBundle for the localization.

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

Object
clone()
Returns a clone of the plot.
void
draw(Graphics2D g2, Rectangle2D area, Point2D anchor, PlotState parentState, PlotRenderingInfo info)
Draws the plot on a Java 2D graphics device (such as the screen or a printer).
protected void
drawItem(Graphics2D g2, int section, Rectangle2D dataArea, PiePlotState state, int currentPass)
Draws a single data item.
protected void
drawLabels(Graphics2D g2, List keys, double totalValue, Rectangle2D plotArea, Rectangle2D linkArea, PiePlotState state)
Draws the labels for the pie sections.
protected void
drawLeftLabel(Graphics2D g2, PiePlotState state, PieLabelRecord record)
Draws a section label on the left side of the pie chart.
protected void
drawLeftLabels(KeyedValues leftKeys, Graphics2D g2, Rectangle2D plotArea, Rectangle2D linkArea, float maxLabelWidth, PiePlotState state)
Draws the left labels.
protected void
drawPie(Graphics2D g2, Rectangle2D plotArea, PlotRenderingInfo info)
Draws the pie.
protected void
drawRightLabel(Graphics2D g2, PiePlotState state, PieLabelRecord record)
Draws a section label on the right side of the pie chart.
protected void
drawRightLabels(KeyedValues keys, Graphics2D g2, Rectangle2D plotArea, Rectangle2D linkArea, float maxLabelWidth, PiePlotState state)
Draws the right labels.
boolean
equals(Object obj)
Tests this plot for equality with an arbitrary object.
protected Rectangle2D
getArcBounds(Rectangle2D unexploded, 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').
Paint
getBaseSectionOutlinePaint()
Returns the base section paint.
Stroke
getBaseSectionOutlineStroke()
Returns the base section stroke.
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(Comparable key)
Returns the amount that the section with the specified key should be exploded.
double
getExplodePercent(int section)
Deprecated. Use getExplodePercent(Comparable) instead.
boolean
getIgnoreNullValues()
Returns the flag that controls whether null values in the dataset are ignored.
boolean
getIgnoreZeroValues()
Returns the flag that controls whether zero values in the dataset are ignored.
double
getInteriorGap()
Returns the interior gap, measured as a percentage of the available drawing space.
Paint
getLabelBackgroundPaint()
Returns the section label background paint.
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.
Paint
getLabelLinkPaint()
Returns the paint used for the lines that connect pie sections to their corresponding labels.
Stroke
getLabelLinkStroke()
Returns the stroke used for the label linking lines.
boolean
getLabelLinksVisible()
Returns the flag that controls whether or not label linking lines are visible.
Paint
getLabelOutlinePaint()
Returns the section label outline paint.
Stroke
getLabelOutlineStroke()
Returns the section label outline stroke.
Paint
getLabelPaint()
Returns the section label paint.
Paint
getLabelShadowPaint()
Returns the section label shadow paint.
Shape
getLegendItemShape()
Returns the shape used for legend items.
LegendItemCollection
getLegendItems()
Returns a collection of legend items for the pie chart.
PieSectionLabelGenerator
getLegendLabelGenerator()
Returns the legend label generator.
PieSectionLabelGenerator
getLegendLabelToolTipGenerator()
Returns the legend label tool tip generator.
PieURLGenerator
getLegendLabelURLGenerator()
Returns the legend label URL 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).
String
getPlotType()
Returns a short string describing the type of plot.
protected Comparable
getSectionKey(int section)
Returns a key for the specified section.
Paint
getSectionOutlinePaint()
Returns the outline paint for ALL sections in the plot.
Paint
getSectionOutlinePaint(Comparable key)
Returns the outline paint associated with the specified key, or null if there is no paint associated with the key.
Paint
getSectionOutlinePaint(int section)
Deprecated. Use getSectionOutlinePaint(Comparable) instead.
Stroke
getSectionOutlineStroke()
Returns the outline stroke for ALL sections in the plot.
Stroke
getSectionOutlineStroke(Comparable key)
Returns the outline stroke associated with the specified key, or null if there is no stroke associated with the key.
Stroke
getSectionOutlineStroke(int section)
Deprecated. Use getSectionOutlineStroke(Comparable) instead.
boolean
getSectionOutlinesVisible()
Returns the flag that controls whether or not the outline is drawn for each pie section.
Paint
getSectionPaint()
Returns the paint for ALL sections in the plot.
Paint
getSectionPaint(Comparable key)
Returns the paint associated with the specified key, or null if there is no paint associated with the key.
Paint
getSectionPaint(int section)
Deprecated. Use getSectionPaint(Comparable) instead.
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(Graphics2D g2, Rectangle2D plotArea, PiePlot plot, 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.
protected Paint
lookupSectionOutlinePaint(Comparable key)
Returns the outline paint for the specified section.
protected Paint
lookupSectionOutlinePaint(Comparable key, boolean autoPopulate)
Returns the outline paint for the specified section.
protected Stroke
lookupSectionOutlineStroke(Comparable key)
Returns the outline stroke for the specified section.
protected Stroke
lookupSectionOutlineStroke(Comparable key, boolean autoPopulate)
Returns the outline stroke for the specified section.
protected Paint
lookupSectionPaint(Comparable key)
Returns the paint for the specified section.
protected Paint
lookupSectionPaint(Comparable key, boolean autoPopulate)
Returns the paint for the specified section.
void
setBaseSectionOutlinePaint(Paint paint)
Sets the base section paint.
void
setBaseSectionOutlineStroke(Stroke stroke)
Sets the base section stroke.
void
setBaseSectionPaint(Paint paint)
Sets the base section paint and sends a PlotChangeEvent to all registered listeners.
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(Comparable key, double percent)
Sets the amount that a pie section should be exploded and sends a PlotChangeEvent to all registered listeners.
void
setExplodePercent(int section, double percent)
Deprecated. Use setExplodePercent(Comparable,double) instead.
void
setIgnoreNullValues(boolean flag)
Sets a flag that controls whether null values are ignored, and sends a PlotChangeEvent to all registered listeners.
void
setIgnoreZeroValues(boolean flag)
Sets a flag that controls whether zero 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(Paint paint)
Sets the section label background paint and sends a PlotChangeEvent to all registered listeners.
void
setLabelFont(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(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(Stroke stroke)
Sets the link stroke and sends a PlotChangeEvent to all registered listeners.
void
setLabelLinksVisible(boolean visible)
Sets the flag that controls whether or not label linking lines are visible and sends a PlotChangeEvent to all registered listeners.
void
setLabelOutlinePaint(Paint paint)
Sets the section label outline paint and sends a PlotChangeEvent to all registered listeners.
void
setLabelOutlineStroke(Stroke stroke)
Sets the section label outline stroke and sends a PlotChangeEvent to all registered listeners.
void
setLabelPaint(Paint paint)
Sets the section label paint and sends a PlotChangeEvent to all registered listeners.
void
setLabelShadowPaint(Paint paint)
Sets the section label shadow paint and sends a PlotChangeEvent to all registered listeners.
void
setLegendItemShape(Shape shape)
Sets the shape used for legend items and sends a PlotChangeEvent to all registered listeners.
void
setLegendLabelGenerator(PieSectionLabelGenerator generator)
Sets the legend label generator and sends a PlotChangeEvent to all registered listeners.
void
setLegendLabelToolTipGenerator(PieSectionLabelGenerator generator)
Sets the legend label tool tip generator and sends a PlotChangeEvent to all registered listeners.
void
setLegendLabelURLGenerator(PieURLGenerator generator)
Sets the legend label URL 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(Comparable key, Paint paint)
Sets the outline paint associated with the specified key, and sends a PlotChangeEvent to all registered listeners.
void
setSectionOutlinePaint(Paint paint)
Sets the outline paint for ALL sections in the plot.
void
setSectionOutlinePaint(int section, Paint paint)
Deprecated. Use setSectionOutlinePaint(Comparable,Paint) instead.
void
setSectionOutlineStroke(Comparable key, Stroke stroke)
Sets the outline stroke associated with the specified key, and sends a PlotChangeEvent to all registered listeners.
void
setSectionOutlineStroke(Stroke stroke)
Sets the outline stroke for ALL sections in the plot.
void
setSectionOutlineStroke(int section, Stroke stroke)
Deprecated. Use setSectionOutlineStroke(Comparable,Stroke) instead.
void
setSectionOutlinesVisible(boolean visible)
Sets the flag that controls whether or not the outline is drawn for each pie section, and sends a PlotChangeEvent to all registered listeners.
void
setSectionPaint(Comparable key, Paint paint)
Sets the paint associated with the specified key, and sends a PlotChangeEvent to all registered listeners.
void
setSectionPaint(Paint paint)
Sets the paint for ALL sections in the plot.
void
setSectionPaint(int section, Paint paint)
Deprecated. Use setSectionPaint(Comparable,Paint) instead.
void
setShadowPaint(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, clone, datasetChanged, draw, drawBackground, drawBackgroundImage, drawNoDataMessage, drawOutline, equals, fillBackground, getBackgroundAlpha, getBackgroundImage, getBackgroundImageAlignment, getBackgroundImageAlpha, getBackgroundPaint, getDatasetGroup, getDrawingSupplier, getForegroundAlpha, getInsets, getLegendItems, getNoDataMessage, getNoDataMessageFont, getNoDataMessagePaint, getOutlinePaint, getOutlineStroke, getParent, getPlotType, getRectX, getRectY, getRootPlot, handleClick, isSubplot, markerChanged, notifyListeners, removeChangeListener, resolveDomainAxisLocation, resolveRangeAxisLocation, setBackgroundAlpha, setBackgroundImage, setBackgroundImageAlignment, setBackgroundImageAlpha, setBackgroundPaint, setDatasetGroup, setDrawingSupplier, setForegroundAlpha, setInsets, setInsets, setNoDataMessage, setNoDataMessageFont, setNoDataMessagePaint, setOutlinePaint, setOutlineStroke, setParent, zoom

Field Details

DEFAULT_INTERIOR_GAP

public static final double DEFAULT_INTERIOR_GAP
The default interior gap.
Field Value:
0.0

DEFAULT_LABEL_BACKGROUND_PAINT

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

DEFAULT_LABEL_FONT

public static final Font DEFAULT_LABEL_FONT
The default section label font.

DEFAULT_LABEL_OUTLINE_PAINT

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

DEFAULT_LABEL_OUTLINE_STROKE

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

DEFAULT_LABEL_PAINT

public static final Paint DEFAULT_LABEL_PAINT
The default section label paint.

DEFAULT_LABEL_SHADOW_PAINT

public static final 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.
Field Value:
0.0

DEFAULT_START_ANGLE

public static final double DEFAULT_START_ANGLE
The default starting angle for the pie chart.
Field Value:
90.0

MAX_INTERIOR_GAP

public static final double MAX_INTERIOR_GAP
The maximum interior gap (currently 40%).
Field Value:
0.0

localizationResources

protected static ResourceBundle localizationResources
The resourceBundle for the localization.

Constructor Details

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 Details

clone

public Object clone()
            throws CloneNotSupportedException
Returns a clone of the plot.
Overrides:
clone in interface Plot
Returns:
A clone.

draw

public void draw(Graphics2D g2,
                 Rectangle2D area,
                 Point2D anchor,
                 PlotState parentState,
                 PlotRenderingInfo info)
Draws the plot on a Java 2D graphics device (such as the screen or a printer).
Overrides:
draw in interface Plot
Parameters:
g2 - the graphics device.
area - the area within which the plot should be drawn.
anchor - the anchor point (null permitted).
parentState - the state from the parent plot, if there is one.
info - collects info about the drawing (null permitted).

drawItem

protected void drawItem(Graphics2D g2,
                        int section,
                        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(Graphics2D g2,
                          List keys,
                          double totalValue,
                          Rectangle2D plotArea,
                          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.

drawLeftLabel

protected void drawLeftLabel(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.

drawLeftLabels

protected void drawLeftLabels(KeyedValues leftKeys,
                              Graphics2D g2,
                              Rectangle2D plotArea,
                              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.

drawPie

protected void drawPie(Graphics2D g2,
                       Rectangle2D plotArea,
                       PlotRenderingInfo info)
Draws the pie.
Parameters:
g2 - the graphics device.
plotArea - the plot area.
info - chart rendering info.

drawRightLabel

protected void drawRightLabel(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.

drawRightLabels

protected void drawRightLabels(KeyedValues keys,
                               Graphics2D g2,
                               Rectangle2D plotArea,
                               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.

equals

public boolean equals(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 interface Plot
Parameters:
obj - the object to test against (null permitted).
Returns:
true or false.

getArcBounds

protected Rectangle2D getArcBounds(Rectangle2D unexploded,
                                   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.

getBaseSectionOutlinePaint

public Paint getBaseSectionOutlinePaint()
Returns the base section paint. This is used when no other paint is available.
Returns:
The paint (never null).

getBaseSectionOutlineStroke

public Stroke getBaseSectionOutlineStroke()
Returns the base section stroke. This is used when no other stroke is available.
Returns:
The stroke (never null).

getBaseSectionPaint

public Paint getBaseSectionPaint()
Returns the base section paint. This is used when no other paint is defined, which is rare. The default value is Color.gray.
Returns:
The paint (never null).

getDataset

public PieDataset getDataset()
Returns the dataset.
Returns:
The dataset (possibly null).

getDirection

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

getExplodePercent

public double getExplodePercent(Comparable key)
Returns the amount that the section with the specified key should be exploded.
Parameters:
key - the key (null not permitted).
Returns:
The amount that the section with the specified key should be exploded.
Since:
1.0.3

getExplodePercent

public double getExplodePercent(int section)

Deprecated. Use getExplodePercent(Comparable) instead.

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

getIgnoreNullValues

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

getIgnoreZeroValues

public boolean getIgnoreZeroValues()
Returns the flag that controls whether zero values in the dataset are ignored.
Returns:
A boolean.

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

getLabelBackgroundPaint

public Paint getLabelBackgroundPaint()
Returns the section label background paint.
Returns:
The paint (possibly null).

getLabelFont

public Font getLabelFont()
Returns the section label font.
Returns:
The font (never null).

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

getLabelGenerator

public PieSectionLabelGenerator getLabelGenerator()
Returns the section label generator.
Returns:
The generator (possibly null).

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

getLabelLinkPaint

public Paint getLabelLinkPaint()
Returns the paint used for the lines that connect pie sections to their corresponding labels.
Returns:
The paint (never null).

getLabelLinkStroke

public Stroke getLabelLinkStroke()
Returns the stroke used for the label linking lines.
Returns:
The stroke.

getLabelLinksVisible

public boolean getLabelLinksVisible()
Returns the flag that controls whether or not label linking lines are visible.
Returns:
A boolean.

getLabelOutlinePaint

public Paint getLabelOutlinePaint()
Returns the section label outline paint.
Returns:
The paint (possibly null).

getLabelOutlineStroke

public Stroke getLabelOutlineStroke()
Returns the section label outline stroke.
Returns:
The stroke (possibly null).

getLabelPaint

public Paint getLabelPaint()
Returns the section label paint.
Returns:
The paint (never null).

getLabelShadowPaint

public Paint getLabelShadowPaint()
Returns the section label shadow paint.
Returns:
The paint (possibly null).

getLegendItemShape

public Shape getLegendItemShape()
Returns the shape used for legend items.
Returns:
The shape (never null).

getLegendItems

public LegendItemCollection getLegendItems()
Returns a collection of legend items for the pie chart.
Specified by:
getLegendItems in interface LegendItemSource
Overrides:
getLegendItems in interface Plot
Returns:
The legend items (never null).

getLegendLabelGenerator

public PieSectionLabelGenerator getLegendLabelGenerator()
Returns the legend label generator.
Returns:
The legend label generator (never null).

getLegendLabelToolTipGenerator

public PieSectionLabelGenerator getLegendLabelToolTipGenerator()
Returns the legend label tool tip generator.
Returns:
The legend label tool tip generator (possibly null).

getLegendLabelURLGenerator

public PieURLGenerator getLegendLabelURLGenerator()
Returns the legend label URL generator.
Returns:
The legend label URL generator (possibly null).
Since:
1.0.4

getMaximumExplodePercent

public double getMaximumExplodePercent()
Returns the maximum explode percent.
Returns:
The 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).

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.

getPieIndex

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

getPlotType

public String getPlotType()
Returns a short string describing the type of plot.
Overrides:
getPlotType in interface Plot
Returns:
The plot type.

getSectionKey

protected Comparable getSectionKey(int section)
Returns a key for the specified section. If there is no such section in the dataset, we generate a key. This is to provide some backward compatibility for the (now deprecated) methods that get/set attributes based on section indices. The preferred way of doing this now is to link the attributes directly to the section key (there are new methods for this, starting from version 1.0.3).
Parameters:
section - the section index.
Returns:
The key.
Since:
1.0.3

getSectionOutlinePaint

public Paint getSectionOutlinePaint()
Returns the outline paint for ALL sections in the plot.
Returns:
The paint (possibly null).

getSectionOutlinePaint

public Paint getSectionOutlinePaint(Comparable key)
Returns the outline paint associated with the specified key, or null if there is no paint associated with the key.
Parameters:
key - the key (null not permitted).
Returns:
The paint associated with the specified key, or null.
Since:
1.0.3

getSectionOutlinePaint

public Paint getSectionOutlinePaint(int section)

Deprecated. Use getSectionOutlinePaint(Comparable) instead.

Returns the paint for the specified section.
Parameters:
section - the section index (zero-based).
Returns:
The paint (possibly null).

getSectionOutlineStroke

public Stroke getSectionOutlineStroke()
Returns the outline stroke for ALL sections in the plot.
Returns:
The stroke (possibly null).

getSectionOutlineStroke

public Stroke getSectionOutlineStroke(Comparable key)
Returns the outline stroke associated with the specified key, or null if there is no stroke associated with the key.
Parameters:
key - the key (null not permitted).
Returns:
The stroke associated with the specified key, or null.
Since:
1.0.3

getSectionOutlineStroke

public Stroke getSectionOutlineStroke(int section)

Deprecated. Use getSectionOutlineStroke(Comparable) instead.

Returns the stroke for the specified section.
Parameters:
section - the section index (zero-based).
Returns:
The stroke (possibly null).

getSectionOutlinesVisible

public boolean getSectionOutlinesVisible()
Returns the flag that controls whether or not the outline is drawn for each pie section.
Returns:
The flag that controls whether or not the outline is drawn for each pie section.

getSectionPaint

public Paint getSectionPaint()
Returns the paint for ALL sections in the plot.
Returns:
The paint (possibly null).

getSectionPaint

public Paint getSectionPaint(Comparable key)
Returns the paint associated with the specified key, or null if there is no paint associated with the key.
Parameters:
key - the key (null not permitted).
Returns:
The paint associated with the specified key, or null.
Since:
1.0.3

getSectionPaint

public Paint getSectionPaint(int section)

Deprecated. Use getSectionPaint(Comparable) instead.

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

getShadowPaint

public Paint getShadowPaint()
Returns the shadow paint.
Returns:
The paint (possibly null).

getShadowXOffset

public double getShadowXOffset()
Returns the x-offset for the shadow effect.
Returns:
The offset (in Java2D units).

getShadowYOffset

public double getShadowYOffset()
Returns the y-offset for the shadow effect.
Returns:
The offset (in Java2D units).

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.

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

getURLGenerator

public PieURLGenerator getURLGenerator()
Returns the URL generator.
Returns:
The generator (possibly null).

initialise

public PiePlotState initialise(Graphics2D g2,
                               Rectangle2D plotArea,
                               PiePlot plot,
                               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).

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.

lookupSectionOutlinePaint

protected Paint lookupSectionOutlinePaint(Comparable key)
Returns the outline paint for the specified section. This is equivalent to lookupSectionPaint(section, false).
Parameters:
key - the section key.
Returns:
The paint for the specified section.
Since:
1.0.3

lookupSectionOutlinePaint

protected Paint lookupSectionOutlinePaint(Comparable key,
                                          boolean autoPopulate)
Returns the outline paint for the specified section. The lookup involves these steps:
Parameters:
key - the section key.
autoPopulate - a flag that controls whether the drawing supplier is used to auto-populate the section outline paint settings.
Returns:
The paint.
Since:
1.0.3

lookupSectionOutlineStroke

protected Stroke lookupSectionOutlineStroke(Comparable key)
Returns the outline stroke for the specified section. This is equivalent to lookupSectionOutlineStroke(section, false).
Parameters:
key - the section key.
Returns:
The stroke for the specified section.
Since:
1.0.3

lookupSectionOutlineStroke

protected Stroke lookupSectionOutlineStroke(Comparable key,
                                            boolean autoPopulate)
Returns the outline stroke for the specified section. The lookup involves these steps:
Parameters:
key - the section key.
autoPopulate - a flag that controls whether the drawing supplier is used to auto-populate the section outline stroke settings.
Returns:
The stroke.
Since:
1.0.3

lookupSectionPaint

protected Paint lookupSectionPaint(Comparable key)
Returns the paint for the specified section. This is equivalent to lookupSectionPaint(section, false).
Parameters:
key - the section key.
Returns:
The paint for the specified section.
Since:
1.0.3

lookupSectionPaint

protected Paint lookupSectionPaint(Comparable key,
                                   boolean autoPopulate)
Returns the paint for the specified section. The lookup involves these steps:
Parameters:
key - the section key.
autoPopulate - a flag that controls whether the drawing supplier is used to auto-populate the section paint settings.
Returns:
The paint.
Since:
1.0.3

setBaseSectionOutlinePaint

public void setBaseSectionOutlinePaint(Paint paint)
Sets the base section paint.
Parameters:
paint - the paint (null not permitted).

setBaseSectionOutlineStroke

public void setBaseSectionOutlineStroke(Stroke stroke)
Sets the base section stroke.
Parameters:
stroke - the stroke (null not permitted).

setBaseSectionPaint

public void setBaseSectionPaint(Paint paint)
Sets the base section paint and sends a PlotChangeEvent to all registered listeners.
Parameters:
paint - the paint (null not permitted).

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.
See Also:
isCircular()

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?
See Also:
isCircular()

setDataset

public void setDataset(PieDataset dataset)
Sets the dataset and sends a DatasetChangeEvent to 'this'.
Parameters:
dataset - the dataset (null permitted).
See Also:
getDataset()

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

setExplodePercent

public void setExplodePercent(Comparable key,
                              double percent)
Sets the amount that a pie section should be exploded and sends a PlotChangeEvent to all registered listeners.
Parameters:
key - the section key (null not permitted).
percent - the explode percentage (0.30 = 30 percent).
Since:
1.0.3

setExplodePercent

public void setExplodePercent(int section,
                              double percent)

Deprecated. Use setExplodePercent(Comparable,double) instead.

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

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.

setIgnoreZeroValues

public void setIgnoreZeroValues(boolean flag)
Sets a flag that controls whether zero values are ignored, and sends a PlotChangeEvent to all registered listeners. This only affects whether or not a label appears for the non-visible pie section.
Parameters:
flag - the flag.

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

setLabelBackgroundPaint

public void setLabelBackgroundPaint(Paint paint)
Sets the section label background paint and sends a PlotChangeEvent to all registered listeners.
Parameters:
paint - the paint (null permitted).

setLabelFont

public void setLabelFont(Font font)
Sets the section label font and sends a PlotChangeEvent to all registered listeners.
Parameters:
font - the font (null not permitted).

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).
See Also:
getLabelGap()

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

setLabelLinkMargin

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

setLabelLinkPaint

public void setLabelLinkPaint(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).

setLabelLinkStroke

public void setLabelLinkStroke(Stroke stroke)
Sets the link stroke and sends a PlotChangeEvent to all registered listeners.
Parameters:
stroke - the stroke.

setLabelLinksVisible

public void setLabelLinksVisible(boolean visible)
Sets the flag that controls whether or not label linking lines are visible and sends a PlotChangeEvent to all registered listeners. Please take care when hiding the linking lines - depending on the data values, the labels can be displayed some distance away from the corresponding pie section.
Parameters:
visible - the flag.

setLabelOutlinePaint

public void setLabelOutlinePaint(Paint paint)
Sets the section label outline paint and sends a PlotChangeEvent to all registered listeners.
Parameters:
paint - the paint (null permitted).

setLabelOutlineStroke

public void setLabelOutlineStroke(Stroke stroke)
Sets the section label outline stroke and sends a PlotChangeEvent to all registered listeners.
Parameters:
stroke - the stroke (null permitted).

setLabelPaint

public void setLabelPaint(Paint paint)
Sets the section label paint and sends a PlotChangeEvent to all registered listeners.
Parameters:
paint - the paint (null not permitted).

setLabelShadowPaint

public void setLabelShadowPaint(Paint paint)
Sets the section label shadow paint and sends a PlotChangeEvent to all registered listeners.
Parameters:
paint - the paint (null permitted).

setLegendItemShape

public void setLegendItemShape(Shape shape)
Sets the shape used for legend items and sends a PlotChangeEvent to all registered listeners.
Parameters:
shape - the shape (null not permitted).

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

setLegendLabelToolTipGenerator

public void setLegendLabelToolTipGenerator(PieSectionLabelGenerator generator)
Sets the legend label tool tip generator and sends a PlotChangeEvent to all registered listeners.
Parameters:
generator - the generator (null permitted).

setLegendLabelURLGenerator

public void setLegendLabelURLGenerator(PieURLGenerator generator)
Sets the legend label URL generator and sends a PlotChangeEvent to all registered listeners.
Parameters:
generator - the generator (null permitted).
Since:
1.0.4

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

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.

setPieIndex

public void setPieIndex(int index)
Sets the pie index (this is used by the MultiplePiePlot class to track subplots).
Parameters:
index - the index.
See Also:
getPieIndex()

setSectionOutlinePaint

public void setSectionOutlinePaint(Comparable key,
                                   Paint paint)
Sets the outline paint associated with the specified key, and sends a PlotChangeEvent to all registered listeners.
Parameters:
key - the key (null not permitted).
paint - the paint.
Since:
1.0.3

setSectionOutlinePaint

public void setSectionOutlinePaint(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).

setSectionOutlinePaint

public void setSectionOutlinePaint(int section,
                                   Paint paint)

Deprecated. Use setSectionOutlinePaint(Comparable,Paint) instead.

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

setSectionOutlineStroke

public void setSectionOutlineStroke(Comparable key,
                                    Stroke stroke)
Sets the outline stroke associated with the specified key, and sends a PlotChangeEvent to all registered listeners.
Parameters:
key - the key (null not permitted).
stroke - the stroke.
Since:
1.0.3

setSectionOutlineStroke

public void setSectionOutlineStroke(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).

setSectionOutlineStroke

public void setSectionOutlineStroke(int section,
                                    Stroke stroke)

Deprecated. Use setSectionOutlineStroke(Comparable,Stroke) instead.

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

setSectionOutlinesVisible

public void setSectionOutlinesVisible(boolean visible)
Sets the flag that controls whether or not the outline is drawn for each pie section, and sends a PlotChangeEvent to all registered listeners.
Parameters:
visible - the flag.

setSectionPaint

public void setSectionPaint(Comparable key,
                            Paint paint)
Sets the paint associated with the specified key, and sends a PlotChangeEvent to all registered listeners.
Parameters:
key - the key (null not permitted).
paint - the paint.
Since:
1.0.3

setSectionPaint

public void setSectionPaint(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).

setSectionPaint

public void setSectionPaint(int section,
                            Paint paint)

Deprecated. Use setSectionPaint(Comparable,Paint) instead.

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

setShadowPaint

public void setShadowPaint(Paint paint)
Sets the shadow paint and sends a PlotChangeEvent to all registered listeners.
Parameters:
paint - the paint (null permitted).

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

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

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

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

setURLGenerator

public void setURLGenerator(PieURLGenerator generator)
Sets the URL generator and sends a PlotChangeEvent to all registered listeners.
Parameters:
generator - the generator (null permitted).

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 interface Plot
Parameters:
percent - the zoom percentage.