org.jfree.chart.plot

Class Plot

public abstract class Plot extends Object implements AxisChangeListener, DatasetChangeListener, MarkerChangeListener, LegendItemSource, PublicCloneable, Cloneable, Serializable

The base class for all plots in JFreeChart. The JFreeChart class delegates the drawing of axes and data to the plot. This base class provides facilities common to most plot types.
Field Summary
static floatDEFAULT_BACKGROUND_ALPHA
The default background alpha transparency.
static PaintDEFAULT_BACKGROUND_PAINT
The default background color.
static floatDEFAULT_FOREGROUND_ALPHA
The default foreground alpha transparency.
static RectangleInsetsDEFAULT_INSETS
The default insets.
static ShapeDEFAULT_LEGEND_ITEM_BOX
A default box shape for legend items.
static ShapeDEFAULT_LEGEND_ITEM_CIRCLE
A default circle shape for legend items.
static PaintDEFAULT_OUTLINE_PAINT
The default outline color.
static StrokeDEFAULT_OUTLINE_STROKE
The default outline stroke.
static intMINIMUM_HEIGHT_TO_DRAW
The minimum height at which the plot should be drawn.
static intMINIMUM_WIDTH_TO_DRAW
The minimum width at which the plot should be drawn.
static NumberZERO
Useful constant representing zero.
Constructor Summary
protected Plot()
Creates a new plot.
Method Summary
voidaddChangeListener(PlotChangeListener listener)
Registers an object for notification of changes to the plot.
voidaxisChanged(AxisChangeEvent event)
Receives notification of a change to one of the plot's axes.
Objectclone()
Creates a clone of the plot.
voiddatasetChanged(DatasetChangeEvent event)
Receives notification of a change to the plot's dataset.
abstract voiddraw(Graphics2D g2, Rectangle2D area, Point2D anchor, PlotState parentState, PlotRenderingInfo info)
Draws the plot within the specified area.
voiddrawBackground(Graphics2D g2, Rectangle2D area)
Draws the plot background (the background color and/or image).
voiddrawBackgroundImage(Graphics2D g2, Rectangle2D area)
Draws the background image (if there is one) aligned within the specified area.
protected voiddrawNoDataMessage(Graphics2D g2, Rectangle2D area)
Draws a message to state that there is no data to plot.
voiddrawOutline(Graphics2D g2, Rectangle2D area)
Draws the plot outline.
booleanequals(Object obj)
Tests this plot for equality with another object.
protected voidfillBackground(Graphics2D g2, Rectangle2D area)
Fills the specified area with the background paint.
protected voidfillBackground(Graphics2D g2, Rectangle2D area, PlotOrientation orientation)
Fills the specified area with the background paint.
protected voidfireChangeEvent()
Sends a PlotChangeEvent to all registered listeners.
floatgetBackgroundAlpha()
Returns the alpha transparency of the plot area background.
ImagegetBackgroundImage()
Returns the background image that is used to fill the plot's background area.
intgetBackgroundImageAlignment()
Returns the background image alignment.
floatgetBackgroundImageAlpha()
Returns the alpha transparency used to draw the background image.
PaintgetBackgroundPaint()
Returns the background color of the plot area.
DatasetGroupgetDatasetGroup()
Returns the dataset group for the plot (not currently used).
DrawingSuppliergetDrawingSupplier()
Returns the drawing supplier for the plot.
floatgetForegroundAlpha()
Returns the alpha-transparency for the plot foreground.
RectangleInsetsgetInsets()
Returns the insets for the plot area.
LegendItemCollectiongetLegendItems()
Returns the legend items for the plot.
StringgetNoDataMessage()
Returns the string that is displayed when the dataset is empty or null.
FontgetNoDataMessageFont()
Returns the font used to display the 'no data' message.
PaintgetNoDataMessagePaint()
Returns the paint used to display the 'no data' message.
PaintgetOutlinePaint()
Returns the color used to draw the outline of the plot area.
StrokegetOutlineStroke()
Returns the stroke used to outline the plot area.
PlotgetParent()
Returns the parent plot (or null if this plot is not part of a combined plot).
abstract StringgetPlotType()
Returns a short string describing the plot type.
protected doublegetRectX(double x, double w1, double w2, RectangleEdge edge)
Adjusts the supplied x-value.
protected doublegetRectY(double y, double h1, double h2, RectangleEdge edge)
Adjusts the supplied y-value.
PlotgetRootPlot()
Returns the root plot.
voidhandleClick(int x, int y, PlotRenderingInfo info)
Handles a 'click' on the plot.
booleanisOutlineVisible()
Returns the flag that controls whether or not the plot outline is drawn.
booleanisSubplot()
Returns true if this plot is part of a combined plot structure (that is, getParent returns a non-null value), and false otherwise.
voidmarkerChanged(MarkerChangeEvent event)
Receives notification of a change to a marker that is assigned to the plot.
voidnotifyListeners(PlotChangeEvent event)
Notifies all registered listeners that the plot has been modified.
voidremoveChangeListener(PlotChangeListener listener)
Unregisters an object for notification of changes to the plot.
static RectangleEdgeresolveDomainAxisLocation(AxisLocation location, PlotOrientation orientation)
Resolves a domain axis location for a given plot orientation.
static RectangleEdgeresolveRangeAxisLocation(AxisLocation location, PlotOrientation orientation)
Resolves a range axis location for a given plot orientation.
voidsetBackgroundAlpha(float alpha)
Sets the alpha transparency of the plot area background, and notifies registered listeners that the plot has been modified.
voidsetBackgroundImage(Image image)
Sets the background image for the plot and sends a PlotChangeEvent to all registered listeners.
voidsetBackgroundImageAlignment(int alignment)
Sets the alignment for the background image and sends a PlotChangeEvent to all registered listeners.
voidsetBackgroundImageAlpha(float alpha)
Sets the alpha transparency used when drawing the background image.
voidsetBackgroundPaint(Paint paint)
Sets the background color of the plot area and sends a PlotChangeEvent to all registered listeners.
protected voidsetDatasetGroup(DatasetGroup group)
Sets the dataset group (not currently used).
voidsetDrawingSupplier(DrawingSupplier supplier)
Sets the drawing supplier for the plot.
voidsetForegroundAlpha(float alpha)
Sets the alpha-transparency for the plot and sends a PlotChangeEvent to all registered listeners.
voidsetInsets(RectangleInsets insets)
Sets the insets for the plot and sends a PlotChangeEvent to all registered listeners.
voidsetInsets(RectangleInsets insets, boolean notify)
Sets the insets for the plot and, if requested, and sends a PlotChangeEvent to all registered listeners.
voidsetNoDataMessage(String message)
Sets the message that is displayed when the dataset is empty or null, and sends a PlotChangeEvent to all registered listeners.
voidsetNoDataMessageFont(Font font)
Sets the font used to display the 'no data' message and sends a PlotChangeEvent to all registered listeners.
voidsetNoDataMessagePaint(Paint paint)
Sets the paint used to display the 'no data' message and sends a PlotChangeEvent to all registered listeners.
voidsetOutlinePaint(Paint paint)
Sets the paint used to draw the outline of the plot area and sends a PlotChangeEvent to all registered listeners.
voidsetOutlineStroke(Stroke stroke)
Sets the stroke used to outline the plot area and sends a PlotChangeEvent to all registered listeners.
voidsetOutlineVisible(boolean visible)
Sets the flag that controls whether or not the plot's outline is drawn, and sends a PlotChangeEvent to all registered listeners.
voidsetParent(Plot parent)
Sets the parent plot.
voidzoom(double percent)
Performs a zoom on the plot.

