org.jfree.chart.plot

Class MeterPlot

Implemented Interfaces:
Cloneable, EventListener, PublicCloneable, Serializable, AxisChangeListener, DatasetChangeListener, LegendItemSource, MarkerChangeListener

public class MeterPlot
extends Plot
implements Serializable, Cloneable

A plot that displays a single value in the form of a needle on a dial. Defined ranges (for example, 'normal', 'warning' and 'critical') can be highlighted on the dial.

Field Summary

static float
DEFAULT_BORDER_SIZE
The default border size.
static float
DEFAULT_CIRCLE_SIZE
The default circle size.
static Font
DEFAULT_LABEL_FONT
The default label font.
static int
DEFAULT_METER_ANGLE
The default meter angle.
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

MeterPlot()
Creates a new plot with a default range of 0 to 100 and no value to display.
MeterPlot(ValueDataset dataset)
Creates a new plot that displays the value from the supplied dataset.

Method Summary

void
addInterval(MeterInterval interval)
Adds an interval and sends a PlotChangeEvent to all registered listeners.
void
clearIntervals()
Clears the intervals for the plot and sends a PlotChangeEvent to all registered listeners.
Object
clone()
Returns an independent copy (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
drawArc(Graphics2D g2, Rectangle2D area, double minValue, double maxValue, Paint paint, Stroke stroke)
Draws an arc.
protected void
drawArcForInterval(Graphics2D g2, Rectangle2D meterArea, MeterInterval interval)
Draws the arc to represent an interval.
protected void
drawTick(Graphics2D g2, Rectangle2D meterArea, double value)
Draws a tick.
protected void
drawTick(Graphics2D g2, Rectangle2D meterArea, double value, boolean label)
Draws a tick on the dial.
protected void
drawTicks(Graphics2D g2, Rectangle2D meterArea, double minValue, double maxValue)
Draws the ticks that subdivide the overall range.
protected void
drawValueLabel(Graphics2D g2, Rectangle2D area)
Draws the value label just below the center of the dial.
boolean
equals(Object obj)
Tests the plot for equality with an arbitrary object.
protected void
fillArc(Graphics2D g2, Rectangle2D area, double minValue, double maxValue, Paint paint, boolean dial)
Fills an arc on the dial between the given values.
ValueDataset
getDataset()
Returns the dataset for the plot.
Paint
getDialBackgroundPaint()
Returns the paint for the dial background.
Paint
getDialOutlinePaint()
Returns the dial outline paint.
DialShape
getDialShape()
Returns the dial shape.
boolean
getDrawBorder()
Returns a flag that controls whether or not a rectangular border is drawn around the plot area.
List
getIntervals()
Returns an unmodifiable list of the intervals for the plot.
LegendItemCollection
getLegendItems()
Returns an item for each interval.
int
getMeterAngle()
Returns the meter angle in degrees.
Paint
getNeedlePaint()
Returns the paint for the needle.
String
getPlotType()
Returns a short string describing the type of plot.
Range
getRange()
Returns the overall range for the dial.
Font
getTickLabelFont()
Returns the tick label font.
NumberFormat
getTickLabelFormat()
Returns the tick label format.
Paint
getTickLabelPaint()
Returns the tick label paint.
boolean
getTickLabelsVisible()
Returns the flag that determines whether or not tick labels are visible.
Paint
getTickPaint()
Returns the paint used to draw the ticks around the dial.
double
getTickSize()
Returns the tick size (the interval between ticks on the dial).
String
getUnits()
Returns a string describing the units for the dial.
Font
getValueFont()
Returns the font for the value label.
Paint
getValuePaint()
Returns the paint for the value label.
void
setDataset(ValueDataset dataset)
Sets the dataset for the plot, replacing the existing dataset if there is one, and triggers a PlotChangeEvent.
void
setDialBackgroundPaint(Paint paint)
Sets the paint used to fill the dial background.
void
setDialOutlinePaint(Paint paint)
Sets the dial outline paint and sends a PlotChangeEvent to all registered listeners.
void
setDialShape(DialShape shape)
Sets the dial shape and sends a PlotChangeEvent to all registered listeners.
void
setDrawBorder(boolean draw)
Sets the flag that controls whether or not a rectangular border is drawn around the plot area and sends a PlotChangeEvent to all registered listeners.
void
setMeterAngle(int angle)
Sets the angle (in degrees) for the whole range of the dial and sends a PlotChangeEvent to all registered listeners.
void
setNeedlePaint(Paint paint)
Sets the paint used to display the needle and sends a PlotChangeEvent to all registered listeners.
void
setRange(Range range)
Sets the range for the dial and sends a PlotChangeEvent to all registered listeners.
void
setTickLabelFont(Font font)
Sets the tick label font and sends a PlotChangeEvent to all registered listeners.
void
setTickLabelFormat(NumberFormat format)
Sets the format for the tick labels and sends a PlotChangeEvent to all registered listeners.
void
setTickLabelPaint(Paint paint)
Sets the tick label paint and sends a PlotChangeEvent to all registered listeners.
void
setTickLabelsVisible(boolean visible)
Sets the flag that controls whether or not the tick labels are visible and sends a PlotChangeEvent to all registered listeners.
void
setTickPaint(Paint paint)
Sets the paint used to draw the tick labels around the dial and sends a PlotChangeEvent to all registered listeners.
void
setTickSize(double size)
Sets the tick size and sends a PlotChangeEvent to all registered listeners.
void
setUnits(String units)
Sets the units for the dial and sends a PlotChangeEvent to all registered listeners.
void
setValueFont(Font font)
Sets the font used to display the value label and sends a PlotChangeEvent to all registered listeners.
void
setValuePaint(Paint paint)
Sets the paint used to display the value label and sends a PlotChangeEvent to all registered listeners.
double
valueToAngle(double value)
Translates a data value to an angle on the dial.
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_BORDER_SIZE

public static final float DEFAULT_BORDER_SIZE
The default border size.
Field Value:
3.0f

DEFAULT_CIRCLE_SIZE

public static final float DEFAULT_CIRCLE_SIZE
The default circle size.
Field Value:
10.0f

DEFAULT_LABEL_FONT

public static final Font DEFAULT_LABEL_FONT
The default label font.

DEFAULT_METER_ANGLE

public static final int DEFAULT_METER_ANGLE
The default meter angle.
Field Value:
270

localizationResources

protected static ResourceBundle localizationResources
The resourceBundle for the localization.

Constructor Details

MeterPlot

public MeterPlot()
Creates a new plot with a default range of 0 to 100 and no value to display.

MeterPlot

public MeterPlot(ValueDataset dataset)
Creates a new plot that displays the value from the supplied dataset.
Parameters:
dataset - the dataset (null permitted).

Method Details

addInterval

public void addInterval(MeterInterval interval)
Adds an interval and sends a PlotChangeEvent to all registered listeners.
Parameters:
interval - the interval (null not permitted).

clearIntervals

public void clearIntervals()
Clears the intervals for the plot and sends a PlotChangeEvent to all registered listeners.

clone

public Object clone()
            throws CloneNotSupportedException
Returns an independent copy (clone) of the plot. The dataset is NOT cloned - both the original and the clone will have a reference to the same dataset.
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.

drawArc

protected void drawArc(Graphics2D g2,
                       Rectangle2D area,
                       double minValue,
                       double maxValue,
                       Paint paint,
                       Stroke stroke)
Draws an arc.
Parameters:
g2 - the graphics device.
area - the plot area.
minValue - the minimum value.
maxValue - the maximum value.
paint - the paint.
stroke - the stroke.

drawArcForInterval

protected void drawArcForInterval(Graphics2D g2,
                                  Rectangle2D meterArea,
                                  MeterInterval interval)
Draws the arc to represent an interval.
Parameters:
g2 - the graphics device.
meterArea - the drawing area.
interval - the interval.

drawTick

protected void drawTick(Graphics2D g2,
                        Rectangle2D meterArea,
                        double value)
Draws a tick.
Parameters:
g2 - the graphics device.
meterArea - the meter area.
value - the value.

drawTick

protected void drawTick(Graphics2D g2,
                        Rectangle2D meterArea,
                        double value,
                        boolean label)
Draws a tick on the dial.
Parameters:
g2 - the graphics device.
meterArea - the meter area.
value - the tick value.
label - a flag that controls whether or not a value label is drawn.

drawTicks

protected void drawTicks(Graphics2D g2,
                         Rectangle2D meterArea,
                         double minValue,
                         double maxValue)
Draws the ticks that subdivide the overall range.
Parameters:
g2 - the graphics device.
meterArea - the meter area.
minValue - the minimum value.
maxValue - the maximum value.

drawValueLabel

protected void drawValueLabel(Graphics2D g2,
                              Rectangle2D area)
Draws the value label just below the center of the dial.
Parameters:
g2 - the graphics device.
area - the plot area.

equals

public boolean equals(Object obj)
Tests the plot for equality with an arbitrary object. Note that the dataset is ignored for the purposes of testing equality.
Overrides:
equals in interface Plot
Parameters:
obj - the object (null permitted).
Returns:
A boolean.

fillArc

protected void fillArc(Graphics2D g2,
                       Rectangle2D area,
                       double minValue,
                       double maxValue,
                       Paint paint,
                       boolean dial)
Fills an arc on the dial between the given values.
Parameters:
g2 - the graphics device.
area - the plot area.
minValue - the minimum data value.
maxValue - the maximum data value.
paint - the background paint (null not permitted).
dial - a flag that indicates whether the arc represents the whole dial.

getDataset

public ValueDataset getDataset()
Returns the dataset for the plot.
Returns:
The dataset (possibly null).

getDialBackgroundPaint

public Paint getDialBackgroundPaint()
Returns the paint for the dial background.
Returns:
The paint (possibly null).

getDialOutlinePaint

public Paint getDialOutlinePaint()
Returns the dial outline paint.
Returns:
The paint.

getDialShape

public DialShape getDialShape()
Returns the dial shape. The default is DialShape.CIRCLE).
Returns:
The dial shape (never null).

