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, DatasetChangeListener, org.jfree.util.PublicCloneable

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:

  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.
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      For serialization.
      See Also:
    • UNITS_NONE

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

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

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

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

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

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

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

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

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

      public static final int CRITICAL
      A constant for the 'critical' range.
      See Also:
    • BULB_RADIUS

      protected static final int BULB_RADIUS
      Deprecated.
      As of 1.0.7, use getBulbRadius().
      The bulb radius.
      See Also:
    • BULB_DIAMETER

      protected static final int BULB_DIAMETER
      Deprecated.
      As of 1.0.7, use getBulbDiameter().
      The bulb diameter.
      See Also:
    • COLUMN_RADIUS

      protected static final int COLUMN_RADIUS
      Deprecated.
      As of 1.0.7, use getColumnRadius().
      The column radius.
      See Also:
    • COLUMN_DIAMETER

      protected static final int COLUMN_DIAMETER
      Deprecated.
      As of 1.0.7, use getColumnDiameter().
      The column diameter.
      See Also:
    • GAP_RADIUS

      protected static final int GAP_RADIUS
      Deprecated.
      As of 1.0.7, use getGap().
      The gap radius.
      See Also:
    • GAP_DIAMETER

      protected static final int GAP_DIAMETER
      Deprecated.
      As of 1.0.7, use getGap() times two.
      The gap diameter.
      See Also:
    • AXIS_GAP

      protected static final int AXIS_GAP
      The axis gap.
      See Also:
    • UNITS

      protected static final String[] UNITS
      The unit strings.
    • RANGE_LOW

      protected static final int RANGE_LOW
      Index for low value in subrangeInfo matrix.
      See Also:
    • RANGE_HIGH

      protected static final int RANGE_HIGH
      Index for high value in subrangeInfo matrix.
      See Also:
    • DISPLAY_LOW

      protected static final int DISPLAY_LOW
      Index for display low value in subrangeInfo matrix.
      See Also:
    • DISPLAY_HIGH

      protected static final int DISPLAY_HIGH
      Index for display high value in subrangeInfo matrix.
      See Also:
    • DEFAULT_LOWER_BOUND

      protected static final double DEFAULT_LOWER_BOUND
      The default lower bound.
      See Also:
    • DEFAULT_UPPER_BOUND

      protected static final double DEFAULT_UPPER_BOUND
      The default upper bound.
      See Also:
    • DEFAULT_BULB_RADIUS

      protected static final int DEFAULT_BULB_RADIUS
      The default bulb radius.
      Since:
      1.0.7
      See Also:
    • DEFAULT_COLUMN_RADIUS

      protected static final int DEFAULT_COLUMN_RADIUS
      The default column radius.
      Since:
      1.0.7
      See Also:
    • DEFAULT_GAP

      protected static final int DEFAULT_GAP
      The default gap between the outlines representing the thermometer.
      Since:
      1.0.7
      See Also:
    • dataset

      private ValueDataset dataset
      The dataset for the plot.
    • rangeAxis

      private ValueAxis rangeAxis
      The range axis.
    • lowerBound

      private double lowerBound
      The lower bound for the thermometer.
    • upperBound

      private double upperBound
      The upper bound for the thermometer.
    • bulbRadius

      private int bulbRadius
      The value label position.
      Since:
      1.0.7
    • columnRadius

      private int columnRadius
      The column radius.
      Since:
      1.0.7
    • gap

      private int gap
      The gap between the two outlines the represent the thermometer.
      Since:
      1.0.7
    • padding

      private org.jfree.ui.RectangleInsets padding
      Blank space inside the plot area around the outside of the thermometer.
    • thermometerStroke

      private transient Stroke thermometerStroke
      Stroke for drawing the thermometer
    • thermometerPaint

      private transient Paint thermometerPaint
      Paint for drawing the thermometer
    • units

      private int units
      The display units
    • valueLocation

      private int valueLocation
      The value label position.
    • axisLocation

      private int axisLocation
      The position of the axis
    • valueFont

      private Font valueFont
      The font to write the value in
    • valuePaint

      private transient Paint valuePaint
      Colour that the value is written in
    • valueFormat

      private NumberFormat valueFormat
      Number format for the value
    • mercuryPaint

      private transient Paint mercuryPaint
      The default paint for the mercury in the thermometer.
    • showValueLines

      private boolean showValueLines
      A flag that controls whether value lines are drawn.
    • subrange

      private int subrange
      The display sub-range.
    • subrangeInfo

      private double[][] subrangeInfo
      The start and end values for the subranges.
    • followDataInSubranges

      private boolean followDataInSubranges
      A flag that controls whether or not the axis range adjusts to the sub-ranges.
    • useSubrangePaint

      private boolean useSubrangePaint
      A flag that controls whether or not the mercury paint changes with the subranges.
    • subrangePaint

      private transient Paint[] subrangePaint
      Paint for each range
    • subrangeIndicatorsVisible

      private boolean subrangeIndicatorsVisible
      A flag that controls whether the sub-range indicators are visible.
    • subrangeIndicatorStroke

      private transient Stroke subrangeIndicatorStroke
      The stroke for the sub-range indicators.
    • rangeIndicatorStroke

      private transient Stroke rangeIndicatorStroke
      The range indicator stroke.
    • localizationResources

      protected static ResourceBundle localizationResources
      The resourceBundle for the localization.
  • 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 dataset for the plot.
      Returns:
      The dataset (possibly null).
      See Also:
    • setDataset

      public void setDataset(ValueDataset dataset)
      Sets the dataset for the plot, replacing the existing dataset if there is one, and sends a PlotChangeEvent to all registered listeners.
      Parameters:
      dataset - the dataset (null permitted).
      See Also:
    • getRangeAxis

      public ValueAxis getRangeAxis()
      Returns the range axis.
      Returns:
      The range axis (never null).
      See Also:
    • setRangeAxis

      public void setRangeAxis(ValueAxis axis)
      Sets the range axis for the plot and sends a PlotChangeEvent to all registered listeners.
      Parameters:
      axis - the new axis (null not permitted).
      See Also:
    • 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.
      See Also:
    • setLowerBound

      public void setLowerBound(double lower)
      Sets the lower bound for the thermometer.
      Parameters:
      lower - the lower bound.
      See Also:
    • 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.
      See Also:
    • setUpperBound

      public void setUpperBound(double upper)
      Sets the upper bound for the thermometer.
      Parameters:
      upper - the upper bound.
      See Also:
    • 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.RectangleInsets getPadding()
      Returns the padding for the thermometer. This is the space inside the plot area.
      Returns:
      The padding (never null).
      See Also:
    • setPadding

      public void setPadding(org.jfree.ui.RectangleInsets padding)
      Sets the padding for the thermometer and sends a PlotChangeEvent to all registered listeners.
      Parameters:
      padding - the padding (null not permitted).
      See Also:
    • getThermometerStroke

      public Stroke getThermometerStroke()
      Returns the stroke used to draw the thermometer outline.
      Returns:
      The stroke (never null).
      See Also:
    • setThermometerStroke

      public void setThermometerStroke(Stroke s)
      Sets the stroke used to draw the thermometer outline and sends a PlotChangeEvent to all registered listeners.
      Parameters:
      s - the new stroke (null ignored).
      See Also:
    • getThermometerPaint

      public Paint getThermometerPaint()
      Returns the paint used to draw the thermometer outline.
      Returns:
      The paint (never null).
      See Also:
    • setThermometerPaint

      public void setThermometerPaint(Paint paint)
      Sets the paint used to draw the thermometer outline and sends a PlotChangeEvent to all registered listeners.
      Parameters:
      paint - the new paint (null ignored).
      See Also:
    • getUnits

      public int getUnits()
      Returns a code indicating the unit display type. This is one of UNITS_NONE, UNITS_FAHRENHEIT, UNITS_CELCIUS and UNITS_KELVIN.
      Returns:
      The units type.
      See Also:
    • 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.
      See Also:
    • setUnits

      public void setUnits(String u)
      Deprecated.
      Use setUnits(int) instead. Deprecated as of version 1.0.6, because this method is a little obscure and redundant anyway.
      Sets the unit type.
      Parameters:
      u - the unit type (null ignored).
    • getValueLocation

      public int getValueLocation()
      Returns a code indicating the location at which the value label is displayed.
      Returns:
      The location (one of NONE, RIGHT, LEFT and BULB.).
    • setValueLocation

      public void setValueLocation(int location)
      Sets the location at which the current value is displayed and sends a PlotChangeEvent to all registered listeners.

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

      Parameters:
      location - the location.
    • getAxisLocation

      public int getAxisLocation()
      Returns the axis location.
      Returns:
      The location (one of NONE, LEFT and RIGHT).
      See Also:
    • setAxisLocation

      public void setAxisLocation(int location)
      Sets the location at which the axis is displayed relative to the thermometer, and sends a PlotChangeEvent to all registered listeners.
      Parameters:
      location - the location (one of NONE, LEFT and RIGHT).
      See Also:
    • getValueFont

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

      public void setValueFont(Font f)
      Sets the font used to display the current value.
      Parameters:
      f - the new font (null not permitted).
      See Also:
    • getValuePaint

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

      public void setValuePaint(Paint paint)
      Sets the paint used to display the current value and sends a PlotChangeEvent to all registered listeners.
      Parameters:
      paint - the new paint (null not permitted).
      See Also:
    • setValueFormat

      public void setValueFormat(NumberFormat formatter)
      Sets the formatter for the value label and sends a PlotChangeEvent to all registered listeners.
      Parameters:
      formatter - the new formatter (null not permitted).
    • getMercuryPaint

      public Paint getMercuryPaint()
      Returns the default mercury paint.
      Returns:
      The paint (never null).
      See Also:
    • setMercuryPaint

      public void setMercuryPaint(Paint paint)
      Sets the default mercury paint and sends a PlotChangeEvent to all registered listeners.
      Parameters:
      paint - the new paint (null not permitted).
      See Also:
    • getShowValueLines

      public boolean getShowValueLines()
      Deprecated.
      This flag doesn't do anything useful/visible. Deprecated as of version 1.0.6.
      Returns the flag that controls whether not value lines are displayed.
      Returns:
      The flag.
      See Also:
    • setShowValueLines

      public void setShowValueLines(boolean b)
      Deprecated.
      This flag doesn't do anything useful/visible. Deprecated as of version 1.0.6.
      Sets the display as to whether to show value lines in the output.
      Parameters:
      b - Whether to show value lines in the thermometer
      See Also:
    • 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 bounds for a subrange.
      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 displayed bounds for a sub 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.
      See Also:
    • setSubrangePaint

      public void setSubrangePaint(int range, Paint paint)
      Sets the paint to be used for a subrange and sends a PlotChangeEvent to all registered listeners.
      Parameters:
      range - the range (0, 1 or 2).
      paint - the paint to be applied (null not permitted).
      See Also:
    • 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.
      See Also:
    • setUseSubrangePaint

      public void setUseSubrangePaint(boolean flag)
      Sets the range colour change option.
      Parameters:
      flag - the new range colour change option
      See Also:
    • getBulbRadius

      public int getBulbRadius()
      Returns the bulb radius, in Java2D units.
      Returns:
      The bulb radius.
      Since:
      1.0.7
    • setBulbRadius

      public void setBulbRadius(int r)
      Sets the bulb radius (in Java2D units) and sends a PlotChangeEvent to all registered listeners.
      Parameters:
      r - the new radius (in Java2D units).
      Since:
      1.0.7
      See Also:
    • getBulbDiameter

      public int getBulbDiameter()
      Returns the bulb diameter, which is always twice the value returned by getBulbRadius().
      Returns:
      The bulb diameter.
      Since:
      1.0.7
    • getColumnRadius

      public int getColumnRadius()
      Returns the column radius, in Java2D units.
      Returns:
      The column radius.
      Since:
      1.0.7
      See Also:
    • setColumnRadius

      public void setColumnRadius(int r)
      Sets the column radius (in Java2D units) and sends a PlotChangeEvent to all registered listeners.
      Parameters:
      r - the new radius.
      Since:
      1.0.7
      See Also:
    • getColumnDiameter

      public int getColumnDiameter()
      Returns the column diameter, which is always twice the value returned by getColumnRadius().
      Returns:
      The column diameter.
      Since:
      1.0.7
    • getGap

      public int getGap()
      Returns the gap, in Java2D units, between the two outlines that represent the thermometer.
      Returns:
      The gap.
      Since:
      1.0.7
      See Also:
    • setGap

      public void setGap(int gap)
      Sets the gap (in Java2D units) between the two outlines that represent the thermometer, and sends a PlotChangeEvent to all registered listeners.
      Parameters:
      gap - the new gap.
      Since:
      1.0.7
      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).
      Specified by:
      draw in class 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.
    • 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()
      Deprecated.
      This method is not used. Officially deprecated in version 1.0.6.
      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()
      Deprecated.
      This method is not used. Officially deprecated in version 1.0.6.
      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.
    • setAxisRange

      protected void setAxisRange()
      Sets the axis range to the current values in the rangeInfo array.
    • getLegendItems

      public LegendItemCollection getLegendItems()
      Returns the legend items for the plot.
      Specified by:
      getLegendItems in interface LegendItemSource
      Overrides:
      getLegendItems in class Plot
      Returns:
      null.
    • getOrientation

      public PlotOrientation getOrientation()
      Returns the orientation of the plot.
      Specified by:
      getOrientation in interface Zoomable
      Returns:
      The orientation (always PlotOrientation.VERTICAL).
    • isValidNumber

      protected static boolean isValidNumber(double d)
      Determine whether a number is valid and finite.
      Parameters:
      d - the number to be tested.
      Returns:
      true if the number is valid and finite, and false otherwise.
    • inSubrange

      private boolean inSubrange(int subrange, double value)
      Returns true if the value is in the specified range, and false otherwise.
      Parameters:
      subrange - the subrange.
      value - the value to check.
      Returns:
      A boolean.
    • getCurrentPaint

      private Paint getCurrentPaint()
      Returns the mercury paint corresponding to the current data value. Called from the draw(Graphics2D, Rectangle2D, Point2D, PlotState, PlotRenderingInfo) method.
      Returns:
      The paint (never null).
    • equals

      public boolean equals(Object obj)
      Tests this plot for equality with another object. The plot's dataset is not considered in the test.
      Overrides:
      equals in class Plot
      Parameters:
      obj - the object (null permitted).
      Returns:
      true or false.
    • equal

      private static boolean equal(double[][] array1, double[][] array2)
      Tests two double[][] arrays for equality.
      Parameters:
      array1 - the first array (null permitted).
      array2 - the second arrray (null permitted).
      Returns:
      A boolean.
    • clone

      public Object clone() throws CloneNotSupportedException
      Returns a clone of the plot.
      Specified by:
      clone in interface org.jfree.util.PublicCloneable
      Overrides:
      clone in class Plot
      Returns:
      A clone.
      Throws:
      CloneNotSupportedException - if the plot cannot be cloned.
    • writeObject

      private void writeObject(ObjectOutputStream stream) throws IOException
      Provides serialization support.
      Parameters:
      stream - the output stream.
      Throws:
      IOException - if there is an I/O error.
    • readObject

      private void readObject(ObjectInputStream stream) throws IOException, ClassNotFoundException
      Provides serialization support.
      Parameters:
      stream - the input stream.
      Throws:
      IOException - if there is an I/O error.
      ClassNotFoundException - if there is a classpath problem.
    • zoomDomainAxes

      public void zoomDomainAxes(double factor, PlotRenderingInfo state, Point2D source)
      Multiplies the range on the domain axis/axes by the specified factor.
      Specified by:
      zoomDomainAxes in interface Zoomable
      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:
      zoomDomainAxes in interface Zoomable
      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.
      Since:
      1.0.7
      See Also:
    • zoomRangeAxes

      public void zoomRangeAxes(double factor, PlotRenderingInfo state, Point2D source)
      Multiplies the range on the range axis/axes by the specified factor.
      Specified by:
      zoomRangeAxes in interface Zoomable
      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:
      zoomRangeAxes in interface Zoomable
      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.
      Since:
      1.0.7
      See Also:
    • zoomDomainAxes

      public void zoomDomainAxes(double lowerPercent, double upperPercent, PlotRenderingInfo state, Point2D source)
      This method does nothing.
      Specified by:
      zoomDomainAxes in interface Zoomable
      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:
      zoomRangeAxes in interface Zoomable
      Parameters:
      lowerPercent - the lower percent.
      upperPercent - the upper percent.
      state - the plot state.
      source - the source point.
      See Also:
    • isDomainZoomable

      public boolean isDomainZoomable()
      Returns false.
      Specified by:
      isDomainZoomable in interface Zoomable
      Returns:
      A boolean.
      See Also:
    • isRangeZoomable

      public boolean isRangeZoomable()
      Returns true.
      Specified by:
      isRangeZoomable in interface Zoomable
      Returns:
      A boolean.
      See Also: