Class CrosshairOverlay

java.lang.Object
org.jfree.chart.panel.AbstractOverlay
org.jfree.chart.panel.CrosshairOverlay
All Implemented Interfaces:
PropertyChangeListener, Serializable, Cloneable, EventListener, Overlay, org.jfree.util.PublicCloneable

public class CrosshairOverlay extends AbstractOverlay implements Overlay, PropertyChangeListener, org.jfree.util.PublicCloneable, Cloneable, Serializable
An overlay for a ChartPanel that draws crosshairs on a plot.
Since:
1.0.13
See Also:
  • Field Details

    • xCrosshairs

      private List xCrosshairs
      Storage for the crosshairs along the x-axis.
    • yCrosshairs

      private List yCrosshairs
      Storage for the crosshairs along the y-axis.
  • Constructor Details

    • CrosshairOverlay

      public CrosshairOverlay()
      Default constructor.
  • Method Details

    • addDomainCrosshair

      public void addDomainCrosshair(Crosshair crosshair)
      Adds a crosshair against the domain axis and sends an OverlayChangeEvent to all registered listeners.
      Parameters:
      crosshair - the crosshair (null not permitted).
      See Also:
    • removeDomainCrosshair

      public void removeDomainCrosshair(Crosshair crosshair)
      Removes a domain axis crosshair and sends an OverlayChangeEvent to all registered listeners.
      Parameters:
      crosshair - the crosshair (null not permitted).
      See Also:
    • clearDomainCrosshairs

      public void clearDomainCrosshairs()
      Clears all the domain crosshairs from the overlay and sends an OverlayChangeEvent to all registered listeners.
    • getDomainCrosshairs

      public List getDomainCrosshairs()
      Returns a new list containing the domain crosshairs for this overlay.
      Returns:
      A list of crosshairs.
    • addRangeCrosshair

      public void addRangeCrosshair(Crosshair crosshair)
      Adds a crosshair against the range axis and sends an OverlayChangeEvent to all registered listeners.
      Parameters:
      crosshair - the crosshair (null not permitted).
    • removeRangeCrosshair

      public void removeRangeCrosshair(Crosshair crosshair)
      Removes a range axis crosshair and sends an OverlayChangeEvent to all registered listeners.
      Parameters:
      crosshair - the crosshair (null not permitted).
      See Also:
    • clearRangeCrosshairs

      public void clearRangeCrosshairs()
      Clears all the range crosshairs from the overlay and sends an OverlayChangeEvent to all registered listeners.
    • getRangeCrosshairs

      public List getRangeCrosshairs()
      Returns a new list containing the range crosshairs for this overlay.
      Returns:
      A list of crosshairs.
    • propertyChange

      public void propertyChange(PropertyChangeEvent e)
      Receives a property change event (typically a change in one of the crosshairs).
      Specified by:
      propertyChange in interface PropertyChangeListener
      Parameters:
      e - the event.
    • paintOverlay

      public void paintOverlay(Graphics2D g2, ChartPanel chartPanel)
      Paints the crosshairs in the layer.
      Specified by:
      paintOverlay in interface Overlay
      Parameters:
      g2 - the graphics target.
      chartPanel - the chart panel.
    • drawHorizontalCrosshair

      protected void drawHorizontalCrosshair(Graphics2D g2, Rectangle2D dataArea, double y, Crosshair crosshair)
      Draws a crosshair horizontally across the plot.
      Parameters:
      g2 - the graphics target.
      dataArea - the data area.
      y - the y-value in Java2D space.
      crosshair - the crosshair.
    • drawVerticalCrosshair

      protected void drawVerticalCrosshair(Graphics2D g2, Rectangle2D dataArea, double x, Crosshair crosshair)
      Draws a crosshair vertically on the plot.
      Parameters:
      g2 - the graphics target.
      dataArea - the data area.
      x - the x-value in Java2D space.
      crosshair - the crosshair.
    • calculateLabelPoint

      private Point2D calculateLabelPoint(Line2D line, org.jfree.ui.RectangleAnchor anchor, double deltaX, double deltaY)
      Calculates the anchor point for a label.
      Parameters:
      line - the line for the crosshair.
      anchor - the anchor point.
      deltaX - the x-offset.
      deltaY - the y-offset.
      Returns:
      The anchor point.
    • textAlignPtForLabelAnchorV

      private org.jfree.ui.TextAnchor textAlignPtForLabelAnchorV(org.jfree.ui.RectangleAnchor anchor)
      Returns the text anchor that is used to align a label to its anchor point.
      Parameters:
      anchor - the anchor.
      Returns:
      The text alignment point.
    • textAlignPtForLabelAnchorH

      private org.jfree.ui.TextAnchor textAlignPtForLabelAnchorH(org.jfree.ui.RectangleAnchor anchor)
      Returns the text anchor that is used to align a label to its anchor point.
      Parameters:
      anchor - the anchor.
      Returns:
      The text alignment point.
    • flipAnchorH

      private org.jfree.ui.RectangleAnchor flipAnchorH(org.jfree.ui.RectangleAnchor anchor)
    • flipAnchorV

      private org.jfree.ui.RectangleAnchor flipAnchorV(org.jfree.ui.RectangleAnchor anchor)
    • equals

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

      public Object clone() throws CloneNotSupportedException
      Returns a clone of this instance.
      Specified by:
      clone in interface org.jfree.util.PublicCloneable
      Overrides:
      clone in class Object
      Returns:
      A clone of this instance.
      Throws:
      CloneNotSupportedException - if there is some problem with the cloning.