getDrawBorder

public boolean getDrawBorder()
Returns a flag that controls whether or not a rectangular border is drawn around the plot area.
Returns:
A flag.

getIntervals

public List getIntervals()
Returns an unmodifiable list of the intervals for the plot.
Returns:
A list.

getLegendItems

public LegendItemCollection getLegendItems()
Returns an item for each interval.
Specified by:
getLegendItems in interface LegendItemSource
Overrides:
getLegendItems in interface Plot
Returns:
A collection of legend items.

getMeterAngle

public int getMeterAngle()
Returns the meter angle in degrees. This defines, in part, the shape of the dial. The default is 270 degrees.
Returns:
The meter angle (in degrees).

getNeedlePaint

public Paint getNeedlePaint()
Returns the paint for the needle.
Returns:
The paint (never null).

getPlotType

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

getRange

public Range getRange()
Returns the overall range for the dial.
Returns:
The overall range (never null).

getTickLabelFont

public Font getTickLabelFont()
Returns the tick label font.
Returns:
The font (never null).

getTickLabelFormat

public NumberFormat getTickLabelFormat()
Returns the tick label format.
Returns:
The tick label format (never null).

getTickLabelPaint

public Paint getTickLabelPaint()
Returns the tick label paint.
Returns:
The paint (never null).