Field Detail

DEFAULT_BACKGROUND_ALPHA

public static final float DEFAULT_BACKGROUND_ALPHA
The default background alpha transparency.

DEFAULT_BACKGROUND_PAINT

public static final Paint DEFAULT_BACKGROUND_PAINT
The default background color.

DEFAULT_FOREGROUND_ALPHA

public static final float DEFAULT_FOREGROUND_ALPHA
The default foreground alpha transparency.

DEFAULT_INSETS

public static final RectangleInsets DEFAULT_INSETS
The default insets.

DEFAULT_LEGEND_ITEM_BOX

public static final Shape DEFAULT_LEGEND_ITEM_BOX
A default box shape for legend items.

DEFAULT_LEGEND_ITEM_CIRCLE

public static final Shape DEFAULT_LEGEND_ITEM_CIRCLE
A default circle shape for legend items.

DEFAULT_OUTLINE_PAINT

public static final Paint DEFAULT_OUTLINE_PAINT
The default outline color.

DEFAULT_OUTLINE_STROKE

public static final Stroke DEFAULT_OUTLINE_STROKE
The default outline stroke.

MINIMUM_HEIGHT_TO_DRAW

public static final int MINIMUM_HEIGHT_TO_DRAW
The minimum height at which the plot should be drawn.

