Class Crosshair

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, PublicCloneable

    public class Crosshair
    extends java.lang.Object
    implements java.lang.Cloneable, PublicCloneable, java.io.Serializable
    A crosshair for display on a plot.
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      Crosshair()
      Creates a new crosshair with value 0.0.
      Crosshair​(double value)
      Creates a new crosshair with the specified value.
      Crosshair​(double value, java.awt.Paint paint, java.awt.Stroke stroke)
      Creates a new crosshair value with the specified value and line style.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addPropertyChangeListener​(java.beans.PropertyChangeListener l)
      Adds a property change listener.
      java.lang.Object clone()
      Returns an independent copy of this instance.
      boolean equals​(java.lang.Object obj)
      Tests this crosshair for equality with an arbitrary object.
      RectangleAnchor getLabelAnchor()
      Returns the label anchor point.
      java.awt.Paint getLabelBackgroundPaint()
      Returns the label background paint.
      java.awt.Font getLabelFont()
      Returns the label font.
      CrosshairLabelGenerator getLabelGenerator()
      Returns the crosshair label generator.
      java.awt.Paint getLabelOutlinePaint()
      Returns the label outline paint.
      java.awt.Stroke getLabelOutlineStroke()
      Returns the label outline stroke.
      java.awt.Paint getLabelPaint()
      Returns the label paint.
      double getLabelXOffset()
      Returns the x-offset for the label (in Java2D units).
      double getLabelYOffset()
      Returns the y-offset for the label (in Java2D units).
      java.awt.Paint getPaint()
      Returns the paint for the crosshair line.
      java.awt.Stroke getStroke()
      Returns the stroke for the crosshair line.
      double getValue()
      Returns the crosshair value.
      int hashCode()
      Returns a hash code for this instance.
      boolean isLabelOutlineVisible()
      Returns the flag that controls the visibility of the label outline.
      boolean isLabelVisible()
      Returns the flag that controls whether or not a label is drawn for this crosshair.
      boolean isVisible()
      Returns the flag that indicates whether or not the crosshair is currently visible.
      private void readObject​(java.io.ObjectInputStream stream)
      Provides serialization support.
      void removePropertyChangeListener​(java.beans.PropertyChangeListener l)
      Removes a property change listener.
      void setLabelAnchor​(RectangleAnchor anchor)
      Sets the label anchor point and sends a property change event (with the name 'labelAnchor') to all registered listeners.
      void setLabelBackgroundPaint​(java.awt.Paint paint)
      Sets the label background paint and sends a property change event with the name 'labelBackgroundPaint') to all registered listeners.
      void setLabelFont​(java.awt.Font font)
      Sets the label font and sends a property change event (with the name 'labelFont') to all registered listeners.
      void setLabelGenerator​(CrosshairLabelGenerator generator)
      Sets the crosshair label generator and sends a property change event (with the name 'labelGenerator') to all registered listeners.
      void setLabelOutlinePaint​(java.awt.Paint paint)
      Sets the label outline paint and sends a property change event (with the name "labelOutlinePaint") to all registered listeners.
      void setLabelOutlineStroke​(java.awt.Stroke stroke)
      Sets the label outline stroke and sends a property change event (with the name 'labelOutlineStroke') to all registered listeners.
      void setLabelOutlineVisible​(boolean visible)
      Sets the flag that controls the visibility of the label outlines and sends a property change event (with the name "labelOutlineVisible") to all registered listeners.
      void setLabelPaint​(java.awt.Paint paint)
      Sets the label paint and sends a property change event (with the name 'labelPaint') to all registered listeners.
      void setLabelVisible​(boolean visible)
      Sets the flag that controls whether or not a label is drawn for the crosshair and sends a property change event (with the name 'labelVisible') to all registered listeners.
      void setLabelXOffset​(double offset)
      Sets the x-offset and sends a property change event (with the name 'labelXOffset') to all registered listeners.
      void setLabelYOffset​(double offset)
      Sets the y-offset and sends a property change event (with the name 'labelYOffset') to all registered listeners.
      void setPaint​(java.awt.Paint paint)
      Sets the paint for the crosshair line and sends a property change event with the name "paint" to all registered listeners.
      void setStroke​(java.awt.Stroke stroke)
      Sets the stroke for the crosshair line and sends a property change event with the name "stroke" to all registered listeners.
      void setValue​(double value)
      Sets the crosshair value and sends a property change event with the name 'value' to all registered listeners.
      void setVisible​(boolean visible)
      Sets the flag that controls the visibility of the crosshair and sends a proerty change event (with the name 'visible') to all registered listeners.
      private void writeObject​(java.io.ObjectOutputStream stream)
      Provides serialization support.
      • Methods inherited from class java.lang.Object

        finalize, getClass, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • visible

        private boolean visible
        Flag controlling visibility.
      • value

        private double value
        The crosshair value.
      • paint

        private transient java.awt.Paint paint
        The paint for the crosshair line.
      • stroke

        private transient java.awt.Stroke stroke
        The stroke for the crosshair line.
      • labelVisible

        private boolean labelVisible
        A flag that controls whether or not the crosshair has a label visible.
      • labelXOffset

        private double labelXOffset
        The x-offset in Java2D units.
      • labelYOffset

        private double labelYOffset
        The y-offset in Java2D units.
      • labelFont

        private java.awt.Font labelFont
        The label font.
      • labelPaint

        private transient java.awt.Paint labelPaint
        The label paint.
      • labelBackgroundPaint

        private transient java.awt.Paint labelBackgroundPaint
        The label background paint.
      • labelOutlineVisible

        private boolean labelOutlineVisible
        A flag that controls the visibility of the label outline.
      • labelOutlineStroke

        private transient java.awt.Stroke labelOutlineStroke
        The label outline stroke.
      • labelOutlinePaint

        private transient java.awt.Paint labelOutlinePaint
        The label outline paint.
      • pcs

        private transient java.beans.PropertyChangeSupport pcs
        Property change support.
    • Constructor Detail

      • Crosshair

        public Crosshair()
        Creates a new crosshair with value 0.0.
      • Crosshair

        public Crosshair​(double value)
        Creates a new crosshair with the specified value.
        Parameters:
        value - the value.
      • Crosshair

        public Crosshair​(double value,
                         java.awt.Paint paint,
                         java.awt.Stroke stroke)
        Creates a new crosshair value with the specified value and line style.
        Parameters:
        value - the value.
        paint - the line paint (null not permitted).
        stroke - the line stroke (null not permitted).
    • Method Detail

      • isVisible

        public boolean isVisible()
        Returns the flag that indicates whether or not the crosshair is currently visible.
        Returns:
        A boolean.
        See Also:
        setVisible(boolean)
      • setVisible

        public void setVisible​(boolean visible)
        Sets the flag that controls the visibility of the crosshair and sends a proerty change event (with the name 'visible') to all registered listeners.
        Parameters:
        visible - the new flag value.
        See Also:
        isVisible()
      • getValue

        public double getValue()
        Returns the crosshair value.
        Returns:
        The crosshair value.
        See Also:
        setValue(double)
      • setValue

        public void setValue​(double value)
        Sets the crosshair value and sends a property change event with the name 'value' to all registered listeners.
        Parameters:
        value - the value.
        See Also:
        getValue()
      • getPaint

        public java.awt.Paint getPaint()
        Returns the paint for the crosshair line.
        Returns:
        The paint (never null).
        See Also:
        setPaint(java.awt.Paint)
      • setPaint

        public void setPaint​(java.awt.Paint paint)
        Sets the paint for the crosshair line and sends a property change event with the name "paint" to all registered listeners.
        Parameters:
        paint - the paint (null not permitted).
        See Also:
        getPaint()
      • getStroke

        public java.awt.Stroke getStroke()
        Returns the stroke for the crosshair line.
        Returns:
        The stroke (never null).
        See Also:
        setStroke(java.awt.Stroke)
      • setStroke

        public void setStroke​(java.awt.Stroke stroke)
        Sets the stroke for the crosshair line and sends a property change event with the name "stroke" to all registered listeners.
        Parameters:
        stroke - the stroke (null not permitted).
        See Also:
        getStroke()
      • isLabelVisible

        public boolean isLabelVisible()
        Returns the flag that controls whether or not a label is drawn for this crosshair.
        Returns:
        A boolean.
        See Also:
        setLabelVisible(boolean)
      • setLabelVisible

        public void setLabelVisible​(boolean visible)
        Sets the flag that controls whether or not a label is drawn for the crosshair and sends a property change event (with the name 'labelVisible') to all registered listeners.
        Parameters:
        visible - the new flag value.
        See Also:
        isLabelVisible()
      • setLabelGenerator

        public void setLabelGenerator​(CrosshairLabelGenerator generator)
        Sets the crosshair label generator and sends a property change event (with the name 'labelGenerator') to all registered listeners.
        Parameters:
        generator - the new generator (null not permitted).
        See Also:
        getLabelGenerator()
      • setLabelAnchor

        public void setLabelAnchor​(RectangleAnchor anchor)
        Sets the label anchor point and sends a property change event (with the name 'labelAnchor') to all registered listeners.
        Parameters:
        anchor - the anchor (null not permitted).
        See Also:
        getLabelAnchor()
      • getLabelXOffset

        public double getLabelXOffset()
        Returns the x-offset for the label (in Java2D units).
        Returns:
        The x-offset.
        See Also:
        setLabelXOffset(double)
      • setLabelXOffset

        public void setLabelXOffset​(double offset)
        Sets the x-offset and sends a property change event (with the name 'labelXOffset') to all registered listeners.
        Parameters:
        offset - the new offset.
        See Also:
        getLabelXOffset()
      • getLabelYOffset

        public double getLabelYOffset()
        Returns the y-offset for the label (in Java2D units).
        Returns:
        The y-offset.
        See Also:
        setLabelYOffset(double)
      • setLabelYOffset

        public void setLabelYOffset​(double offset)
        Sets the y-offset and sends a property change event (with the name 'labelYOffset') to all registered listeners.
        Parameters:
        offset - the new offset.
        See Also:
        getLabelYOffset()
      • getLabelFont

        public java.awt.Font getLabelFont()
        Returns the label font.
        Returns:
        The label font (never null).
        See Also:
        setLabelFont(java.awt.Font)
      • setLabelFont

        public void setLabelFont​(java.awt.Font font)
        Sets the label font and sends a property change event (with the name 'labelFont') to all registered listeners.
        Parameters:
        font - the font (null not permitted).
        See Also:
        getLabelFont()
      • getLabelPaint

        public java.awt.Paint getLabelPaint()
        Returns the label paint. The default value is Color.BLACK.
        Returns:
        The label paint (never null).
        See Also:
        setLabelPaint(java.awt.Paint)
      • setLabelPaint

        public void setLabelPaint​(java.awt.Paint paint)
        Sets the label paint and sends a property change event (with the name 'labelPaint') to all registered listeners.
        Parameters:
        paint - the paint (null not permitted).
        See Also:
        getLabelPaint()
      • getLabelBackgroundPaint

        public java.awt.Paint getLabelBackgroundPaint()
        Returns the label background paint.
        Returns:
        The label background paint (possibly null).
        See Also:
        setLabelBackgroundPaint(java.awt.Paint)
      • setLabelBackgroundPaint

        public void setLabelBackgroundPaint​(java.awt.Paint paint)
        Sets the label background paint and sends a property change event with the name 'labelBackgroundPaint') to all registered listeners.
        Parameters:
        paint - the paint (null permitted).
        See Also:
        getLabelBackgroundPaint()
      • isLabelOutlineVisible

        public boolean isLabelOutlineVisible()
        Returns the flag that controls the visibility of the label outline. The default value is true.
        Returns:
        A boolean.
        See Also:
        setLabelOutlineVisible(boolean)
      • setLabelOutlineVisible

        public void setLabelOutlineVisible​(boolean visible)
        Sets the flag that controls the visibility of the label outlines and sends a property change event (with the name "labelOutlineVisible") to all registered listeners.
        Parameters:
        visible - the new flag value.
        See Also:
        isLabelOutlineVisible()
      • getLabelOutlinePaint

        public java.awt.Paint getLabelOutlinePaint()
        Returns the label outline paint.
        Returns:
        The label outline paint (never null).
        See Also:
        setLabelOutlinePaint(java.awt.Paint)
      • setLabelOutlinePaint

        public void setLabelOutlinePaint​(java.awt.Paint paint)
        Sets the label outline paint and sends a property change event (with the name "labelOutlinePaint") to all registered listeners.
        Parameters:
        paint - the paint (null not permitted).
        See Also:
        getLabelOutlinePaint()
      • getLabelOutlineStroke

        public java.awt.Stroke getLabelOutlineStroke()
        Returns the label outline stroke. The default value is BasicStroke(0.5).
        Returns:
        The label outline stroke (never null).
        See Also:
        setLabelOutlineStroke(java.awt.Stroke)
      • setLabelOutlineStroke

        public void setLabelOutlineStroke​(java.awt.Stroke stroke)
        Sets the label outline stroke and sends a property change event (with the name 'labelOutlineStroke') to all registered listeners.
        Parameters:
        stroke - the stroke (null not permitted).
        See Also:
        getLabelOutlineStroke()
      • equals

        public boolean equals​(java.lang.Object obj)
        Tests this crosshair for equality with an arbitrary object.
        Overrides:
        equals in class java.lang.Object
        Parameters:
        obj - the object (null permitted).
        Returns:
        A boolean.
      • hashCode

        public int hashCode()
        Returns a hash code for this instance.
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        A hash code.
      • clone

        public java.lang.Object clone()
                               throws java.lang.CloneNotSupportedException
        Returns an independent copy of this instance.
        Specified by:
        clone in interface PublicCloneable
        Overrides:
        clone in class java.lang.Object
        Returns:
        An independent copy of this instance.
        Throws:
        java.lang.CloneNotSupportedException - if there is a problem with cloning.
      • 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.