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
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com
Answertopia.com

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

  




 

 


Eclipse Platform
Release 3.5

org.eclipse.jface.text.link
Class LinkedModeModel


java.lang.Object
  extended by 
org.eclipse.jface.text.link.LinkedModeModel

public class LinkedModeModel
extends Object

The model for linked mode, umbrellas several LinkedPositionGroups. Once installed, the model propagates any changes to a position to all its siblings in the same position group.

Setting up a model consists of first adding LinkedPositionGroups to it, and then installing the model by either calling forceInstall() or tryInstall(). After installing the model, it becomes sealed and no more groups may be added.

If a document change occurs that would modify more than one position group or that would invalidate the disjointness requirement of the positions, the model is torn down and all positions are deleted. The same happens upon calling exit(int).

Nesting

A LinkedModeModel may be nested into another model. This happens when installing a model the positions of which all fit into a single position in a parent model that has previously been installed on the same document(s).

Clients may instantiate instances of this class.

Since:
3.0
Restriction:
This class is not intended to be subclassed by clients.

Constructor Summary
LinkedModeModel ()
          Creates a new model.
 
Method Summary
 void addGroup ( LinkedPositionGroup group)
          Adds a position group to this LinkedModeModel.
 void addLinkingListener ( ILinkedModeListener listener)
          Adds listener to the set of listeners that are informed upon state changes.
 boolean anyPositionContains (int offset)
          Returns whether an offset is contained by any position in this model.
static void closeAllModels ( IDocument document)
          Cancels any linked mode model on the specified document.
 void exit (int flags)
          Causes this model to exit.
  LinkedPosition findPosition ( LinkedPosition toFind)
          Finds the position in this model that is closest after toFind.
 void forceInstall ()
          Installs this model, which includes registering as document listener on all involved documents and storing global information about this model.
  LinkedPositionGroup getGroupForPosition ( Position position)
          Returns the linked position group that contains position, or null if position is not contained in any group within this model.
static  LinkedModeModel getModel ( IDocument document, int offset)
          Returns the model currently active on document at offset, or null if there is none.
  List getTabStopSequence ()
          Returns the positions in this model that have a tab stop, in the order they were added.
static boolean hasInstalledModel ( IDocument document)
          Checks whether there is already a model installed on document.
static boolean hasInstalledModel ( IDocument[] documents)
          Checks whether there is already a linked mode model installed on any of the documents.
 boolean isNested ()
          Returns whether this model is nested.
 void removeLinkingListener ( ILinkedModeListener listener)
          Removes listener from the set of listeners that are informed upon state changes.
 void stopForwarding (int flags)
          Causes this model to stop forwarding updates.
 boolean tryInstall ()
          Installs this model, which includes registering as document listener on all involved documents and storing global information about this model.
 
Methods inherited from class java.lang. Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LinkedModeModel

public LinkedModeModel()
Creates a new model.

Since:
3.1
Method Detail

hasInstalledModel

public static boolean hasInstalledModel(
IDocument document)
Checks whether there is already a model installed on document.

Parameters:
document - the IDocument of interest
Returns:
true if there is an existing model, false otherwise

hasInstalledModel

public static boolean hasInstalledModel(
IDocument[] documents)
Checks whether there is already a linked mode model installed on any of the documents.

Parameters:
documents - the IDocuments of interest
Returns:
true if there is an existing model, false otherwise

closeAllModels

public static void closeAllModels(
IDocument document)
Cancels any linked mode model on the specified document. If there is no model, nothing happens.

Parameters:
document - the document whose LinkedModeModel should be canceled

getModel

public static 
LinkedModeModel getModel(
IDocument document,
                                       int offset)
Returns the model currently active on document at offset, or null if there is none.

Parameters:
document - the document for which the caller asks for a model
offset - the offset into document, as there may be several models on a document
Returns:
the model currently active on document, or null

exit

public void exit(int flags)
Causes this model to exit. Called either if an illegal document change is detected, or by the UI.

Parameters:
flags - the exit flags as defined in ILinkedModeListener

stopForwarding

public void stopForwarding(int flags)
Causes this model to stop forwarding updates. The positions are not unregistered however, which will only happen when exit is called, or after the next document change.

Parameters:
flags - the exit flags as defined in ILinkedModeListener
Since:
3.1

addGroup

public void addGroup(
LinkedPositionGroup group)
              throws 
BadLocationException
Adds a position group to this LinkedModeModel. This method may not be called if the model has been installed. Also, if a UI has been set up for this model, it may not pick up groups added afterwards.

If the positions in group conflict with any other group in this model, a BadLocationException is thrown. Also, if this model is nested inside another one, all positions in all groups of the child model have to reside within a single position in the parent model, otherwise a BadLocationException is thrown.

If group already exists, nothing happens.

Parameters:
group - the group to be added to this model
Throws:
BadLocationException - if the group conflicts with the other groups in this model or violates the nesting requirements.
IllegalStateException - if the method is called when the model is already sealed

forceInstall

public void forceInstall()
                  throws 
BadLocationException
Installs this model, which includes registering as document listener on all involved documents and storing global information about this model. Any conflicting model already present will be closed.

If an exception is thrown, the installation failed and the model is unusable.

Throws:
BadLocationException - if some of the positions of this model were not valid positions on their respective documents

tryInstall

public boolean tryInstall()
                   throws 
BadLocationException
Installs this model, which includes registering as document listener on all involved documents and storing global information about this model. If there is another model installed on the document(s) targeted by the receiver that conflicts with it, installation may fail.

The return value states whether installation was successful; if not, the model is not installed and will not work.

Returns:
true if installation was successful, false otherwise
Throws:
BadLocationException - if some of the positions of this model were not valid positions on their respective documents

isNested

public boolean isNested()
Returns whether this model is nested.

This method is part of the private protocol between LinkedModeUI and LinkedModeModel.

Returns:
true if this model is nested, false otherwise

getTabStopSequence

public 
List getTabStopSequence()
Returns the positions in this model that have a tab stop, in the order they were added.

This method is part of the private protocol between LinkedModeUI and LinkedModeModel.

Returns:
the positions in this model that have a tab stop, in the order they were added

addLinkingListener

public void addLinkingListener(
ILinkedModeListener listener)
Adds listener to the set of listeners that are informed upon state changes.

Parameters:
listener - the new listener

removeLinkingListener

public void removeLinkingListener(
ILinkedModeListener listener)
Removes listener from the set of listeners that are informed upon state changes.

Parameters:
listener - the new listener

findPosition

public 
LinkedPosition findPosition(
LinkedPosition toFind)
Finds the position in this model that is closest after toFind. toFind needs not be a position in this model and serves merely as an offset.

This method part of the private protocol between LinkedModeUI and LinkedModeModel.

Parameters:
toFind - the position to search from
Returns:
the closest position in the same document as toFind after the offset of toFind, or null

anyPositionContains

public boolean anyPositionContains(int offset)
Returns whether an offset is contained by any position in this model.

Parameters:
offset - the offset to check
Returns:
true if offset is included by any position (see LinkedPosition.includes(int)) in this model, false otherwise

getGroupForPosition

public 
LinkedPositionGroup getGroupForPosition(
Position position)
Returns the linked position group that contains position, or null if position is not contained in any group within this model. Group containment is tested by calling group.contains(position) for every group in this model.

This method part of the private protocol between LinkedModeUI and LinkedModeModel.

Parameters:
position - the position the group of which is requested
Returns:
the first group in this model for which group.contains(position) returns true, or null if no group contains position

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