Class MeterPlot

    • Field Detail

      • serialVersionUID

        private static final long serialVersionUID
        For serialization.
        See Also:
        Constant Field Values
      • DEFAULT_DIAL_BACKGROUND_PAINT

        static final java.awt.Paint DEFAULT_DIAL_BACKGROUND_PAINT
        The default background paint.
      • DEFAULT_NEEDLE_PAINT

        static final java.awt.Paint DEFAULT_NEEDLE_PAINT
        The default needle paint.
      • DEFAULT_VALUE_FONT

        static final java.awt.Font DEFAULT_VALUE_FONT
        The default value font.
      • DEFAULT_VALUE_PAINT

        static final java.awt.Paint DEFAULT_VALUE_PAINT
        The default value paint.
      • 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 java.awt.Font DEFAULT_LABEL_FONT
        The default label font.
      • dataset

        private ValueDataset dataset
        The dataset (contains a single value).
      • shape

        private DialShape shape
        The dial shape (background shape).
      • meterAngle

        private int meterAngle
        The dial extent (measured in degrees).
      • range

        private Range range
        The overall range of data values on the dial.
      • tickSize

        private double tickSize
        The tick size.
      • tickPaint

        private transient java.awt.Paint tickPaint
        The paint used to draw the ticks.
      • units

        private java.lang.String units
        The units displayed on the dial.
      • valueFont

        private java.awt.Font valueFont
        The font for the value displayed in the center of the dial.
      • valuePaint

        private transient java.awt.Paint valuePaint
        The paint for the value displayed in the center of the dial.
      • valueVisible

        private boolean valueVisible
        A flag that indicates whether the value is visible.
      • drawBorder

        private boolean drawBorder
        A flag that controls whether or not the border is drawn.
      • dialOutlinePaint

        private transient java.awt.Paint dialOutlinePaint
        The outline paint.
      • dialBackgroundPaint

        private transient java.awt.Paint dialBackgroundPaint
        The paint for the dial background.
      • needlePaint

        private transient java.awt.Paint needlePaint
        The paint for the needle.
      • tickLabelsVisible

        private boolean tickLabelsVisible
        A flag that controls whether or not the tick labels are visible.
      • tickLabelFont

        private java.awt.Font tickLabelFont
        The tick label font.
      • tickLabelPaint

        private transient java.awt.Paint tickLabelPaint
        The tick label paint.
      • tickLabelFormat

        private java.text.NumberFormat tickLabelFormat
        The tick label format.
      • localizationResources

        protected static java.util.ResourceBundle localizationResources
        The resourceBundle for the localization.
      • intervals

        private java.util.List<MeterInterval> intervals
        A (possibly empty) list of the MeterIntervals to be highlighted on the dial.
    • Constructor Detail

      • 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 Detail

      • 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:
        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 a PlotChangeEvent to 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 a PlotChangeEvent to all registered listeners.
        Parameters:
        range - the range (null not 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 a PlotChangeEvent to all registered listeners.
        Parameters:
        size - the tick size (must be > 0).
        See Also:
        getTickSize()
      • getTickPaint

        public java.awt.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​(java.awt.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:
        getTickPaint()
      • getUnits

        public java.lang.String getUnits()
        Returns a string describing the units for the dial.
        Returns:
        The units (possibly null).
        See Also:
        setUnits(String)
      • setUnits

        public void setUnits​(java.lang.String units)
        Sets the units for the dial and sends a PlotChangeEvent to all registered listeners.
        Parameters:
        units - the units (null permitted).
        See Also:
        getUnits()
      • getNeedlePaint

        public java.awt.Paint getNeedlePaint()
        Returns the paint for the needle.
        Returns:
        The paint (never null).
        See Also:
        setNeedlePaint(Paint)
      • setNeedlePaint

        public void setNeedlePaint​(java.awt.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:
        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 a PlotChangeEvent to all registered listeners.
        Parameters:
        visible - the flag.
        See Also:
        getTickLabelsVisible()
      • getTickLabelFont

        public java.awt.Font getTickLabelFont()
        Returns the tick label font.
        Returns:
        The font (never null).
        See Also:
        setTickLabelFont(Font)
      • setTickLabelFont

        public void setTickLabelFont​(java.awt.Font font)
        Sets the tick label font and sends a PlotChangeEvent to all registered listeners.
        Parameters:
        font - the font (null not permitted).
        See Also:
        getTickLabelFont()
      • getTickLabelPaint

        public java.awt.Paint getTickLabelPaint()
        Returns the tick label paint.
        Returns:
        The paint (never null).
        See Also:
        setTickLabelPaint(Paint)
      • setTickLabelPaint

        public void setTickLabelPaint​(java.awt.Paint paint)
        Sets the tick label paint and sends a PlotChangeEvent to all registered listeners.
        Parameters:
        paint - the paint (null not permitted).
        See Also:
        getTickLabelPaint()
      • isValueVisible

        public boolean isValueVisible()
        Returns the flag that controls whether or not the value is visible. The default value is true.
        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 java.text.NumberFormat getTickLabelFormat()
        Returns the tick label format.
        Returns:
        The tick label format (never null).
        See Also:
        setTickLabelFormat(NumberFormat)
      • setTickLabelFormat

        public void setTickLabelFormat​(java.text.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:
        getTickLabelFormat()
      • getValueFont

        public java.awt.Font getValueFont()
        Returns the font for the value label.
        Returns:
        The font (never null).
        See Also:
        setValueFont(Font)
      • setValueFont

        public void setValueFont​(java.awt.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:
        getValueFont()
      • getValuePaint

        public java.awt.Paint getValuePaint()
        Returns the paint for the value label.
        Returns:
        The paint (never null).
        See Also:
        setValuePaint(Paint)
      • setValuePaint

        public void setValuePaint​(java.awt.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:
        getValuePaint()
      • getDialBackgroundPaint

        public java.awt.Paint getDialBackgroundPaint()
        Returns the paint for the dial background.
        Returns:
        The paint (possibly null).
        See Also:
        setDialBackgroundPaint(Paint)
      • setDialBackgroundPaint

        public void setDialBackgroundPaint​(java.awt.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:
        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 a PlotChangeEvent to all registered listeners.
        Parameters:
        draw - the flag.
        See Also:
        getDrawBorder()
      • getDialOutlinePaint

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

        public void setDialOutlinePaint​(java.awt.Paint paint)
        Sets the dial outline paint and sends a PlotChangeEvent to all registered listeners.
        Parameters:
        paint - the paint.
        See Also:
        getDialOutlinePaint()
      • 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:
        getDataset()
      • draw

        public void draw​(java.awt.Graphics2D g2,
                         java.awt.geom.Rectangle2D area,
                         java.awt.geom.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​(java.awt.Graphics2D g2,
                                          java.awt.geom.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​(java.awt.Graphics2D g2,
                               java.awt.geom.Rectangle2D area,
                               double minValue,
                               double maxValue,
                               java.awt.Paint paint,
                               java.awt.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​(java.awt.Graphics2D g2,
                               java.awt.geom.Rectangle2D area,
                               double minValue,
                               double maxValue,
                               java.awt.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​(java.awt.Graphics2D g2,
                                 java.awt.geom.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​(java.awt.Graphics2D g2,
                                java.awt.geom.Rectangle2D meterArea,
                                double value)
        Draws a tick.
        Parameters:
        g2 - the graphics device.
        meterArea - the meter area.
        value - the value.
      • drawTick

        protected void drawTick​(java.awt.Graphics2D g2,
                                java.awt.geom.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​(java.awt.Graphics2D g2,
                                      java.awt.geom.Rectangle2D area)
        Draws the value label just below the center of the dial.
        Parameters:
        g2 - the graphics device.
        area - the plot area.
      • getPlotType

        public java.lang.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​(java.lang.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.
      • writeObject

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

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

        public java.lang.Object clone()
                               throws java.lang.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:
        java.lang.CloneNotSupportedException - if some component of the plot cannot be cloned.