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 added LinkedModeUITargets to provide implementations of ITextViewer that implement ITextViewerExtension, and the documents being edited to implement IDocumentExtension3.

Clients may instantiate and extend this class.

Since:
3.0
  • Field Details

    • 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 Details

    • 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 model
      targets - 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 model
      viewer - 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 model
      viewers - 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 model
      target - the target upon which the linked mode UI should act
  • Method Details

    • enter

      public void enter()
      Starts this UI on the first position.
    • setExitPolicy

      public void setExitPolicy(LinkedModeUI.IExitPolicy policy)
      Sets an IExitPolicy 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 located
      offset - the offset of the exit position
      length - the length of the exit position (in case there should be a selection)
      sequence - set to the tab stop position of the exit position, or LinkedPositionGroup.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 located
      offset - the offset of the exit position
      length - the length of the exit position (in case there should be a selection)
      sequence - set to the tab stop position of the exit position, or LinkedPositionGroup.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 of CYCLING_ALWAYS, CYCLING_NEVER, or CYCLING_WHEN_NO_PARENT, which is the default.
      Parameters:
      mode - the new cycling mode.
    • getSelectedRegion

      public IRegion getSelectedRegion()
      Returns the currently selected region or null.
      Returns:
      the currently selected region or null
    • setDoContextInfo

      public void setDoContextInfo(boolean doContextInfo)
      Sets the context info property. If set to true, 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, never null.
    • 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 is false. 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 - if true the support for colored labels is enabled in the proposal popup
      Since:
      3.4