MINIMUM_WIDTH_TO_DRAW

public static final int MINIMUM_WIDTH_TO_DRAW
The minimum width at which the plot should be drawn.

ZERO

public static final Number ZERO
Useful constant representing zero.

Constructor Detail

Plot

protected Plot()
Creates a new plot.

Method Detail

addChangeListener

public void addChangeListener(PlotChangeListener listener)
Registers an object for notification of changes to the plot.

Parameters: listener the object to be registered.

See Also: removeChangeListener

axisChanged

public void axisChanged(AxisChangeEvent event)
Receives notification of a change to one of the plot's axes.

Parameters: event information about the event (not used here).

clone

public Object clone()
Creates a clone of the plot.

Returns: A clone.

Throws: CloneNotSupportedException if some component of the plot does not support cloning.

datasetChanged

public void datasetChanged(DatasetChangeEvent event)
Receives notification of a change to the plot's dataset.

The plot reacts by passing on a plot change event to all registered listeners.

Parameters: event information about the event (not used here).

draw

public abstract void draw(Graphics2D g2, Rectangle2D area, Point2D anchor, PlotState parentState, PlotRenderingInfo info)
Draws the plot within the specified area. The anchor is a point on the chart that is specified externally (for instance, it may be the last point of the last mouse click performed by the user) - plots can use or ignore this value as they see fit.

Subclasses need to provide an implementation of this method, obviously.

Parameters: g2 the graphics device. area the plot area. anchor the anchor point (null permitted). parentState the parent state (if any). info carries back plot rendering info.

drawBackground

public void drawBackground(Graphics2D g2, Rectangle2D area)
Draws the plot background (the background color and/or image).

This method will be called during the chart drawing process and is declared public so that it can be accessed by the renderers used by certain subclasses. You shouldn't need to call this method directly.

Parameters: g2 the graphics device. area the area within which the plot should be drawn.

drawBackgroundImage

public void drawBackgroundImage(Graphics2D g2, Rectangle2D area)
Draws the background image (if there is one) aligned within the specified area.

Parameters: g2 the graphics device. area the area.

See Also: getBackgroundImage getBackgroundImageAlignment getBackgroundImageAlpha

drawNoDataMessage

protected void drawNoDataMessage(Graphics2D g2, Rectangle2D area)
Draws a message to state that there is no data to plot.

Parameters: g2 the graphics device. area the area within which the plot should be drawn.

drawOutline

public void drawOutline(Graphics2D g2, Rectangle2D area)
Draws the plot outline. This method will be called during the chart drawing process and is declared public so that it can be accessed by the renderers used by certain subclasses. You shouldn't need to call this method directly.

