Class ThermometerPlot

java.lang.Object
org.jfree.chart.plot.Plot
org.jfree.chart.plot.ThermometerPlot
All Implemented Interfaces:
Serializable, Cloneable, EventListener, AxisChangeListener, ValueAxisPlot, DatasetChangeListener

public class ThermometerPlot
extends Plot
implements ValueAxisPlot, Cloneable, Serializable
A plot that displays a single value (from a ValueDataset) in a thermometer type display.

This plot supports a number of options:

  1. three sub-ranges which could be viewed as 'Normal', 'Warning' and 'Critical' ranges.
  2. the thermometer can be run in two modes:
    • fixed range, or
    • range adjusts to current sub-range.
  3. settable units to be displayed.
  4. settable display location for the value text.
Author:
Bryan Scott
See Also:
Serialized Form
  • Field Details

    • UNITS_NONE

      public static final int UNITS_NONE
      A constant for unit type 'None'.
      See Also:
      Constant Field Values
    • UNITS_FAHRENHEIT

      public static final int UNITS_FAHRENHEIT
      A constant for unit type 'Fahrenheit'.
      See Also:
      Constant Field Values
    • UNITS_CELCIUS

      public static final int UNITS_CELCIUS
      A constant for unit type 'Celcius'.
      See Also:
      Constant Field Values
    • UNITS_KELVIN

      public static final int UNITS_KELVIN
      A constant for unit type 'Kelvin'.
      See Also:
      Constant Field Values
    • NONE

      public static final int NONE
      A constant for the value label position (no label).
      See Also:
      Constant Field Values
    • LEFT

      public static final int LEFT
      A constant for the value label position (left of the thermometer).
      See Also:
      Constant Field Values
    • BULB

      public static final int BULB
      A constant for the value label position (in the thermometer bulb).
      See Also:
      Constant Field Values
    • NORMAL

      public static final int NORMAL
      A constant for the 'normal' range.
      See Also:
      Constant Field Values
    • WARNING

      public static final int WARNING
      A constant for the 'warning' range.
      See Also:
      Constant Field Values
    • CRITICAL

      public static final int CRITICAL
      A constant for the 'critical' range.
      See Also:
      Constant Field Values
  • Constructor Details

    • ThermometerPlot

      public ThermometerPlot()
      Creates a new thermometer plot.
    • ThermometerPlot

      public ThermometerPlot​(ValueDataset dataset)
      Creates a new thermometer plot, using default attributes where necessary.
      Parameters:
      dataset - the data set.
  • Method Details

    • getDataset

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

      public void setDataset​(ValueDataset dataset)
      Sets the dataset for the plot, replacing the existing dataset if there is one.
      Parameters:
      dataset - the dataset (null permitted).
    • getData

      public ValueDataset getData()
      Deprecated.
      Use getDataset() instead.
      Returns the dataset cast to ValueDataset (provided for convenience).
      Returns:
      the dataset for the plot, cast as a ValueDataset.
    • setData

      public void setData​(ValueDataset dataset)
      Deprecated.
      Use setDataset(...) instead.
      Sets the data for the chart, replacing any existing data.

      Registered listeners are notified that the plot has been modified (this will normally trigger a chart redraw).

      Parameters:
      dataset - the new dataset.
    • getRangeAxis

      public ValueAxis getRangeAxis()
      Returns the range axis.
      Returns:
      the range axis.
    • setRangeAxis

      public void setRangeAxis​(ValueAxis axis)
      Sets the range axis for the plot.

      An exception is thrown if the new axis and the plot are not mutually compatible.

      Parameters:
      axis - the new axis.
    • getLowerBound

      public double 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.
    • setLowerBound

      public void setLowerBound​(double lower)
      Sets the lower bound for the thermometer.
      Parameters:
      lower - the lower bound.
    • getUpperBound

      public double 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.
    • setUpperBound

      public void setUpperBound​(double upper)
      Sets the upper bound for the thermometer.
      Parameters:
      upper - the upper bound.
    • setRange

      public void setRange​(double lower, double upper)
      Sets the lower and upper bounds for the thermometer.
      Parameters:
      lower - the lower bound.
      upper - the upper bound.
    • getPadding

      public org.jfree.ui.Spacer getPadding()
      Returns the padding for the thermometer. This is the space inside the plot area.
      Returns:
      the padding.
    • setPadding

      public void setPadding​(org.jfree.ui.Spacer padding)
      Sets the padding for the thermometer.
      Parameters:
      padding - the padding.
    • getThermometerStroke

      public Stroke getThermometerStroke()
      Returns the stroke used to draw the thermometer outline.
      Returns:
      the stroke.
    • setThermometerStroke

      public void setThermometerStroke​(Stroke s)
      Sets the stroke used to draw the thermometer outline.
      Parameters:
      s - the new stroke (null ignored).
    • getThermometerPaint

      public Paint getThermometerPaint()
      Returns the paint used to draw the thermometer outline.
      Returns:
      the paint.
    • setThermometerPaint

      public void setThermometerPaint​(Paint paint)
      Sets the paint used to draw the thermometer outline.
      Parameters:
      paint - the new paint (null ignored).
    • getUnits

      public int getUnits()
      Returns the unit display type (none/Fahrenheit/Celcius/Kelvin).
      Returns:
      the units type.
    • setUnits

      public void setUnits​(int u)
      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.
    • setUnits

      public void setUnits​(String u)
      Sets the unit type.
      Parameters:
      u - the unit type (null ignored).
    • getValueLocation

      public int getValueLocation()
      Returns the value location.
      Returns:
      the location.
    • setValueLocation

      public void setValueLocation​(int location)
      Sets the location at which the current value is displayed.

      The location can be one of the constants: NONE, RIGHT LEFT and BULB.

      Parameters:
      location - the location.
    • setAxisLocation

      public void setAxisLocation​(int location)
      Sets the location at which the axis is displayed with reference to the bulb.

      The location can be one of the constants: NONE, RIGHT and LEFT.

      Parameters:
      location - the location.
    • getAxisocation

      public int getAxisocation()
      Returns the axis location.
      Returns:
      the location.
    • getValueFont

      public Font getValueFont()
      Gets the font used to display the current value.
      Returns:
      The font.
    • setValueFont

      public void setValueFont​(Font f)
      Sets the font used to display the current value.
      Parameters:
      f - the new font.
    • getValuePaint

      public Paint getValuePaint()
      Gets the paint used to display the current value.
      Returns:
      the paint.
    • setValuePaint

      public void setValuePaint​(Paint p)
      Sets the paint used to display the current value.
      Parameters:
      p - the new paint.
    • setValueFormat

      public void setValueFormat​(NumberFormat formatter)
      Sets the formatter for the value label.
      Parameters:
      formatter - the new formatter.
    • getMercuryPaint

      public Paint getMercuryPaint()
      Returns the default mercury paint.
      Returns:
      the paint.
    • setMercuryPaint

      public void setMercuryPaint​(Paint paint)
      Sets the default mercury paint.
      Parameters:
      paint - the new paint.
    • getShowValueLines

      public boolean getShowValueLines()
      Returns the flag that controls whether not value lines are displayed.
      Returns:
      the flag.
    • setShowValueLines

      public void setShowValueLines​(boolean b)
      Sets the display as to whether to show value lines in the output.
      Parameters:
      b - Whether to show value lines in the thermometer
    • setSubrangeInfo

      public void setSubrangeInfo​(int range, double low, double hi)
      Sets information for a particular range.
      Parameters:
      range - the range to specify information about.
      low - the low value for the range
      hi - 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 value
      rangeHigh - the new rangeInfo value
      displayLow - the new rangeInfo value
      displayHigh - the new rangeInfo value
    • setSubrange

      public void setSubrange​(int range, double low, double high)
      Sets the range.
      Parameters:
      range - the range type.
      low - the low value.
      high - the high value.
    • setDisplayRange

      public void setDisplayRange​(int range, double low, double high)
      Sets the display range.
      Parameters:
      range - the range type.
      low - the low value.
      high - the high value.
    • getSubrangePaint

      public Paint getSubrangePaint​(int range)
      Gets the paint used for a particular subrange.
      Parameters:
      range - the range.
      Returns:
      the paint.
    • setSubrangePaint

      public void setSubrangePaint​(int range, Paint paint)
      Sets the paint to be used for a range.
      Parameters:
      range - the range.
      paint - the paint to be applied.
    • getFollowDataInSubranges

      public boolean 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

      public void setFollowDataInSubranges​(boolean flag)
      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

      public boolean getUseSubrangePaint()
      Returns a flag that controls whether or not the mercury color changes for each subrange.
      Returns:
      the flag.
    • setUseSubrangePaint

      public void setUseSubrangePaint​(boolean flag)
      Sets the range colour change option.
      Parameters:
      flag - The new range colour change option
    • draw

      public void draw​(Graphics2D g2, Rectangle2D plotArea, PlotState parentState, PlotRenderingInfo info)
      Draws the plot on a Java 2D graphics device (such as the screen or a printer).
      Specified by:
      draw in class Plot
      Parameters:
      g2 - the graphics device.
      plotArea - the area within which the plot should be drawn.
      parentState - the state from the parent plot, if there is one.
      info - collects info about the drawing.
    • 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 thermometer chart, it doesn't make sense to zoom in or out, so the method is empty.
      Overrides:
      zoom in class Plot
      Parameters:
      percent - the zoom percentage.
    • getPlotType

      public String getPlotType()
      Returns a short string describing the type of plot.
      Specified by:
      getPlotType in class Plot
      Returns:
      a short string describing the type of plot.
    • datasetChanged

      public void datasetChanged​(DatasetChangeEvent event)
      Checks to see if a new value means the axis range needs adjusting.
      Specified by:
      datasetChanged in interface DatasetChangeListener
      Overrides:
      datasetChanged in class Plot
      Parameters:
      event - the dataset change event.
    • getMinimumVerticalDataValue

      public Number getMinimumVerticalDataValue()
      Returns the minimum value in either the domain or the range, whichever is displayed against the vertical axis for the particular type of plot implementing this interface.
      Returns:
      the minimum value in either the domain or the range.
    • getMaximumVerticalDataValue

      public Number getMaximumVerticalDataValue()
      Returns the maximum value in either the domain or the range, whichever is displayed against the vertical axis for the particular type of plot implementing this interface.
      Returns:
      the maximum value in either the domain or the range
    • getDataRange

      public Range getDataRange​(ValueAxis axis)
      Returns the data range.
      Specified by:
      getDataRange in interface ValueAxisPlot
      Parameters:
      axis - the axis.
      Returns:
      The range of data displayed.
    • getLegendItemLabels

      public List getLegendItemLabels()
      Deprecated.
      use getLegendItems().
      Returns null, since the thermometer plot won't require a legend.
      Returns:
      null.
    • getLegendItems

      public LegendItemCollection getLegendItems()
      Returns the legend items for the plot.
      Overrides:
      getLegendItems in class Plot
      Returns:
      null.
    • getVerticalValueAxis

      public ValueAxis getVerticalValueAxis()
      Returns the vertical value axis.

      This is required by the VerticalValuePlot interface, but not used in this class.

      Returns:
      the vertical value axis.
    • equals

      public boolean equals​(Object obj)
      Tests this plot for equality with another object.
      Overrides:
      equals in class Plot
      Parameters:
      obj - the object.
      Returns:
      true or false.
    • clone

      public Object clone() throws CloneNotSupportedException
      Returns a clone of the plot.
      Overrides:
      clone in class Plot
      Returns:
      A clone.
      Throws:
      CloneNotSupportedException - if the plot cannot be cloned.
    • zoomHorizontalAxes

      public void zoomHorizontalAxes​(double factor)
      Multiplies the range on the horizontal axis/axes by the specified factor.
      Specified by:
      zoomHorizontalAxes in interface ValueAxisPlot
      Parameters:
      factor - the zoom factor.
    • zoomVerticalAxes

      public void zoomVerticalAxes​(double factor)
      Multiplies the range on the vertical axis/axes by the specified factor.
      Specified by:
      zoomVerticalAxes in interface ValueAxisPlot
      Parameters:
      factor - the zoom factor.
    • zoomHorizontalAxes

      public void zoomHorizontalAxes​(double lowerPercent, double upperPercent)
      Zooms the horizontal axes.
      Specified by:
      zoomHorizontalAxes in interface ValueAxisPlot
      Parameters:
      lowerPercent - the lower percent.
      upperPercent - the upper percent.
    • zoomVerticalAxes

      public void zoomVerticalAxes​(double lowerPercent, double upperPercent)
      Zooms the vertical axes.
      Specified by:
      zoomVerticalAxes in interface ValueAxisPlot
      Parameters:
      lowerPercent - the lower percent.
      upperPercent - the upper percent.