Module platform

Class MeterPlot

java.lang.Object
org.jfree.chart.plot.Plot
org.jfree.chart.plot.MeterPlot
All Implemented Interfaces:
Disposable, Serializable, Cloneable, EventListener, AnnotationChangeListener, AxisChangeListener, MarkerChangeListener, LegendItemSource, PublicCloneable, 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:
  • Field Details

    • DEFAULT_METER_ANGLE

      public static final int DEFAULT_METER_ANGLE
      The default meter angle.
      See Also:
    • DEFAULT_BORDER_SIZE

      public static final float DEFAULT_BORDER_SIZE
      The default border size.
      See Also:
    • DEFAULT_CIRCLE_SIZE

      public static final float DEFAULT_CIRCLE_SIZE
      The default circle size.
      See Also:
    • 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 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

    • getDialShape

      public DialShape getDialShape()
      Returns the dial shape. The default is DialShape.CIRCLE).
      Returns:
      The dial shape (never null).
      See Also:
    • 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).
      See Also:
    • 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

      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).
      See Also:
    • getRange

      public Range getRange()
      Returns the overall range for the dial.
      Returns:
      The overall range (never null).
      See Also:
    • 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:
    • getTickSize

      public double getTickSize()
      Returns the tick size (the interval between ticks on the dial).
      Returns:
      The tick size.
      See Also:
    • 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:
    • 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

      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).
      See Also:
    • getUnits

      public String getUnits()
      Returns a string describing the units for the dial.
      Returns:
      The units (possibly null).
      See Also:
    • 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:
    • getNeedlePaint

      public Paint getNeedlePaint()
      Returns the paint for the needle.
      Returns:
      The paint (never null).
      See Also:
    • 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).
      See Also:
    • getTickLabelsVisible

      public boolean getTickLabelsVisible()
      Returns the flag that determines whether or not tick labels are visible.
      Returns:
      The flag.
      See Also:
    • 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.
      See Also:
    • getTickLabelFont

      public Font getTickLabelFont()
      Returns the tick label font.
      Returns:
      The font (never null).
      See Also:
    • 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).
      See Also:
    • getTickLabelPaint

      public Paint getTickLabelPaint()
      Returns the tick label paint.
      Returns:
      The paint (never null).
      See Also:
    • 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).
      See Also:
    • getTickLabelFormat

      public NumberFormat getTickLabelFormat()
      Returns the tick label format.
      Returns:
      The tick label format (never null).
      See Also:
    • 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).
      See Also:
    • getValueFont

      public Font getValueFont()
      Returns the font for the value label.
      Returns:
      The font (never null).
      See Also:
    • 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).
      See Also:
    • getValuePaint

      public Paint getValuePaint()
      Returns the paint for the value label.
      Returns:
      The paint (never null).
      See Also:
    • 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).
      See Also:
    • getDialBackgroundPaint

      public Paint getDialBackgroundPaint()
      Returns the paint for the dial background.
      Returns:
      The paint (possibly null).
      See Also:
    • 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).
      See Also:
    • 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

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

      public Paint getDialOutlinePaint()
      Returns the dial outline paint.
      Returns:
      The paint.
      See Also:
    • setDialOutlinePaint

      public void setDialOutlinePaint(Paint paint)
      Sets the dial outline paint and sends a PlotChangeEvent to all registered listeners.
      Parameters:
      paint - the paint.
      See Also:
    • 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 triggers a PlotChangeEvent.
      Parameters:
      dataset - the dataset (null permitted).
      See Also:
    • getIntervals

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

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

      public void clearIntervals()
      Clears the intervals for the plot and sends a PlotChangeEvent to all registered listeners.
      See Also:
    • getLegendItems

      public LegendItemCollection getLegendItems()
      Returns an item for each interval.
      Specified by:
      getLegendItems in interface LegendItemSource
      Overrides:
      getLegendItems in class Plot
      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).
      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.
    • 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 (null not 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:
      getPlotType in class Plot
      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.
      Overrides:
      zoom in class Plot
      Parameters:
      percent - The zoom percentage.
    • 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 class Plot
      Parameters:
      obj - the object (null permitted).
      Returns:
      A boolean.
    • 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:
      clone in interface PublicCloneable
      Overrides:
      clone in class Plot
      Returns:
      A clone.
      Throws:
      CloneNotSupportedException - if some component of the plot cannot be cloned.
    • dispose

      public void dispose()
      Specified by:
      dispose in interface Disposable