Package org.eclipse.jface.text.hyperlink

## Class HyperlinkManager

- java.lang.Object
- - org.eclipse.jface.text.hyperlink.HyperlinkManager

All Implemented Interfaces:
  `EventListener`, `ITextListener`, `FocusListener`, `KeyListener`, `MouseListener`, `MouseMoveListener`, `MouseTrackListener`, `SWTEventListener`, `Listener`

    public class HyperlinkManager
    extends Object
    implements ITextListener, Listener, KeyListener, MouseListener, MouseMoveListener, FocusListener, MouseTrackListener

Default implementation of a hyperlink manager.

Since:
  3.1

### Nested Class Summary

Nested Classes
`static class` `HyperlinkManager.DETECTION_STRATEGY` Detection strategy.

### Field Summary

Fields
`static HyperlinkManager.DETECTION_STRATEGY` `ALL` All detected hyperlinks from all detectors are collected and passed to the hyperlink presenter.
`static HyperlinkManager.DETECTION_STRATEGY` `FIRST` The first detected hyperlink is passed to the hyperlink presenter and no further detector is consulted.
`static HyperlinkManager.DETECTION_STRATEGY` `LONGEST_REGION_ALL` All detected hyperlinks from all detectors are collected and all those with the longest region are passed to the hyperlink presenter.
`static HyperlinkManager.DETECTION_STRATEGY` `LONGEST_REGION_FIRST` All detected hyperlinks from all detectors are collected and form all those with the longest region only the first one is passed to the hyperlink presenter.
`static int` `OPEN_HYPERLINK` Text operation code for requesting to open the hyperlink at the caret position.

### Constructor Summary

Constructors
`HyperlinkManager​(HyperlinkManager.DETECTION_STRATEGY detectionStrategy)` Creates a new hyperlink manager.

### Method Summary

All Methods Instance Methods Concrete Methods
`protected int` `computeLongestHyperlinkLength​(List<? extends IHyperlink> hyperlinks)` Computes the length of the longest detected hyperlink.
`protected void` `deactivate()` Deactivates the currently shown hyperlinks.
`protected IHyperlink[]` `findHyperlinks()` Finds hyperlinks at the current offset.
`void` `focusGained​(FocusEvent e)` Sent when a control gets focus.
`void` `focusLost​(FocusEvent event)` Sent when a control loses focus.
`protected int` `getCurrentTextOffset()` Returns the offset in the given viewer that corresponds to the current cursor location.
`void` `handleEvent​(Event event)` Sent when an event that the receiver has registered for occurs.
`void` `install​(ITextViewer textViewer, IHyperlinkPresenter hyperlinkPresenter, IHyperlinkDetector[] hyperlinkDetectors, int eventStateMask)` Installs this hyperlink manager with the given arguments.
`void` `keyPressed​(KeyEvent event)` Sent when a key is pressed on the system keyboard.
`void` `keyReleased​(KeyEvent event)` Sent when a key is released on the system keyboard.
`void` `mouseDoubleClick​(MouseEvent e)` Sent when a mouse button is pressed twice within the (operating system specified) double click period.
`void` `mouseDown​(MouseEvent event)` Sent when a mouse button is pressed.
`void` `mouseEnter​(MouseEvent e)` Sent when the mouse pointer passes into the area of the screen covered by a control.
`void` `mouseExit​(MouseEvent e)` Sent when the mouse pointer passes out of the area of the screen covered by a control.
`void` `mouseHover​(MouseEvent e)` Sent when the mouse pointer hovers (that is, stops moving for an (operating system specified) period of time) over a control.
`void` `mouseMove​(MouseEvent event)` Sent when the mouse moves.
`void` `mouseUp​(MouseEvent e)` Sent when a mouse button is released.
`boolean` `openHyperlink()` Opens the hyperlink at the caret location or opens a chooser if more than one hyperlink is available.
`void` `setHyperlinkDetectors​(IHyperlinkDetector[] hyperlinkDetectors)` Sets the hyperlink detectors for this hyperlink manager.
`void` `setHyperlinkStateMask​(int eventStateMask)` Sets the SWT event state mask which in combination with the left mouse button triggers the hyperlink mode.
`void` `textChanged​(TextEvent event)` The visual representation of a text viewer this listener is registered with has been changed.
`void` `uninstall()` Uninstalls this hyperlink manager.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### OPEN_HYPERLINK

    public static final int OPEN_HYPERLINK

