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 Modifier and Type Class Description static classHyperlinkManager.DETECTION_STRATEGYDetection strategy.
-
Field Summary
Fields Modifier and Type Field Description static HyperlinkManager.DETECTION_STRATEGYALLAll detected hyperlinks from all detectors are collected and passed to the hyperlink presenter.static HyperlinkManager.DETECTION_STRATEGYFIRSTThe first detected hyperlink is passed to the hyperlink presenter and no further detector is consulted.static HyperlinkManager.DETECTION_STRATEGYLONGEST_REGION_ALLAll detected hyperlinks from all detectors are collected and all those with the longest region are passed to the hyperlink presenter.static HyperlinkManager.DETECTION_STRATEGYLONGEST_REGION_FIRSTAll 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 intOPEN_HYPERLINKText operation code for requesting to open the hyperlink at the caret position.
-
Constructor Summary
Constructors Constructor Description HyperlinkManager(HyperlinkManager.DETECTION_STRATEGY detectionStrategy)Creates a new hyperlink manager.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected intcomputeLongestHyperlinkLength(List<? extends IHyperlink> hyperlinks)Computes the length of the longest detected hyperlink.protected voiddeactivate()Deactivates the currently shown hyperlinks.protected IHyperlink[]findHyperlinks()Finds hyperlinks at the current offset.voidfocusGained(FocusEvent e)Sent when a control gets focus.voidfocusLost(FocusEvent event)Sent when a control loses focus.protected intgetCurrentTextOffset()Returns the offset in the given viewer that corresponds to the current cursor location.voidhandleEvent(Event event)Sent when an event that the receiver has registered for occurs.voidinstall(ITextViewer textViewer, IHyperlinkPresenter hyperlinkPresenter, IHyperlinkDetector[] hyperlinkDetectors, int eventStateMask)Installs this hyperlink manager with the given arguments.voidkeyPressed(KeyEvent event)Sent when a key is pressed on the system keyboard.voidkeyReleased(KeyEvent event)Sent when a key is released on the system keyboard.voidmouseDoubleClick(MouseEvent e)Sent when a mouse button is pressed twice within the (operating system specified) double click period.voidmouseDown(MouseEvent event)Sent when a mouse button is pressed.voidmouseEnter(MouseEvent e)Sent when the mouse pointer passes into the area of the screen covered by a control.voidmouseExit(MouseEvent e)Sent when the mouse pointer passes out of the area of the screen covered by a control.voidmouseHover(MouseEvent e)Sent when the mouse pointer hovers (that is, stops moving for an (operating system specified) period of time) over a control.voidmouseMove(MouseEvent event)Sent when the mouse moves.voidmouseUp(MouseEvent e)Sent when a mouse button is released.booleanopenHyperlink()Opens the hyperlink at the caret location or opens a chooser if more than one hyperlink is available.voidsetHyperlinkDetectors(IHyperlinkDetector[] hyperlinkDetectors)Sets the hyperlink detectors for this hyperlink manager.voidsetHyperlinkStateMask(int eventStateMask)Sets the SWT event state mask which in combination with the left mouse button triggers the hyperlink mode.voidtextChanged(TextEvent event)The visual representation of a text viewer this listener is registered with has been changed.voiduninstall()Uninstalls this hyperlink manager.
-
-
-
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()returnstrue.
-
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()returnstrue.
-
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 viewerhyperlinkPresenter- the hyperlink presenterhyperlinkDetectors- the array of hyperlink detectors, must not be emptyeventStateMask- 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
IHyperlinkDetectorExtension2s 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
nullif 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:KeyListenerSent when a key is pressed on the system keyboard.- Specified by:
keyPressedin interfaceKeyListener- Parameters:
event- an event containing information about the key press
-
keyReleased
public void keyReleased(KeyEvent event)
Description copied from interface:KeyListenerSent when a key is released on the system keyboard.- Specified by:
keyReleasedin interfaceKeyListener- Parameters:
event- an event containing information about the key release
-
mouseDoubleClick
public void mouseDoubleClick(MouseEvent e)
Description copied from interface:MouseListenerSent when a mouse button is pressed twice within the (operating system specified) double click period.- Specified by:
mouseDoubleClickin interfaceMouseListener- 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:MouseListenerSent when a mouse button is pressed.- Specified by:
mouseDownin interfaceMouseListener- Parameters:
event- an event containing information about the mouse button press
-
mouseUp
public void mouseUp(MouseEvent e)
Description copied from interface:MouseListenerSent when a mouse button is released.- Specified by:
mouseUpin interfaceMouseListener- Parameters:
e- an event containing information about the mouse button release
-
mouseMove
public void mouseMove(MouseEvent event)
Description copied from interface:MouseMoveListenerSent when the mouse moves.- Specified by:
mouseMovein interfaceMouseMoveListener- Parameters:
event- an event containing information about the mouse move
-
focusGained
public void focusGained(FocusEvent e)
Description copied from interface:FocusListenerSent when a control gets focus.- Specified by:
focusGainedin interfaceFocusListener- Parameters:
e- an event containing information about the focus change
-
focusLost
public void focusLost(FocusEvent event)
Description copied from interface:FocusListenerSent when a control loses focus.- Specified by:
focusLostin interfaceFocusListener- Parameters:
event- an event containing information about the focus change
-
handleEvent
public void handleEvent(Event event)
Description copied from interface:ListenerSent when an event that the receiver has registered for occurs.- Specified by:
handleEventin interfaceListener- Parameters:
event- the event which occurred
-
textChanged
public void textChanged(TextEvent event)
Description copied from interface:ITextListenerThe visual representation of a text viewer this listener is registered with has been changed.- Specified by:
textChangedin interfaceITextListener- 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:
mouseExitin interfaceMouseTrackListener- 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:
mouseEnterin interfaceMouseTrackListener- 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:
mouseHoverin interfaceMouseTrackListener- 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:
trueif at least one hyperlink has been found at the caret location,falseotherwise- Since:
- 3.6
- See Also:
OPEN_HYPERLINK
-
-