Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Mail Systems
Eclipse Documentation

How To Guides
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Problem Solutions
Privacy Policy




Eclipse Plug-in Developer Guide
Previous Page Home Next Page

Eclipse Platform
Release 3.5


Application programming interfaces for interaction with the Eclipse text editor's linked position support.


Interface Summary
ILinkedModeListener Protocol used by LinkedModeModels to communicate state changes, such as leaving linked mode, suspending it due to a child mode coming up, and resuming after a child mode has left.
LinkedModeUI.IExitPolicy An exit policy can be registered by a caller to get custom exit behavior.
LinkedModeUI.ILinkedModeUIFocusListener Listener that gets notified when the linked mode UI switches its focus position.

Class Summary
InclusivePositionUpdater Position updater that considers any change in [p.offset, p.offset + p.length] of a Position p as belonging to the position.
LinkedModeModel The model for linked mode, umbrellas several LinkedPositionGroups.
LinkedModeUI The UI for linked mode.
LinkedModeUI.ExitFlags Exit flags returned if a custom exit policy wants to exit linked mode.
LinkedModeUI.LinkedModeUITarget A link target consists of a viewer and gets notified if the linked mode UI on it is being shown.
LinkedPosition A Position on a document that knows which document it is registered with and has a sequence number for tab stops.
LinkedPositionGroup A group of positions in multiple documents that are simultaneously modified - if one gets edited, all other positions in a group are edited the same way.
ProposalPosition LinkedPosition with added completion proposals.

Package Description

Application programming interfaces for interaction with the Eclipse text editor's linked position support.

Linked Position Infrastructure


The Linked Position Infrastructure lets one set up a mode in an editor in which regions in a document (or several documents) are linked, i.e. editions of one linked position will be reflected in the others.


  • LinkedPositionGroup: a set of linked positions. Add positions to a group using the addPosition method. See LinkedPosition and ProposalPosition for a position type that lets one attach ICompletionProposals to be shown when the position is hit.
  • LinkedModeModel: umbrellas several LinkedPositionGroups, e.g. in a template that has several groups of linked positions. Handles the forwarding of updates received via an IDocumentListener. Add LinkedPositionGroups to an model using the addGroup method. Existence of a LinkedModeModel can be tested by one of the static methods.
  • LinkedModeUI: The UI for linked mode (for one model, to be precise). Monitors key etc. activity, monitors exit conditions, creates a painter etc.
    • cycling mode (whether to jump to the first position after the last): either of CYCLE_ALWAYS, CYCLE_NEVER and CYCLE_WHEN_NO_PARENT (default).
    • exit position: where to jump upon leaving the linked mode (e.g. using Enter, or Tab from the last position when not cycling). Set isTabStop to true if tabbing should stop over when cycling.
    • position listener: extending classes may register a position listener which will get notified whenever the focus position changes. An example is which will store the edit location in the editor navigation history.


        IDocument doc1, doc2;
        ITextViewer viewer1, viewer2;

        /* create groups - this step is independent of the linked mode */
        LinkedPositionGroup group1= new LinkedPositionGroup();
        group1.addPosition(new LinkedPosition(doc1, 3, 4));
        group1.addPosition(new LinkedPosition(doc1, 7, 8));

        LinkedPositionGroup group2= new LinkedPositionGroup();
        group2.addPosition(new LinkedPosition(doc1, 15, 25));
        group2.addPosition(new LinkedPosition(doc2, 0, 10));

        /* set up linked mode */
        LinkedModeModel model= new LinkedModeModel();

        /* create UI */
        LinkedModeUI ui= new LinkedModeUI(model, new ITextViewer[] { viewer1, viewer2 });

Eclipse Platform
Release 3.5

Guidelines for using Eclipse APIs.

Copyright (c) Eclipse contributors and others 2000, 2008. All rights reserved.

  Published under the terms of the Eclipse Public License Version 1.0 ("EPL") Design by Interspire