Text operation code for requesting to open the hyperlink at the caret position.

Since:
  3.6
See Also:
  `openHyperlink()`, Constant Field Values

#### FIRST

    public static final HyperlinkManager.DETECTION_STRATEGY FIRST

The first detected hyperlink is passed to the hyperlink presenter and no further detector is consulted.

#### ALL

    public static final HyperlinkManager.DETECTION_STRATEGY ALL

All detected hyperlinks from all detectors are collected and passed to the hyperlink presenter.

This strategy is only allowed if `IHyperlinkPresenter.canShowMultipleHyperlinks()` returns `true`.

#### LONGEST_REGION_ALL

    public static final HyperlinkManager.DETECTION_STRATEGY LONGEST_REGION_ALL

All detected hyperlinks from all detectors are collected and all those with the longest region are passed to the hyperlink presenter.

This strategy is only allowed if `IHyperlinkPresenter.canShowMultipleHyperlinks()` returns `true`.

#### LONGEST_REGION_FIRST

    public static final HyperlinkManager.DETECTION_STRATEGY LONGEST_REGION_FIRST

All detected hyperlinks from all detectors are collected and form all those with the longest region only the first one is passed to the hyperlink presenter.

### Constructor Detail

#### HyperlinkManager

    public HyperlinkManager​(HyperlinkManager.DETECTION_STRATEGY detectionStrategy)

Creates a new hyperlink manager.

Parameters:
  `detectionStrategy` - the detection strategy one of {`ALL`, `FIRST`, `LONGEST_REGION_ALL`, `LONGEST_REGION_FIRST`}

### Method Detail

#### install

    public void install​(ITextViewer textViewer,
                        IHyperlinkPresenter hyperlinkPresenter,
                        IHyperlinkDetector[] hyperlinkDetectors,
                        int eventStateMask)

Installs this hyperlink manager with the given arguments.

Parameters:
  `textViewer` - the text viewer
  `hyperlinkPresenter` - the hyperlink presenter
  `hyperlinkDetectors` - the array of hyperlink detectors, must not be empty
  `eventStateMask` - the SWT event state mask to activate hyperlink mode

#### setHyperlinkDetectors

    public void setHyperlinkDetectors​(IHyperlinkDetector[] hyperlinkDetectors)

Sets the hyperlink detectors for this hyperlink manager.

It is allowed to call this method after this hyperlink manger has been installed.

Parameters:
  `hyperlinkDetectors` - and array of hyperlink detectors, must not be empty

#### setHyperlinkStateMask

    public void setHyperlinkStateMask​(int eventStateMask)

Sets the SWT event state mask which in combination with the left mouse button triggers the hyperlink mode.

It is allowed to call this method after this hyperlink manger has been installed.

Note that `IHyperlinkDetectorExtension2`s may specify additional state masks.

Parameters:
  `eventStateMask` - the SWT event state mask to activate hyperlink mode

#### uninstall

    public void uninstall()

Uninstalls this hyperlink manager.

#### deactivate

    protected void deactivate()

Deactivates the currently shown hyperlinks.

#### findHyperlinks

    protected IHyperlink[] findHyperlinks()

Finds hyperlinks at the current offset.

Returns:
  the hyperlinks or `null` if none.

#### computeLongestHyperlinkLength

    protected int computeLongestHyperlinkLength​(List<? extends IHyperlink> hyperlinks)

Computes the length of the longest detected hyperlink.

Parameters:
  `hyperlinks` - the list of hyperlinks
Returns:
  the length of the longest detected

#### getCurrentTextOffset

    protected int getCurrentTextOffset()

Returns the offset in the given viewer that corresponds to the current cursor location.