Parameters: g2 the graphics device. area the area within which the plot should be drawn.

equals

public boolean equals(Object obj)
Tests this plot for equality with another object.

Parameters: obj the object (null permitted).

Returns: true or false.

fillBackground

protected void fillBackground(Graphics2D g2, Rectangle2D area)
Fills the specified area with the background paint.

Parameters: g2 the graphics device. area the area.

See Also: getBackgroundPaint getBackgroundAlpha Plot

fillBackground

protected void fillBackground(Graphics2D g2, Rectangle2D area, PlotOrientation orientation)
Fills the specified area with the background paint. If the background paint is an instance of GradientPaint, the gradient will run in the direction suggested by the plot's orientation.

Parameters: g2 the graphics target. area the plot area. orientation the plot orientation (null not permitted).

Since: 1.0.6

fireChangeEvent

protected void fireChangeEvent()
Sends a PlotChangeEvent to all registered listeners.

Since: 1.0.10

getBackgroundAlpha

public float getBackgroundAlpha()
Returns the alpha transparency of the plot area background.

Returns: The alpha transparency.

See Also: Plot

getBackgroundImage

public Image getBackgroundImage()
Returns the background image that is used to fill the plot's background area.

Returns: The image (possibly null).

See Also: setBackgroundImage

getBackgroundImageAlignment

public int getBackgroundImageAlignment()
Returns the background image alignment. Alignment constants are defined in the org.jfree.ui.Align class in the JCommon class library.

Returns: The alignment.

See Also: Plot

getBackgroundImageAlpha

public float getBackgroundImageAlpha()
Returns the alpha transparency used to draw the background image. This is a value in the range 0.0f to 1.0f, where 0.0f is fully transparent and 1.0f is fully opaque.

Returns: The alpha transparency.

See Also: Plot

getBackgroundPaint

public Paint getBackgroundPaint()
Returns the background color of the plot area.

Returns: The paint (possibly null).

See Also: setBackgroundPaint

getDatasetGroup

public DatasetGroup getDatasetGroup()
Returns the dataset group for the plot (not currently used).

Returns: The dataset group.

See Also: setDatasetGroup

getDrawingSupplier

public DrawingSupplier getDrawingSupplier()
Returns the drawing supplier for the plot.

Returns: The drawing supplier (possibly null).

See Also: setDrawingSupplier

getForegroundAlpha

public float getForegroundAlpha()
Returns the alpha-transparency for the plot foreground.

Returns: The alpha-transparency.

See Also: Plot

getInsets

public RectangleInsets getInsets()
Returns the insets for the plot area.

Returns: The insets (never null).

See Also: setInsets

getLegendItems

public LegendItemCollection getLegendItems()
Returns the legend items for the plot. By default, this method returns null. Subclasses should override to return a LegendItemCollection.

Returns: The legend items for the plot (possibly null).

getNoDataMessage

public String getNoDataMessage()
Returns the string that is displayed when the dataset is empty or null.

Returns: The 'no data' message (null possible).

See Also: setNoDataMessage getNoDataMessageFont getNoDataMessagePaint

getNoDataMessageFont

public Font getNoDataMessageFont()
Returns the font used to display the 'no data' message.

Returns: The font (never null).

See Also: setNoDataMessageFont getNoDataMessage

getNoDataMessagePaint

public Paint getNoDataMessagePaint()
Returns the paint used to display the 'no data' message.

Returns: The paint (never null).

See Also: setNoDataMessagePaint getNoDataMessage

getOutlinePaint

public Paint getOutlinePaint()
Returns the color used to draw the outline of the plot area.

Returns: The color (possibly null).

See Also: setOutlinePaint

getOutlineStroke

public Stroke getOutlineStroke()
Returns the stroke used to outline the plot area.

Returns: The stroke (possibly null).

See Also: setOutlineStroke

getParent

