Package org.jfree.chart.plot
Class ThermometerPlot
java.lang.Object
org.jfree.chart.plot.Plot
org.jfree.chart.plot.ThermometerPlot
- All Implemented Interfaces:
Serializable,Cloneable,EventListener,AnnotationChangeListener,AxisChangeListener,MarkerChangeListener,LegendItemSource,ValueAxisPlot,Zoomable,PublicCloneable,DatasetChangeListener
public class ThermometerPlot
extends Plot
implements ValueAxisPlot, Zoomable, Cloneable, Serializable
A plot that displays a single value (from a
ValueDataset) in a
thermometer type display.
This plot supports a number of options:
- three sub-ranges which could be viewed as 'Normal', 'Warning' and 'Critical' ranges.
- the thermometer can be run in two modes:
- fixed range, or
- range adjusts to current sub-range.
- settable units to be displayed.
- settable display location for the value text.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final intThe axis gap.static final intA constant for the value label position (in the thermometer bulb).static final intA constant for the 'critical' range.protected static final intThe default bulb radius.protected static final intThe default column radius.protected static final intThe default gap between the outlines representing the thermometer.protected static final doubleThe default lower bound.protected static final doubleThe default upper bound.protected static final intIndex for display high value in subrangeInfo matrix.protected static final intIndex for display low value in subrangeInfo matrix.static final intA constant for the value label position (left of the thermometer).protected static ResourceBundleThe resourceBundle for the localization.static final intA constant for the value label position (no label).static final intA constant for the 'normal' range.protected static final intIndex for high value in subrangeInfo matrix.protected static final intIndex for low value in subrangeInfo matrix.static final intA constant for the value label position (right of the thermometer).protected static final String[]The unit strings.static final intA constant for unit type 'Celcius'.static final intA constant for unit type 'Fahrenheit'.static final intA constant for unit type 'Kelvin'.static final intA constant for unit type 'None'.static final intA constant for the 'warning' range.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
ConstructorsConstructorDescriptionCreates a new thermometer plot.ThermometerPlot(ValueDataset dataset) Creates a new thermometer plot, using default attributes where necessary. -
Method Summary
Modifier and TypeMethodDescriptionclone()Returns a clone of the plot.voiddatasetChanged(DatasetChangeEvent event) Checks to see if a new value means the axis range needs adjusting.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).booleanTests this plot for equality with another object.intReturns the axis location.intReturns the bulb diameter, which is always twice the value returned bygetBulbRadius().intReturns the bulb radius, in Java2D units.intReturns the column diameter, which is always twice the value returned bygetColumnRadius().intReturns the column radius, in Java2D units.getDataRange(ValueAxis axis) Returns the data range.Returns the dataset for the plot.booleanReturns a flag that controls whether or not the thermometer axis zooms to display the subrange within which the data value falls.intgetGap()Returns the gap, in Java2D units, between the two outlines that represent the thermometer.Returns the legend items for the plot.doubleReturns the lower bound for the thermometer.Returns the default mercury paint.Returns the orientation of the plot.Returns the padding for the thermometer.Returns a short string describing the type of plot.Returns the range axis.getSubrangePaint(int range) Gets the paint used for a particular subrange.Returns the paint used to draw the thermometer outline.Returns the stroke used to draw the thermometer outline.intgetUnits()Returns a code indicating the unit display type.doubleReturns the upper bound for the thermometer.booleanReturns a flag that controls whether or not the mercury color changes for each subrange.Gets the font used to display the current value.intReturns a code indicating the location at which the value label is displayed.Gets the paint used to display the current value.booleanReturnsfalse.booleanReturnstrue.protected static booleanisValidNumber(double d) Determine whether a number is valid and finite.voidsetAxisLocation(int location) Sets the location at which the axis is displayed relative to the thermometer, and sends aPlotChangeEventto all registered listeners.protected voidSets the axis range to the current values in the rangeInfo array.voidsetBulbRadius(int r) Sets the bulb radius (in Java2D units) and sends aPlotChangeEventto all registered listeners.voidsetColumnRadius(int r) Sets the column radius (in Java2D units) and sends aPlotChangeEventto all registered listeners.voidsetDataset(ValueDataset dataset) Sets the dataset for the plot, replacing the existing dataset if there is one, and sends aPlotChangeEventto all registered listeners.voidsetDisplayRange(int range, double low, double high) Sets the displayed bounds for a sub range.voidsetFollowDataInSubranges(boolean flag) Sets the flag that controls whether or not the thermometer axis zooms to display the subrange within which the data value falls.voidsetGap(int gap) Sets the gap (in Java2D units) between the two outlines that represent the thermometer, and sends aPlotChangeEventto all registered listeners.voidsetLowerBound(double lower) Sets the lower bound for the thermometer.voidsetMercuryPaint(Paint paint) Sets the default mercury paint and sends aPlotChangeEventto all registered listeners.voidsetPadding(RectangleInsets padding) Sets the padding for the thermometer and sends aPlotChangeEventto all registered listeners.voidsetRange(double lower, double upper) Sets the lower and upper bounds for the thermometer.voidsetRangeAxis(ValueAxis axis) Sets the range axis for the plot and sends aPlotChangeEventto all registered listeners.voidsetSubrange(int range, double low, double high) Sets the bounds for a subrange.voidsetSubrangeInfo(int range, double low, double hi) Sets information for a particular range.voidsetSubrangeInfo(int range, double rangeLow, double rangeHigh, double displayLow, double displayHigh) Sets the subrangeInfo attribute of the ThermometerPlot objectvoidsetSubrangePaint(int range, Paint paint) Sets the paint to be used for a subrange and sends aPlotChangeEventto all registered listeners.voidsetThermometerPaint(Paint paint) Sets the paint used to draw the thermometer outline and sends aPlotChangeEventto all registered listeners.voidSets the stroke used to draw the thermometer outline and sends aPlotChangeEventto all registered listeners.voidsetUnits(int u) Sets the units to be displayed in the thermometer.voidsetUpperBound(double upper) Sets the upper bound for the thermometer.voidsetUseSubrangePaint(boolean flag) Sets the range colour change option.voidsetValueFont(Font f) Sets the font used to display the current value.voidsetValueFormat(NumberFormat formatter) Sets the formatter for the value label and sends aPlotChangeEventto all registered listeners.voidsetValueLocation(int location) Sets the location at which the current value is displayed and sends aPlotChangeEventto all registered listeners.voidsetValuePaint(Paint paint) Sets the paint used to display the current value and sends aPlotChangeEventto all registered listeners.voidzoom(double percent) A zoom method that does nothing.voidzoomDomainAxes(double lowerPercent, double upperPercent, PlotRenderingInfo state, Point2D source) This method does nothing.voidzoomDomainAxes(double factor, PlotRenderingInfo state, Point2D source) Multiplies the range on the domain axis/axes by the specified factor.voidzoomDomainAxes(double factor, PlotRenderingInfo state, Point2D source, boolean useAnchor) Multiplies the range on the domain axis/axes by the specified factor.voidzoomRangeAxes(double lowerPercent, double upperPercent, PlotRenderingInfo state, Point2D source) Zooms the range axes.voidzoomRangeAxes(double factor, PlotRenderingInfo state, Point2D source) Multiplies the range on the range axis/axes by the specified factor.voidzoomRangeAxes(double factor, PlotRenderingInfo state, Point2D source, boolean useAnchor) Multiplies the range on the range axis/axes by the specified factor.Methods inherited from class org.jfree.chart.plot.Plot
addChangeListener, annotationChanged, axisChanged, canEqual, createAndAddEntity, drawBackground, drawBackgroundImage, drawNoDataMessage, drawOutline, fetchElementHintingFlag, fillBackground, fillBackground, fireChangeEvent, getBackgroundAlpha, getBackgroundImage, getBackgroundImageAlignment, getBackgroundImageAlpha, getBackgroundPaint, getChart, getDatasetGroup, getDrawingSupplier, getForegroundAlpha, getInsets, getNoDataMessage, getNoDataMessageFont, getNoDataMessagePaint, getOutlinePaint, getOutlineStroke, getParent, getRectX, getRectY, getRootPlot, handleClick, hashCode, isNotify, isOutlineVisible, isSubplot, markerChanged, notifyListeners, removeChangeListener, resolveDomainAxisLocation, resolveRangeAxisLocation, setBackgroundAlpha, setBackgroundImage, setBackgroundImageAlignment, setBackgroundImageAlpha, setBackgroundPaint, setChart, setDatasetGroup, setDrawingSupplier, setDrawingSupplier, setForegroundAlpha, setInsets, setInsets, setNoDataMessage, setNoDataMessageFont, setNoDataMessagePaint, setNotify, setOutlinePaint, setOutlineStroke, setOutlineVisible, setParent
-
Field Details
-
UNITS_NONE
A constant for unit type 'None'.- See Also:
-
UNITS_FAHRENHEIT
A constant for unit type 'Fahrenheit'.- See Also:
-
UNITS_CELCIUS
A constant for unit type 'Celcius'.- See Also:
-
UNITS_KELVIN
A constant for unit type 'Kelvin'.- See Also:
-
NONE
A constant for the value label position (no label).- See Also:
-
RIGHT
A constant for the value label position (right of the thermometer).- See Also:
-
LEFT
A constant for the value label position (left of the thermometer).- See Also:
-
BULB
A constant for the value label position (in the thermometer bulb).- See Also:
-
NORMAL
A constant for the 'normal' range.- See Also:
-
WARNING
A constant for the 'warning' range.- See Also:
-
CRITICAL
A constant for the 'critical' range.- See Also:
-
AXIS_GAP
The axis gap.- See Also:
-
UNITS
The unit strings. -
RANGE_LOW
Index for low value in subrangeInfo matrix.- See Also:
-
RANGE_HIGH
Index for high value in subrangeInfo matrix.- See Also:
-
DISPLAY_LOW
Index for display low value in subrangeInfo matrix.- See Also:
-
DISPLAY_HIGH
Index for display high value in subrangeInfo matrix.- See Also:
-
DEFAULT_LOWER_BOUND
The default lower bound.- See Also:
-
DEFAULT_UPPER_BOUND
The default upper bound.- See Also:
-
DEFAULT_BULB_RADIUS
The default bulb radius.- See Also:
-
DEFAULT_COLUMN_RADIUS
The default column radius.- See Also:
-
DEFAULT_GAP
The default gap between the outlines representing the thermometer.- See Also:
-
localizationResources
The resourceBundle for the localization.
-
-
Constructor Details
-
ThermometerPlot
public ThermometerPlot()Creates a new thermometer plot. -
ThermometerPlot
Creates a new thermometer plot, using default attributes where necessary.- Parameters:
dataset- the data set.
-
-
Method Details
-
getDataset
Returns the dataset for the plot.- Returns:
- The dataset (possibly
null). - See Also:
-
setDataset
Sets the dataset for the plot, replacing the existing dataset if there is one, and sends aPlotChangeEventto all registered listeners.- Parameters:
dataset- the dataset (nullpermitted).- See Also:
-
getRangeAxis
Returns the range axis.- Returns:
- The range axis (never
null). - See Also:
-
setRangeAxis
Sets the range axis for the plot and sends aPlotChangeEventto all registered listeners.- Parameters:
axis- the new axis (nullnot permitted).- See Also:
-
getLowerBound
Returns the lower bound for the thermometer. The data value can be set lower than this, but it will not be shown in the thermometer.- Returns:
- The lower bound.
- See Also:
-
setLowerBound
Sets the lower bound for the thermometer.- Parameters:
lower- the lower bound.- See Also:
-
getUpperBound
Returns the upper bound for the thermometer. The data value can be set higher than this, but it will not be shown in the thermometer.- Returns:
- The upper bound.
- See Also:
-
setUpperBound
Sets the upper bound for the thermometer.- Parameters:
upper- the upper bound.- See Also:
-
setRange
Sets the lower and upper bounds for the thermometer.- Parameters:
lower- the lower bound.upper- the upper bound.
-
getPadding
Returns the padding for the thermometer. This is the space inside the plot area.- Returns:
- The padding (never
null). - See Also:
-
setPadding
Sets the padding for the thermometer and sends aPlotChangeEventto all registered listeners.- Parameters:
padding- the padding (nullnot permitted).- See Also:
-
getThermometerStroke
Returns the stroke used to draw the thermometer outline.- Returns:
- The stroke (never
null). - See Also:
-
setThermometerStroke
Sets the stroke used to draw the thermometer outline and sends aPlotChangeEventto all registered listeners.- Parameters:
s- the new stroke (nullignored).- See Also:
-
getThermometerPaint
Returns the paint used to draw the thermometer outline.- Returns:
- The paint (never
null). - See Also:
-
setThermometerPaint
Sets the paint used to draw the thermometer outline and sends aPlotChangeEventto all registered listeners.- Parameters:
paint- the new paint (nullignored).- See Also:
-
getUnits
Returns a code indicating the unit display type. This is one ofUNITS_NONE,UNITS_FAHRENHEIT,UNITS_CELCIUSandUNITS_KELVIN.- Returns:
- The units type.
- See Also:
-
setUnits
Sets the units to be displayed in the thermometer. Use one of the following constants:- UNITS_NONE : no units displayed.
- UNITS_FAHRENHEIT : units displayed in Fahrenheit.
- UNITS_CELCIUS : units displayed in Celcius.
- UNITS_KELVIN : units displayed in Kelvin.
- Parameters:
u- the new unit type.- See Also:
-
getValueLocation
Returns a code indicating the location at which the value label is displayed. -
setValueLocation
Sets the location at which the current value is displayed and sends aPlotChangeEventto all registered listeners.The location can be one of the constants:
NONE,RIGHT,LEFTandBULB.- Parameters:
location- the location.
-
getAxisLocation
Returns the axis location. -
setAxisLocation
Sets the location at which the axis is displayed relative to the thermometer, and sends aPlotChangeEventto all registered listeners. -
getValueFont
Gets the font used to display the current value.- Returns:
- The font.
- See Also:
-
setValueFont
Sets the font used to display the current value.- Parameters:
f- the new font (nullnot permitted).- See Also:
-
getValuePaint
Gets the paint used to display the current value.- Returns:
- The paint.
- See Also:
-
setValuePaint
Sets the paint used to display the current value and sends aPlotChangeEventto all registered listeners.- Parameters:
paint- the new paint (nullnot permitted).- See Also:
-
setValueFormat
Sets the formatter for the value label and sends aPlotChangeEventto all registered listeners.- Parameters:
formatter- the new formatter (nullnot permitted).
-
getMercuryPaint
Returns the default mercury paint.- Returns:
- The paint (never
null). - See Also:
-
setMercuryPaint
Sets the default mercury paint and sends aPlotChangeEventto all registered listeners.- Parameters:
paint- the new paint (nullnot permitted).- See Also:
-
setSubrangeInfo
Sets information for a particular range.- Parameters:
range- the range to specify information about.low- the low value for the rangehi- the high value for the range
-
setSubrangeInfo
public void setSubrangeInfo(int range, double rangeLow, double rangeHigh, double displayLow, double displayHigh) Sets the subrangeInfo attribute of the ThermometerPlot object- Parameters:
range- the new rangeInfo value.rangeLow- the new rangeInfo valuerangeHigh- the new rangeInfo valuedisplayLow- the new rangeInfo valuedisplayHigh- the new rangeInfo value
-
setSubrange
Sets the bounds for a subrange.- Parameters:
range- the range type.low- the low value.high- the high value.
-
setDisplayRange
Sets the displayed bounds for a sub range.- Parameters:
range- the range type.low- the low value.high- the high value.
-
getSubrangePaint
Gets the paint used for a particular subrange.- Parameters:
range- the range (.- Returns:
- The paint.
- See Also:
-
setSubrangePaint
Sets the paint to be used for a subrange and sends aPlotChangeEventto all registered listeners.- Parameters:
range- the range (0, 1 or 2).paint- the paint to be applied (nullnot permitted).- See Also:
-
getFollowDataInSubranges
Returns a flag that controls whether or not the thermometer axis zooms to display the subrange within which the data value falls.- Returns:
- The flag.
-
setFollowDataInSubranges
Sets the flag that controls whether or not the thermometer axis zooms to display the subrange within which the data value falls.- Parameters:
flag- the flag.
-
getUseSubrangePaint
Returns a flag that controls whether or not the mercury color changes for each subrange.- Returns:
- The flag.
- See Also:
-
setUseSubrangePaint
Sets the range colour change option.- Parameters:
flag- the new range colour change option- See Also:
-
getBulbRadius
Returns the bulb radius, in Java2D units.- Returns:
- The bulb radius.
-
setBulbRadius
Sets the bulb radius (in Java2D units) and sends aPlotChangeEventto all registered listeners.- Parameters:
r- the new radius (in Java2D units).- See Also:
-
getBulbDiameter
Returns the bulb diameter, which is always twice the value returned bygetBulbRadius().- Returns:
- The bulb diameter.
-
getColumnRadius
Returns the column radius, in Java2D units.- Returns:
- The column radius.
- See Also:
-
setColumnRadius
Sets the column radius (in Java2D units) and sends aPlotChangeEventto all registered listeners.- Parameters:
r- the new radius.- See Also:
-
getColumnDiameter
Returns the column diameter, which is always twice the value returned bygetColumnRadius().- Returns:
- The column diameter.
-
getGap
Returns the gap, in Java2D units, between the two outlines that represent the thermometer.- Returns:
- The gap.
- See Also:
-
setGap
Sets the gap (in Java2D units) between the two outlines that represent the thermometer, and sends aPlotChangeEventto all registered listeners.- Parameters:
gap- the new gap.- See Also:
-
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). -
zoom
A zoom method that does nothing. Plots are required to support the zoom operation. In the case of a thermometer chart, it doesn't make sense to zoom in or out, so the method is empty. -
getPlotType
Returns a short string describing the type of plot.- Specified by:
getPlotTypein classPlot- Returns:
- A short string describing the type of plot.
-
datasetChanged
Checks to see if a new value means the axis range needs adjusting.- Specified by:
datasetChangedin interfaceDatasetChangeListener- Overrides:
datasetChangedin classPlot- Parameters:
event- the dataset change event.
-
getDataRange
Returns the data range.- Specified by:
getDataRangein interfaceValueAxisPlot- Parameters:
axis- the axis.- Returns:
- The range of data displayed.
-
setAxisRange
Sets the axis range to the current values in the rangeInfo array. -
getLegendItems
Returns the legend items for the plot.- Specified by:
getLegendItemsin interfaceLegendItemSource- Overrides:
getLegendItemsin classPlot- Returns:
null.
-
getOrientation
Returns the orientation of the plot.- Specified by:
getOrientationin interfaceZoomable- Returns:
- The orientation (always
PlotOrientation.VERTICAL).
-
isValidNumber
Determine whether a number is valid and finite.- Parameters:
d- the number to be tested.- Returns:
trueif the number is valid and finite, andfalseotherwise.
-
equals
Tests this plot for equality with another object. The plot's dataset is not considered in the test. -
clone
Returns a clone of the plot.- Specified by:
clonein interfacePublicCloneable- Overrides:
clonein classPlot- Returns:
- A clone.
- Throws:
CloneNotSupportedException- if the plot cannot be cloned.
-
zoomDomainAxes
Multiplies the range on the domain axis/axes by the specified factor.- Specified by:
zoomDomainAxesin interfaceZoomable- Parameters:
factor- the zoom factor.state- the plot state.source- the source point.- See Also:
-
zoomDomainAxes
public void zoomDomainAxes(double factor, PlotRenderingInfo state, Point2D source, boolean useAnchor) Multiplies the range on the domain axis/axes by the specified factor.- Specified by:
zoomDomainAxesin interfaceZoomable- Parameters:
factor- the zoom factor.state- the plot state.source- the source point.useAnchor- a flag that controls whether or not the source point is used for the zoom anchor.- See Also:
-
zoomRangeAxes
Multiplies the range on the range axis/axes by the specified factor.- Specified by:
zoomRangeAxesin interfaceZoomable- Parameters:
factor- the zoom factor.state- the plot state.source- the source point.- See Also:
-
zoomRangeAxes
public void zoomRangeAxes(double factor, PlotRenderingInfo state, Point2D source, boolean useAnchor) Multiplies the range on the range axis/axes by the specified factor.- Specified by:
zoomRangeAxesin interfaceZoomable- Parameters:
factor- the zoom factor.state- the plot state.source- the source point.useAnchor- a flag that controls whether or not the source point is used for the zoom anchor.- See Also:
-
zoomDomainAxes
public void zoomDomainAxes(double lowerPercent, double upperPercent, PlotRenderingInfo state, Point2D source) This method does nothing.- Specified by:
zoomDomainAxesin interfaceZoomable- Parameters:
lowerPercent- the lower percent.upperPercent- the upper percent.state- the plot state.source- the source point.- See Also:
-
zoomRangeAxes
public void zoomRangeAxes(double lowerPercent, double upperPercent, PlotRenderingInfo state, Point2D source) Zooms the range axes.- Specified by:
zoomRangeAxesin interfaceZoomable- Parameters:
lowerPercent- the lower percent.upperPercent- the upper percent.state- the plot state.source- the source point.- See Also:
-
isDomainZoomable
Returnsfalse.- Specified by:
isDomainZoomablein interfaceZoomable- Returns:
- A boolean.
- See Also:
-
isRangeZoomable
Returnstrue.- Specified by:
isRangeZoomablein interfaceZoomable- Returns:
- A boolean.
- See Also:
-