## org.biojava.bio.gui.sequence
Class CrosshairRenderer

    java.lang.Object
      org.biojava.utils.AbstractChangeable
          org.biojava.bio.gui.sequence.CrosshairRenderer

All Implemented Interfaces:
  PairwiseSequenceRenderer, Changeable

    public class CrosshairRenderer

extends AbstractChangeable
implements PairwiseSequenceRenderer

`CrosshairRenderer` draws a crosshair, optionally with coordinates. The crosshair is set to a sequence position by a click and then stays there through scrolls/rescales until the next click. See the `processMouseEvent` documentation for details of responses to various mouse actions.

Since:
  1.2
Author:
  Keith James

Nested Class Summary

Nested classes/interfaces inherited from interface org.biojava.bio.gui.sequence.PairwiseSequenceRenderer
`PairwiseSequenceRenderer.PairwiseRendererForwarder`

Field Summary
`static ChangeType` `OUTLINE` Constant `OUTLINE` indicating a change to the crosshair paint.
`protected Point` `point` `point` is the current location (in sequence coordinates) of the crosshair in the X and Y sequences.
`protected Line2D` `xHair` `xHair` is the vertical line positioned along the X-axis.
`protected Line2D` `yHair` `yHair` is the horizontal line positioned along the Y-axis.

Constructor Summary
`CrosshairRenderer()` Creates a new `CrosshairRenderer` in light grey with coordinates displayed.
`CrosshairRenderer(Paint outline)` Creates a new `CrosshairRenderer` of the specified colour, with coordinates displayed.

Method Summary
`void` `coordinateDisplayOn(boolean display)` `coordinateDisplayOn` toggles the display of sequence coordinates.
`Paint` `getOutline()` `getOutline` returns the colour used to draw the lines.
`void` `paint(Graphics2D g2, PairwiseRenderContext context)` `paint`s some or all of the information about the sequence pair.
`SequenceViewerEvent` `processMouseEvent(PairwiseRenderContext context, MouseEvent me, List path)` `processMouseEvent` processes any `MouseEvent`s directed to the renderer.
`void` `setOutline(Paint outline)` `setOutline` sets the the colour used to draw the lines.

Methods inherited from class org.biojava.utils.AbstractChangeable
`addChangeListener, addChangeListener, generateChangeSupport, getChangeSupport, hasListeners, hasListeners, isUnchanging, removeChangeListener, removeChangeListener`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### OUTLINE

    public static final ChangeType OUTLINE

  Constant `OUTLINE` indicating a change to the crosshair paint.

### xHair

    protected Line2D xHair

  `xHair` is the vertical line positioned along the X-axis.

### yHair

    protected Line2D yHair

  `yHair` is the horizontal line positioned along the Y-axis.

### point

    protected Point point

  `point` is the current location (in sequence coordinates) of the crosshair in the X and Y sequences.

Constructor Detail

### CrosshairRenderer

    public CrosshairRenderer()

  Creates a new `CrosshairRenderer` in light grey with coordinates displayed.

### CrosshairRenderer

    public CrosshairRenderer(Paint outline)

  Creates a new `CrosshairRenderer` of the specified colour, with coordinates displayed.

  Parameters:
    `outline` - a `Paint`.

Method Detail

### paint

    public void paint(Graphics2D g2,
                      PairwiseRenderContext context)

  Description copied from interface: `PairwiseSequenceRenderer`
  `paint`s some or all of the information about the sequence pair.

  Specified by:
    `paint` in interface `PairwiseSequenceRenderer`
  Parameters:
    `g2` - a `Graphics2D`.
    `context` - a `PairwiseRenderContext` encapsulating the information to be displayed.

### coordinateDisplayOn

    public void coordinateDisplayOn(boolean display)

  `coordinateDisplayOn` toggles the display of sequence coordinates.

  Parameters:
    `display` - a `boolean`.

### getOutline

    public Paint getOutline()

  `getOutline` returns the colour used to draw the lines.

  Returns:
    a `Paint`.

### setOutline

    public void setOutline(Paint outline)
                    throws ChangeVetoException

  `setOutline` sets the the colour used to draw the lines.

  Parameters:
    `outline` - a `Paint`.
  Throws:
    `ChangeVetoException` - if an error occurs.

### processMouseEvent

    public SequenceViewerEvent processMouseEvent(PairwiseRenderContext context,
                                                 MouseEvent me,
                                                 List path)

  `processMouseEvent` processes any `MouseEvent`s directed to the renderer.

  Mouse actions are as follows (all are button-1 only):

  - Click sets the crosshair position and returns an event whose target object is the `Point` in sequence coordinates. The X coordinate is in the primary sequence, the Y coordinate is in the secondary sequence.
  - Press same as Click
  - Drag same as Click, except that the `Point` is not set
  - Release same as Click, except that the `Point` is not set
  - Move same as Click, except that the `Point` is not set and the target is null

  Specified by:
    `processMouseEvent` in interface `PairwiseSequenceRenderer`
  Parameters:
    `context` - a `PairwiseRenderContext`.
    `me` - a `MouseEvent`.
    `path` - a `List`.
  Returns:
    a `SequenceViewerEvent`.