public Plot getParent()
Returns the parent plot (or null if this plot is not part of a combined plot).

Returns: The parent plot.

See Also: setParent getRootPlot

getPlotType

public abstract String getPlotType()
Returns a short string describing the plot type.

Note: this gets used in the chart property editing user interface, but there needs to be a better mechanism for identifying the plot type.

Returns: A short string describing the plot type (never null).

getRectX

protected double getRectX(double x, double w1, double w2, RectangleEdge edge)
Adjusts the supplied x-value.

Parameters: x the x-value. w1 width 1. w2 width 2. edge the edge (left or right).

Returns: The adjusted x-value.

getRectY

protected double getRectY(double y, double h1, double h2, RectangleEdge edge)
Adjusts the supplied y-value.

Parameters: y the x-value. h1 height 1. h2 height 2. edge the edge (top or bottom).

Returns: The adjusted y-value.

getRootPlot

public Plot getRootPlot()
Returns the root plot.

Returns: The root plot.

See Also: getParent

handleClick

public void handleClick(int x, int y, PlotRenderingInfo info)
Handles a 'click' on the plot. Since the plot does not maintain any information about where it has been drawn, the plot rendering info is supplied as an argument so that the plot dimensions can be determined.

Parameters: x the x coordinate (in Java2D space). y the y coordinate (in Java2D space). info an object containing information about the dimensions of the plot.

isOutlineVisible

public boolean isOutlineVisible()
Returns the flag that controls whether or not the plot outline is drawn. The default value is true. Note that for historical reasons, the plot's outline paint and stroke can take on null values, in which case the outline will not be drawn even if this flag is set to true.

Returns: The outline visibility flag.

Since: 1.0.6

See Also: Plot

isSubplot

public boolean isSubplot()
Returns true if this plot is part of a combined plot structure (that is, getParent returns a non-null value), and false otherwise.

Returns: true if this plot is part of a combined plot structure.

See Also: getParent

markerChanged

public void markerChanged(MarkerChangeEvent event)
Receives notification of a change to a marker that is assigned to the plot.

Parameters: event the event.

Since: 1.0.3

notifyListeners

public void notifyListeners(PlotChangeEvent event)
Notifies all registered listeners that the plot has been modified.

Parameters: event information about the change event.

removeChangeListener

public void removeChangeListener(PlotChangeListener listener)
Unregisters an object for notification of changes to the plot.

Parameters: listener the object to be unregistered.

See Also: addChangeListener

resolveDomainAxisLocation

public static RectangleEdge resolveDomainAxisLocation(AxisLocation location, PlotOrientation orientation)
Resolves a domain axis location for a given plot orientation.

Parameters: location the location (null not permitted). orientation the orientation (null not permitted).

Returns: The edge (never null).

resolveRangeAxisLocation

public static RectangleEdge resolveRangeAxisLocation(AxisLocation location, PlotOrientation orientation)
Resolves a range axis location for a given plot orientation.

Parameters: location the location (null not permitted). orientation the orientation (null not permitted).

Returns: The edge (never null).

setBackgroundAlpha

public void setBackgroundAlpha(float alpha)
Sets the alpha transparency of the plot area background, and notifies registered listeners that the plot has been modified.

Parameters: alpha the new alpha value (in the range 0.0f to 1.0f).

See Also: getBackgroundAlpha

setBackgroundImage

public void setBackgroundImage(Image image)
Sets the background image for the plot and sends a PlotChangeEvent to all registered listeners.

Parameters: image the image (null permitted).

See Also: getBackgroundImage

setBackgroundImageAlignment

public void setBackgroundImageAlignment(int alignment)
Sets the alignment for the background image and sends a PlotChangeEvent to all registered listeners. Alignment options are defined by the org.jfree.ui.Align class in the JCommon class library.

Parameters: alignment the alignment.

See Also: getBackgroundImageAlignment

setBackgroundImageAlpha