getTickLabelsVisible

public boolean getTickLabelsVisible()
Returns the flag that determines whether or not tick labels are visible.
Returns:
The flag.

getTickPaint

public Paint getTickPaint()
Returns the paint used to draw the ticks around the dial.
Returns:
The paint used to draw the ticks around the dial (never null).

getTickSize

public double getTickSize()
Returns the tick size (the interval between ticks on the dial).
Returns:
The tick size.

getUnits

public String getUnits()
Returns a string describing the units for the dial.
Returns:
The units (possibly null).

getValueFont

public Font getValueFont()
Returns the font for the value label.
Returns:
The font (never null).

getValuePaint

public Paint getValuePaint()
Returns the paint for the value label.
Returns:
The paint (never null).

setDataset

public void setDataset(ValueDataset dataset)
Sets the dataset for the plot, replacing the existing dataset if there is one, and triggers a PlotChangeEvent.
Parameters:
dataset - the dataset (null permitted).
See Also:
getDataset()

setDialBackgroundPaint

public void setDialBackgroundPaint(Paint paint)
Sets the paint used to fill the dial background. Set this to null for no background.
Parameters:
paint - the paint (null permitted).

setDialOutlinePaint

public void setDialOutlinePaint(Paint paint)
Sets the dial outline paint and sends a PlotChangeEvent to all registered listeners.
Parameters:
paint - the paint.

setDialShape

public void setDialShape(DialShape shape)
Sets the dial shape and sends a PlotChangeEvent to all registered listeners.
Parameters:
shape - the shape (null not permitted).

setDrawBorder

public void setDrawBorder(boolean draw)
Sets the flag that controls whether or not a rectangular border is drawn around the plot area and sends a PlotChangeEvent to all registered listeners.
Parameters:
draw - the flag.

setMeterAngle

public void setMeterAngle(int angle)
Sets the angle (in degrees) for the whole range of the dial and sends a PlotChangeEvent to all registered listeners.
Parameters:
angle - the angle (in degrees, in the range 1-360).

setNeedlePaint

public void setNeedlePaint(Paint paint)
Sets the paint used to display the needle and sends a PlotChangeEvent to all registered listeners.
Parameters:
paint - the paint (null not permitted).

setRange

public void setRange(Range range)
Sets the range for the dial and sends a PlotChangeEvent to all registered listeners.
Parameters:
range - the range (null not permitted and zero-length ranges not permitted).
See Also:
getRange()

setTickLabelFont

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

setTickLabelFormat

public void setTickLabelFormat(NumberFormat format)
Sets the format for the tick labels and sends a PlotChangeEvent to all registered listeners.
Parameters:
format - the format (null not permitted).

setTickLabelPaint

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

setTickLabelsVisible

public void setTickLabelsVisible(boolean visible)
Sets the flag that controls whether or not the tick labels are visible and sends a PlotChangeEvent to all registered listeners.
Parameters:
visible - the flag.

setTickPaint

public void setTickPaint(Paint paint)
Sets the paint used to draw the tick labels around the dial and sends a PlotChangeEvent to all registered listeners.
Parameters:
paint - the paint (null not permitted).

setTickSize

public void setTickSize(double size)
Sets the tick size and sends a PlotChangeEvent to all registered listeners.
Parameters:
size - the tick size (must be > 0).
See Also:
getTickSize()

setUnits

public void setUnits(String units)
Sets the units for the dial and sends a PlotChangeEvent to all registered listeners.
Parameters:
units - the units (null permitted).
See Also:
getUnits()

setValueFont

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

setValuePaint

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

valueToAngle

public double valueToAngle(double value)
Translates a data value to an angle on the dial.
Parameters:
value - the value.
Returns:
The angle on the dial.

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 meter plot, 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.