Package org.eclipse.jface.text.link
Class LinkedModeUI
- java.lang.Object
-
- org.eclipse.jface.text.link.LinkedModeUI
-
- Direct Known Subclasses:
EditorLinkedModeUI
public class LinkedModeUI extends Object
The UI for linked mode. Detects events that influence behavior of the linked mode UI and acts upon them.LinkedModeUI
relies on all addedLinkedModeUITarget
s to provide implementations ofITextViewer
that implementITextViewerExtension
, and the documents being edited to implementIDocumentExtension3
.Clients may instantiate and extend this class.
- Since:
- 3.0
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
LinkedModeUI.ExitFlags
Exit flags returned if a custom exit policy wants to exit linked mode.static interface
LinkedModeUI.IExitPolicy
An exit policy can be registered by a caller to get custom exit behavior.static interface
LinkedModeUI.ILinkedModeUIFocusListener
Listener that gets notified when the linked mode UI switches its focus position.static class
LinkedModeUI.LinkedModeUITarget
A link target consists of a viewer and gets notified if the linked mode UI on it is being shown.
-
Field Summary
Fields Modifier and Type Field Description static Object
CYCLE_ALWAYS
Constant indicating that this UI should always cycle from the last position to the first and vice versa.static Object
CYCLE_NEVER
Constant indicating that this UI should never cycle from the last position to the first and vice versa.static Object
CYCLE_WHEN_NO_PARENT
Constant indicating that this UI should cycle from the last position to the first and vice versa if its model is not nested.
-
Constructor Summary
Constructors Constructor Description LinkedModeUI(LinkedModeModel model, ITextViewer viewer)
Convenience constructor for just one viewer.LinkedModeUI(LinkedModeModel model, ITextViewer[] viewers)
Convenience constructor for multiple viewers.LinkedModeUI(LinkedModeModel model, LinkedModeUI.LinkedModeUITarget target)
Convenience constructor for one target.LinkedModeUI(LinkedModeModel model, LinkedModeUI.LinkedModeUITarget[] targets)
Creates a new UI on the given model and the set of viewers.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
enableColoredLabels(boolean isEnabled)
Enables the support for colored labels in the proposal popup.void
enter()
Starts this UI on the first position.IRegion
getSelectedRegion()
Returns the currently selected region ornull
.void
setCyclingMode(Object mode)
Sets the cycling mode to either ofCYCLING_ALWAYS
,CYCLING_NEVER
, orCYCLING_WHEN_NO_PARENT
, which is the default.void
setDoContextInfo(boolean doContextInfo)
Sets the context info property.void
setExitPolicy(LinkedModeUI.IExitPolicy policy)
Sets anIExitPolicy
to customize the exit behavior of this linked mode UI.void
setExitPosition(ITextViewer viewer, int offset, int length, int sequence)
Sets the exit position to move the caret to when linked mode is exited.void
setExitPosition(LinkedModeUI.LinkedModeUITarget target, int offset, int length, int sequence)
Sets the exit position to move the caret to when linked mode mode is exited.protected void
setPositionListener(LinkedModeUI.ILinkedModeUIFocusListener listener)
Sets the focus callback which will get informed when the focus of the linked mode UI changes.void
setSimpleMode(boolean simple)
Sets the "simple" mode of the receiver.
-
-
-
Field Detail
-
CYCLE_NEVER
public static final Object CYCLE_NEVER
Constant indicating that this UI should never cycle from the last position to the first and vice versa.
-
CYCLE_ALWAYS
public static final Object CYCLE_ALWAYS
Constant indicating that this UI should always cycle from the last position to the first and vice versa.
-
CYCLE_WHEN_NO_PARENT
public static final Object CYCLE_WHEN_NO_PARENT
Constant indicating that this UI should cycle from the last position to the first and vice versa if its model is not nested.
-
-
Constructor Detail
-
LinkedModeUI
public LinkedModeUI(LinkedModeModel model, LinkedModeUI.LinkedModeUITarget[] targets)
Creates a new UI on the given model and the set of viewers. The model must provide a tab stop sequence with a non-empty list of tab stops.- Parameters:
model
- the linked mode modeltargets
- the non-empty list of targets upon which the linked mode UI should act
-
LinkedModeUI
public LinkedModeUI(LinkedModeModel model, ITextViewer viewer)
Convenience constructor for just one viewer.- Parameters:
model
- the linked mode modelviewer
- the viewer upon which the linked mode UI should act
-
LinkedModeUI
public LinkedModeUI(LinkedModeModel model, ITextViewer[] viewers)
Convenience constructor for multiple viewers.- Parameters:
model
- the linked mode modelviewers
- the non-empty list of viewers upon which the linked mode UI should act
-
LinkedModeUI
public LinkedModeUI(LinkedModeModel model, LinkedModeUI.LinkedModeUITarget target)
Convenience constructor for one target.- Parameters:
model
- the linked mode modeltarget
- the target upon which the linked mode UI should act
-
-
Method Detail
-
enter
public void enter()
Starts this UI on the first position.
-
setExitPolicy
public void setExitPolicy(LinkedModeUI.IExitPolicy policy)
Sets anIExitPolicy
to customize the exit behavior of this linked mode UI.- Parameters:
policy
- the exit policy to use.
-
setExitPosition
public void setExitPosition(LinkedModeUI.LinkedModeUITarget target, int offset, int length, int sequence) throws BadLocationException
Sets the exit position to move the caret to when linked mode mode is exited.- Parameters:
target
- the target where the exit position is locatedoffset
- the offset of the exit positionlength
- the length of the exit position (in case there should be a selection)sequence
- set to the tab stop position of the exit position, orLinkedPositionGroup.NO_STOP
if there should be no tab stop.- Throws:
BadLocationException
- if the position is not valid in the viewer's document
-
setExitPosition
public void setExitPosition(ITextViewer viewer, int offset, int length, int sequence) throws BadLocationException
Sets the exit position to move the caret to when linked mode is exited.- Parameters:
viewer
- the viewer where the exit position is locatedoffset
- the offset of the exit positionlength
- the length of the exit position (in case there should be a selection)sequence
- set to the tab stop position of the exit position, orLinkedPositionGroup.NO_STOP
if there should be no tab stop.- Throws:
BadLocationException
- if the position is not valid in the viewer's document
-
setCyclingMode
public void setCyclingMode(Object mode)
Sets the cycling mode to either ofCYCLING_ALWAYS
,CYCLING_NEVER
, orCYCLING_WHEN_NO_PARENT
, which is the default.- Parameters:
mode
- the new cycling mode.
-
getSelectedRegion
public IRegion getSelectedRegion()
Returns the currently selected region ornull
.- Returns:
- the currently selected region or
null
-
setDoContextInfo
public void setDoContextInfo(boolean doContextInfo)
Sets the context info property. If set totrue
, context info will be invoked on the current target's viewer whenever a position is switched.- Parameters:
doContextInfo
-true
if context information should be displayed
-
setPositionListener
protected void setPositionListener(LinkedModeUI.ILinkedModeUIFocusListener listener)
Sets the focus callback which will get informed when the focus of the linked mode UI changes.If there is a listener installed already, it will be replaced.
- Parameters:
listener
- the new listener, nevernull
.
-
setSimpleMode
public void setSimpleMode(boolean simple)
Sets the "simple" mode of the receiver. A linked mode UI in simple mode merely draws the exit position, but not the target, focus, and slave positions. Default isfalse
. This method must be called before it is entered.- Parameters:
simple
-true
if the UI should be in simple mode.
-
enableColoredLabels
public void enableColoredLabels(boolean isEnabled)
Enables the support for colored labels in the proposal popup.Completion proposals can implement
ICompletionProposalExtension6
to provide colored proposal labels.- Parameters:
isEnabled
- iftrue
the support for colored labels is enabled in the proposal popup- Since:
- 3.4
-
-