public void setBackgroundImageAlpha(float alpha)
Sets the alpha transparency used when drawing the background image.

Parameters: alpha the alpha transparency (in the range 0.0f to 1.0f, where 0.0f is fully transparent, and 1.0f is fully opaque).

Throws: IllegalArgumentException if alpha is not within the specified range.

See Also: getBackgroundImageAlpha

setBackgroundPaint

public void setBackgroundPaint(Paint paint)
Sets the background color of the plot area and sends a PlotChangeEvent to all registered listeners.

Parameters: paint the paint (null permitted).

See Also: getBackgroundPaint

setDatasetGroup

protected void setDatasetGroup(DatasetGroup group)
Sets the dataset group (not currently used).

Parameters: group the dataset group (null permitted).

See Also: getDatasetGroup

setDrawingSupplier

public void setDrawingSupplier(DrawingSupplier supplier)
Sets the drawing supplier for the plot. The drawing supplier is responsible for supplying a limitless (possibly repeating) sequence of Paint, Stroke and Shape objects that the plot's renderer(s) can use to populate its (their) tables.

Parameters: supplier the new supplier.

See Also: getDrawingSupplier

setForegroundAlpha

public void setForegroundAlpha(float alpha)
Sets the alpha-transparency for the plot and sends a PlotChangeEvent to all registered listeners.

Parameters: alpha the new alpha transparency.

See Also: getForegroundAlpha

setInsets

public void setInsets(RectangleInsets insets)
Sets the insets for the plot and sends a PlotChangeEvent to all registered listeners.

Parameters: insets the new insets (null not permitted).

See Also: getInsets Plot

setInsets

public void setInsets(RectangleInsets insets, boolean notify)
Sets the insets for the plot and, if requested, and sends a PlotChangeEvent to all registered listeners.

Parameters: insets the new insets (null not permitted). notify a flag that controls whether the registered listeners are notified.

See Also: getInsets setInsets

setNoDataMessage

public void setNoDataMessage(String message)
Sets the message that is displayed when the dataset is empty or null, and sends a PlotChangeEvent to all registered listeners.

Parameters: message the message (null permitted).

See Also: getNoDataMessage

setNoDataMessageFont

public void setNoDataMessageFont(Font font)
Sets the font used to display the 'no data' message and sends a PlotChangeEvent to all registered listeners.

Parameters: font the font (null not permitted).

See Also: getNoDataMessageFont

setNoDataMessagePaint

public void setNoDataMessagePaint(Paint paint)
Sets the paint used to display the 'no data' message and sends a PlotChangeEvent to all registered listeners.

Parameters: paint the paint (null not permitted).

See Also: getNoDataMessagePaint

setOutlinePaint

public void setOutlinePaint(Paint paint)
Sets the paint used to draw the outline of the plot area and sends a PlotChangeEvent to all registered listeners. If you set this attribute to null, no outline will be drawn.

Parameters: paint the paint (null permitted).

See Also: getOutlinePaint

setOutlineStroke

public void setOutlineStroke(Stroke stroke)
Sets the stroke used to outline the plot area and sends a PlotChangeEvent to all registered listeners. If you set this attribute to null, no outline will be drawn.

Parameters: stroke the stroke (null permitted).

See Also: getOutlineStroke

setOutlineVisible

public void setOutlineVisible(boolean visible)
Sets the flag that controls whether or not the plot's outline is drawn, and sends a PlotChangeEvent to all registered listeners.

Parameters: visible the new flag value.

Since: 1.0.6

See Also: isOutlineVisible

setParent

public void setParent(Plot parent)
Sets the parent plot. This method is intended for internal use, you shouldn't need to call it directly.

Parameters: parent the parent plot (null permitted).

See Also: getParent

zoom

public void zoom(double percent)
Performs a zoom on the plot. Subclasses should override if zooming is appropriate for the type of plot.

Parameters: percent the zoom percentage.