- java.lang.Object
-
- org.jfree.chart.plot.Plot
-
- org.jfree.chart.plot.MeterPlot
-
- All Implemented Interfaces:
Serializable,Cloneable,EventListener,PublicCloneable,ChartElement,AnnotationChangeListener,AxisChangeListener,MarkerChangeListener,org.jfree.chart.legend.LegendItemSource,DatasetChangeListener
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.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static floatDEFAULT_BORDER_SIZEThe default border size.static floatDEFAULT_CIRCLE_SIZEThe default circle size.static FontDEFAULT_LABEL_FONTThe default label font.static intDEFAULT_METER_ANGLEThe default meter angle.protected static ResourceBundlelocalizationResourcesThe 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
Constructors Constructor Description MeterPlot()Creates a new plot with a default range of0to100and no value to display.MeterPlot(ValueDataset dataset)Creates a new plot that displays the value from the supplied dataset.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddInterval(MeterInterval interval)Adds an interval and sends aPlotChangeEventto all registered listeners.voidclearIntervals()Clears the intervals for the plot and sends aPlotChangeEventto all registered listeners.Objectclone()Returns an independent copy (clone) of the plot.voiddraw(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 voiddrawArc(Graphics2D g2, Rectangle2D area, double minValue, double maxValue, Paint paint, Stroke stroke)Draws an arc.protected voiddrawArcForInterval(Graphics2D g2, Rectangle2D meterArea, MeterInterval interval)Draws the arc to represent an interval.protected voiddrawTick(Graphics2D g2, Rectangle2D meterArea, double value)Draws a tick.protected voiddrawTick(Graphics2D g2, Rectangle2D meterArea, double value, boolean label)Draws a tick on the dial.protected voiddrawTicks(Graphics2D g2, Rectangle2D meterArea, double minValue, double maxValue)Draws the ticks that subdivide the overall range.protected voiddrawValueLabel(Graphics2D g2, Rectangle2D area)Draws the value label just below the center of the dial.booleanequals(Object obj)Tests the plot for equality with an arbitrary object.protected voidfillArc(Graphics2D g2, Rectangle2D area, double minValue, double maxValue, Paint paint, boolean dial)Fills an arc on the dial between the given values.ValueDatasetgetDataset()Returns the dataset for the plot.PaintgetDialBackgroundPaint()Returns the paint for the dial background.PaintgetDialOutlinePaint()Returns the dial outline paint.DialShapegetDialShape()Returns the dial shape.booleangetDrawBorder()Returns a flag that controls whether or not a rectangular border is drawn around the plot area.List<MeterInterval>getIntervals()Returns an unmodifiable list of the intervals for the plot.org.jfree.chart.legend.LegendItemCollectiongetLegendItems()Returns an item for each interval.intgetMeterAngle()Returns the meter angle in degrees.PaintgetNeedlePaint()Returns the paint for the needle.StringgetPlotType()Returns a short string describing the type of plot.RangegetRange()Returns the overall range for the dial.FontgetTickLabelFont()Returns the tick label font.NumberFormatgetTickLabelFormat()Returns the tick label format.PaintgetTickLabelPaint()Returns the tick label paint.booleangetTickLabelsVisible()Returns the flag that determines whether or not tick labels are visible.PaintgetTickPaint()Returns the paint used to draw the ticks around the dial.doublegetTickSize()Returns the tick size (the interval between ticks on the dial).StringgetUnits()Returns a string describing the units for the dial.FontgetValueFont()Returns the font for the value label.PaintgetValuePaint()Returns the paint for the value label.booleanisValueVisible()Returns the flag that controls whether or not the value is visible.voidsetDataset(ValueDataset dataset)Sets the dataset for the plot, replacing the existing dataset if there is one, and triggers aPlotChangeEvent.voidsetDialBackgroundPaint(Paint paint)Sets the paint used to fill the dial background.voidsetDialOutlinePaint(Paint paint)Sets the dial outline paint and sends aPlotChangeEventto all registered listeners.voidsetDialShape(DialShape shape)Sets the dial shape and sends aPlotChangeEventto all registered listeners.voidsetDrawBorder(boolean draw)Sets the flag that controls whether or not a rectangular border is drawn around the plot area and sends aPlotChangeEventto all registered listeners.voidsetMeterAngle(int angle)Sets the angle (in degrees) for the whole range of the dial and sends aPlotChangeEventto all registered listeners.voidsetNeedlePaint(Paint paint)Sets the paint used to display the needle and sends aPlotChangeEventto all registered listeners.voidsetRange(Range range)Sets the range for the dial and sends aPlotChangeEventto all registered listeners.voidsetTickLabelFont(Font font)Sets the tick label font and sends aPlotChangeEventto all registered listeners.voidsetTickLabelFormat(NumberFormat format)Sets the format for the tick labels and sends aPlotChangeEventto all registered listeners.voidsetTickLabelPaint(Paint paint)Sets the tick label paint and sends aPlotChangeEventto all registered listeners.voidsetTickLabelsVisible(boolean visible)Sets the flag that controls whether or not the tick labels are visible and sends aPlotChangeEventto all registered listeners.voidsetTickPaint(Paint paint)Sets the paint used to draw the tick labels around the dial and sends aPlotChangeEventto all registered listeners.voidsetTickSize(double size)Sets the tick size and sends aPlotChangeEventto all registered listeners.voidsetUnits(String units)Sets the units for the dial and sends aPlotChangeEventto all registered listeners.voidsetValueFont(Font font)Sets the font used to display the value label and sends aPlotChangeEventto all registered listeners.voidsetValuePaint(Paint paint)Sets the paint used to display the value label and sends aPlotChangeEventto all registered listeners.voidsetValueVisible(boolean valueVisible)Sets the flag that controls whether or not the value is visible and sends a change event to all registered listeners.doublevalueToAngle(double value)Translates a data value to an angle on the dial.voidzoom(double percent)A zoom method that does nothing.-
Methods inherited from class org.jfree.chart.plot.Plot
addChangeListener, annotationChanged, axisChanged, createAndAddEntity, datasetChanged, drawBackground, drawBackgroundImage, drawNoDataMessage, drawOutline, fetchElementHintingFlag, fillBackground, fillBackground, fireChangeEvent, getBackgroundAlpha, getBackgroundImage, getBackgroundImageAlignment, getBackgroundImageAlpha, getBackgroundPaint, getChart, getDrawingSupplier, getForegroundAlpha, getInsets, getNoDataMessage, getNoDataMessageFont, getNoDataMessagePaint, getOutlinePaint, getOutlineStroke, getParent, getRectX, getRectY, getRootPlot, handleClick, isNotify, isOutlineVisible, isSubplot, markerChanged, notifyListeners, receive, removeChangeListener, resolveDomainAxisLocation, resolveRangeAxisLocation, setBackgroundAlpha, setBackgroundImage, setBackgroundImageAlignment, setBackgroundImageAlpha, setBackgroundPaint, setChart, setDrawingSupplier, setDrawingSupplier, setForegroundAlpha, setInsets, setInsets, setNoDataMessage, setNoDataMessageFont, setNoDataMessagePaint, setNotify, setOutlinePaint, setOutlineStroke, setOutlineVisible, setParent
-
-
-
-
Field Detail
-
DEFAULT_METER_ANGLE
public static final int DEFAULT_METER_ANGLE
The default meter angle.- See Also:
- Constant Field Values
-
DEFAULT_BORDER_SIZE
public static final float DEFAULT_BORDER_SIZE
The default border size.- See Also:
- Constant Field Values
-
DEFAULT_CIRCLE_SIZE
public static final float DEFAULT_CIRCLE_SIZE
The default circle size.- See Also:
- Constant Field Values
-
DEFAULT_LABEL_FONT
public static final Font DEFAULT_LABEL_FONT
The default label font.
-
localizationResources
protected static ResourceBundle localizationResources
The resourceBundle for the localization.
-
-
Constructor Detail
-
MeterPlot
public MeterPlot()
Creates a new plot with a default range of0to100and 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 (nullpermitted).
-
-
Method Detail
-
getDialShape
public DialShape getDialShape()
Returns the dial shape. The default isDialShape.CIRCLE).- Returns:
- The dial shape (never
null). - See Also:
setDialShape(DialShape)
-
setDialShape
public void setDialShape(DialShape shape)
Sets the dial shape and sends aPlotChangeEventto all registered listeners.- Parameters:
shape- the shape (nullnot permitted).- See Also:
getDialShape()
-
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).
- See Also:
setMeterAngle(int)
-
setMeterAngle
public void setMeterAngle(int angle)
Sets the angle (in degrees) for the whole range of the dial and sends aPlotChangeEventto all registered listeners.- Parameters:
angle- the angle (in degrees, in the range 1-360).- See Also:
getMeterAngle()
-
getRange
public Range getRange()
Returns the overall range for the dial.- Returns:
- The overall range (never
null). - See Also:
setRange(Range)
-
setRange
public void setRange(Range range)
Sets the range for the dial and sends aPlotChangeEventto all registered listeners.- Parameters:
range- the range (nullnot permitted and zero-length ranges not permitted).- See Also:
getRange()
-
getTickSize
public double getTickSize()
Returns the tick size (the interval between ticks on the dial).- Returns:
- The tick size.
- See Also:
setTickSize(double)
-
setTickSize
public void setTickSize(double size)
Sets the tick size and sends aPlotChangeEventto all registered listeners.- Parameters:
size- the tick size (must be > 0).- See Also:
getTickSize()
-
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). - See Also:
setTickPaint(Paint)
-
setTickPaint
public void setTickPaint(Paint paint)
Sets the paint used to draw the tick labels around the dial and sends aPlotChangeEventto all registered listeners.- Parameters:
paint- the paint (nullnot permitted).- See Also:
getTickPaint()
-
getUnits
public String getUnits()
Returns a string describing the units for the dial.- Returns:
- The units (possibly
null). - See Also:
setUnits(String)
-
setUnits
public void setUnits(String units)
Sets the units for the dial and sends aPlotChangeEventto all registered listeners.- Parameters:
units- the units (nullpermitted).- See Also:
getUnits()
-
getNeedlePaint
public Paint getNeedlePaint()
Returns the paint for the needle.- Returns:
- The paint (never
null). - See Also:
setNeedlePaint(Paint)
-
setNeedlePaint
public void setNeedlePaint(Paint paint)
Sets the paint used to display the needle and sends aPlotChangeEventto all registered listeners.- Parameters:
paint- the paint (nullnot permitted).- See Also:
getNeedlePaint()
-
getTickLabelsVisible
public boolean getTickLabelsVisible()
Returns the flag that determines whether or not tick labels are visible.- Returns:
- The flag.
- See Also:
setTickLabelsVisible(boolean)
-
setTickLabelsVisible
public void setTickLabelsVisible(boolean visible)
Sets the flag that controls whether or not the tick labels are visible and sends aPlotChangeEventto all registered listeners.- Parameters:
visible- the flag.- See Also:
getTickLabelsVisible()
-
getTickLabelFont
public Font getTickLabelFont()
Returns the tick label font.- Returns:
- The font (never
null). - See Also:
setTickLabelFont(Font)
-
setTickLabelFont
public void setTickLabelFont(Font font)
Sets the tick label font and sends aPlotChangeEventto all registered listeners.- Parameters:
font- the font (nullnot permitted).- See Also:
getTickLabelFont()
-
getTickLabelPaint
public Paint getTickLabelPaint()
Returns the tick label paint.- Returns:
- The paint (never
null). - See Also:
setTickLabelPaint(Paint)
-
setTickLabelPaint
public void setTickLabelPaint(Paint paint)
Sets the tick label paint and sends aPlotChangeEventto all registered listeners.- Parameters:
paint- the paint (nullnot permitted).- See Also:
getTickLabelPaint()
-
isValueVisible
public boolean isValueVisible()
Returns the flag that controls whether or not the value is visible. The default value istrue.- Returns:
- A flag.
- Since:
- 1.5.4
- See Also:
setValueVisible(boolean)
-
setValueVisible
public void setValueVisible(boolean valueVisible)
Sets the flag that controls whether or not the value is visible and sends a change event to all registered listeners.- Parameters:
valueVisible- the new flag value.- Since:
- 1.5.4
- See Also:
isValueVisible()
-
getTickLabelFormat
public NumberFormat getTickLabelFormat()
Returns the tick label format.- Returns:
- The tick label format (never
null). - See Also:
setTickLabelFormat(NumberFormat)
-
setTickLabelFormat
public void setTickLabelFormat(NumberFormat format)
Sets the format for the tick labels and sends aPlotChangeEventto all registered listeners.- Parameters:
format- the format (nullnot permitted).- See Also:
getTickLabelFormat()
-
getValueFont
public Font getValueFont()
Returns the font for the value label.- Returns:
- The font (never
null). - See Also:
setValueFont(Font)
-
setValueFont
public void setValueFont(Font font)
Sets the font used to display the value label and sends aPlotChangeEventto all registered listeners.- Parameters:
font- the font (nullnot permitted).- See Also:
getValueFont()
-
getValuePaint
public Paint getValuePaint()
Returns the paint for the value label.- Returns:
- The paint (never
null). - See Also:
setValuePaint(Paint)
-
setValuePaint
public void setValuePaint(Paint paint)
Sets the paint used to display the value label and sends aPlotChangeEventto all registered listeners.- Parameters:
paint- the paint (nullnot permitted).- See Also:
getValuePaint()
-
getDialBackgroundPaint
public Paint getDialBackgroundPaint()
Returns the paint for the dial background.- Returns:
- The paint (possibly
null). - See Also:
setDialBackgroundPaint(Paint)
-
setDialBackgroundPaint
public void setDialBackgroundPaint(Paint paint)
Sets the paint used to fill the dial background. Set this tonullfor no background.- Parameters:
paint- the paint (nullpermitted).- See Also:
getDialBackgroundPaint()
-
getDrawBorder
public boolean getDrawBorder()
Returns a flag that controls whether or not a rectangular border is drawn around the plot area.- Returns:
- A flag.
- See Also:
setDrawBorder(boolean)
-
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 aPlotChangeEventto all registered listeners.- Parameters:
draw- the flag.- See Also:
getDrawBorder()
-
getDialOutlinePaint
public Paint getDialOutlinePaint()
Returns the dial outline paint.- Returns:
- The paint.
- See Also:
setDialOutlinePaint(Paint)
-
setDialOutlinePaint
public void setDialOutlinePaint(Paint paint)
Sets the dial outline paint and sends aPlotChangeEventto all registered listeners.- Parameters:
paint- the paint.- See Also:
getDialOutlinePaint()
-
getDataset
public ValueDataset getDataset()
Returns the dataset for the plot.- Returns:
- The dataset (possibly
null). - See Also:
setDataset(ValueDataset)
-
setDataset
public void setDataset(ValueDataset dataset)
Sets the dataset for the plot, replacing the existing dataset if there is one, and triggers aPlotChangeEvent.- Parameters:
dataset- the dataset (nullpermitted).- See Also:
getDataset()
-
getIntervals
public List<MeterInterval> getIntervals()
Returns an unmodifiable list of the intervals for the plot.- Returns:
- A list.
- See Also:
addInterval(MeterInterval)
-
addInterval
public void addInterval(MeterInterval interval)
Adds an interval and sends aPlotChangeEventto all registered listeners.- Parameters:
interval- the interval (nullnot permitted).- See Also:
getIntervals(),clearIntervals()
-
clearIntervals
public void clearIntervals()
Clears the intervals for the plot and sends aPlotChangeEventto all registered listeners.- See Also:
addInterval(MeterInterval)
-
getLegendItems
public org.jfree.chart.legend.LegendItemCollection getLegendItems()
Returns an item for each interval.- Specified by:
getLegendItemsin interfaceorg.jfree.chart.legend.LegendItemSource- Overrides:
getLegendItemsin classPlot- Returns:
- A collection of legend items.
-
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).
-
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.
-
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.
-
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 (nullnot permitted).dial- a flag that indicates whether the arc represents the whole dial.
-
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.
-
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.
-
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.
-
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.
-
getPlotType
public String getPlotType()
Returns a short string describing the type of plot.- Specified by:
getPlotTypein classPlot- Returns:
- A string describing the type of plot.
-
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.
-
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.
-
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.- Specified by:
clonein interfacePublicCloneable- Overrides:
clonein classPlot- Returns:
- A clone.
- Throws:
CloneNotSupportedException- if some component of the plot cannot be cloned.
-
-