Returns:
  the offset in the given viewer that corresponds to the current cursor location.

#### keyPressed

    public void keyPressed​(KeyEvent event)

Description copied from interface: `KeyListener`
Sent when a key is pressed on the system keyboard.

Specified by:
  `keyPressed` in interface `KeyListener`
Parameters:
  `event` - an event containing information about the key press

#### keyReleased

    public void keyReleased​(KeyEvent event)

Description copied from interface: `KeyListener`
Sent when a key is released on the system keyboard.

Specified by:
  `keyReleased` in interface `KeyListener`
Parameters:
  `event` - an event containing information about the key release

#### mouseDoubleClick

    public void mouseDoubleClick​(MouseEvent e)

Description copied from interface: `MouseListener`
Sent when a mouse button is pressed twice within the (operating system specified) double click period.

Specified by:
  `mouseDoubleClick` in interface `MouseListener`
Parameters:
  `e` - an event containing information about the mouse double click
See Also:
  `Display.getDoubleClickTime()`

#### mouseDown

    public void mouseDown​(MouseEvent event)

Description copied from interface: `MouseListener`
Sent when a mouse button is pressed.

Specified by:
  `mouseDown` in interface `MouseListener`
Parameters:
  `event` - an event containing information about the mouse button press

#### mouseUp

    public void mouseUp​(MouseEvent e)

Description copied from interface: `MouseListener`
Sent when a mouse button is released.

Specified by:
  `mouseUp` in interface `MouseListener`
Parameters:
  `e` - an event containing information about the mouse button release

#### mouseMove

    public void mouseMove​(MouseEvent event)

Description copied from interface: `MouseMoveListener`
Sent when the mouse moves.

Specified by:
  `mouseMove` in interface `MouseMoveListener`
Parameters:
  `event` - an event containing information about the mouse move

#### focusGained

    public void focusGained​(FocusEvent e)

Description copied from interface: `FocusListener`
Sent when a control gets focus.

Specified by:
  `focusGained` in interface `FocusListener`
Parameters:
  `e` - an event containing information about the focus change

#### focusLost

    public void focusLost​(FocusEvent event)

Description copied from interface: `FocusListener`
Sent when a control loses focus.

Specified by:
  `focusLost` in interface `FocusListener`
Parameters:
  `event` - an event containing information about the focus change

#### handleEvent

    public void handleEvent​(Event event)

Description copied from interface: `Listener`
Sent when an event that the receiver has registered for occurs.

Specified by:
  `handleEvent` in interface `Listener`
Parameters:
  `event` - the event which occurred

#### textChanged

    public void textChanged​(TextEvent event)

Description copied from interface: `ITextListener`
The visual representation of a text viewer this listener is registered with has been changed.

Specified by:
  `textChanged` in interface `ITextListener`
Parameters:
  `event` - the description of the change

#### mouseExit

    public void mouseExit​(MouseEvent e)

Sent when the mouse pointer passes out of the area of the screen covered by a control.

Specified by:
  `mouseExit` in interface `MouseTrackListener`
Parameters:
  `e` - an event containing information about the mouse exit
Since:
  3.4

#### mouseEnter

    public void mouseEnter​(MouseEvent e)

Sent when the mouse pointer passes into the area of the screen covered by a control.

Specified by:
  `mouseEnter` in interface `MouseTrackListener`
Parameters:
  `e` - an event containing information about the mouse enter
Since:
  3.4

#### mouseHover

    public void mouseHover​(MouseEvent e)

Sent when the mouse pointer hovers (that is, stops moving for an (operating system specified) period of time) over a control.

Specified by:
  `mouseHover` in interface `MouseTrackListener`
Parameters:
  `e` - an event containing information about the hover
Since:
  3.4

#### openHyperlink

    public boolean openHyperlink()

Opens the hyperlink at the caret location or opens a chooser if more than one hyperlink is available.

Returns:
  `true` if at least one hyperlink has been found at the caret location, `false` otherwise
Since:
  3.6
See Also:
  `OPEN_HYPERLINK`