Class ProjectionDocumentManager
- java.lang.Object
-
- org.eclipse.jface.text.projection.ProjectionDocumentManager
-
- All Implemented Interfaces:
IDocumentListener
,ISlaveDocumentManager
,ISlaveDocumentManagerExtension
- Direct Known Subclasses:
ChildDocumentManager
public class ProjectionDocumentManager extends Object implements IDocumentListener, ISlaveDocumentManager, ISlaveDocumentManagerExtension
AProjectionDocumentManager
is one particular implementation ofISlaveDocumentManager
. This manager creates so called projection documents (seeProjectionDocument
as slave documents for given master documents.A projection document represents a particular projection of the master document and is accordingly adapted to changes of the master document. Vice versa, the master document is accordingly adapted to changes of its slave documents. The manager does not maintain any particular management structure but utilizes mechanisms given by
IDocument
such as position categories and position updaters.Clients can instantiate this class. This class is not intended to be subclassed.
- Since:
- 3.0
- Restriction:
- This class is not intended to be subclassed by clients.
-
-
Constructor Summary
Constructors Constructor Description ProjectionDocumentManager()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description IDocumentInformationMapping
createMasterSlaveMapping(IDocument slave)
Creates a new document information mapping between the given slave document and its master document.protected ProjectionDocument
createProjectionDocument(IDocument master)
Factory method for projection documents.IDocument
createSlaveDocument(IDocument master)
Creates a new slave document for the given master document.void
documentAboutToBeChanged(DocumentEvent event)
The manipulation described by the document event will be performed.void
documentChanged(DocumentEvent event)
The manipulation described by the document event has been performed.protected void
fireDocumentEvent(boolean about, DocumentEvent masterEvent)
Informs all projection documents of the master document that issued the given document event.void
freeSlaveDocument(IDocument slave)
Frees the given slave document.IDocument
getMasterDocument(IDocument slave)
Returns the master document of the given slave document ornull
if the given document is unknown to this slave document manager.IDocument[]
getSlaveDocuments(IDocument master)
Returns the list of slave documents for the given master document ornull
if there are no such slave document.boolean
isSlaveDocument(IDocument document)
Returns whether the given document is a slave document known to this slave document manager.void
setAutoExpandMode(IDocument slave, boolean autoExpanding)
Sets the given slave document's auto expand mode.
-
-
-
Method Detail
-
fireDocumentEvent
protected void fireDocumentEvent(boolean about, DocumentEvent masterEvent)
Informs all projection documents of the master document that issued the given document event.- Parameters:
about
- indicates whether the change is about to happen or happened alreadymasterEvent
- the document event which will be processed to inform the projection documents
-
documentChanged
public void documentChanged(DocumentEvent event)
Description copied from interface:IDocumentListener
The manipulation described by the document event has been performed.- Specified by:
documentChanged
in interfaceIDocumentListener
- Parameters:
event
- the document event describing the document change
-
documentAboutToBeChanged
public void documentAboutToBeChanged(DocumentEvent event)
Description copied from interface:IDocumentListener
The manipulation described by the document event will be performed.- Specified by:
documentAboutToBeChanged
in interfaceIDocumentListener
- Parameters:
event
- the document event describing the document change
-
createMasterSlaveMapping
public IDocumentInformationMapping createMasterSlaveMapping(IDocument slave)
Description copied from interface:ISlaveDocumentManager
Creates a new document information mapping between the given slave document and its master document. Returnsnull
if the given document is unknown to this slave document manager.- Specified by:
createMasterSlaveMapping
in interfaceISlaveDocumentManager
- Parameters:
slave
- the slave document- Returns:
- a document information mapping between the slave document and its master document or
null
-
createSlaveDocument
public IDocument createSlaveDocument(IDocument master)
Description copied from interface:ISlaveDocumentManager
Creates a new slave document for the given master document. The slave document is causally connected to its master document untilfreeSlaveDocument
is called. The connection between the newly created slave document and the master document is managed by this slave document manager.- Specified by:
createSlaveDocument
in interfaceISlaveDocumentManager
- Parameters:
master
- the master document- Returns:
- the newly created slave document
- See Also:
ISlaveDocumentManager.freeSlaveDocument(IDocument)
-
createProjectionDocument
protected ProjectionDocument createProjectionDocument(IDocument master)
Factory method for projection documents.- Parameters:
master
- the master document- Returns:
- the newly created projection document
-
freeSlaveDocument
public void freeSlaveDocument(IDocument slave)
Description copied from interface:ISlaveDocumentManager
Frees the given slave document. If the given document is not a slave document known to this slave document manager, this call does not have any effect. A slave document is known to this slave document manager if it has been created by this manager usingcreateSlaveDocument
.- Specified by:
freeSlaveDocument
in interfaceISlaveDocumentManager
- Parameters:
slave
- the slave document to be freed- See Also:
ISlaveDocumentManager.createSlaveDocument(IDocument)
-
getMasterDocument
public IDocument getMasterDocument(IDocument slave)
Description copied from interface:ISlaveDocumentManager
Returns the master document of the given slave document ornull
if the given document is unknown to this slave document manager.- Specified by:
getMasterDocument
in interfaceISlaveDocumentManager
- Parameters:
slave
- the slave document- Returns:
- the master document of the given slave document or
null
-
isSlaveDocument
public boolean isSlaveDocument(IDocument document)
Description copied from interface:ISlaveDocumentManager
Returns whether the given document is a slave document known to this slave document manager. A slave document is known to this slave document manager, if the document has been created by this manager.- Specified by:
isSlaveDocument
in interfaceISlaveDocumentManager
- Parameters:
document
- the document to be checked whether it is a slave document known to this manager- Returns:
true
if the document is a slave document,false
otherwise
-
setAutoExpandMode
public void setAutoExpandMode(IDocument slave, boolean autoExpanding)
Description copied from interface:ISlaveDocumentManager
Sets the given slave document's auto expand mode. In auto expand mode, a slave document is automatically adapted to reflect all changes applied to its master document. Assume a master document contains 30 lines and the slave is defined to contain the lines 11-20. In auto expand mode, when the master document is changed at line 8, the slave document is expanded to contain the lines 8-20.This call is without effect if the given document is unknown to this slave document manager.
- Specified by:
setAutoExpandMode
in interfaceISlaveDocumentManager
- Parameters:
slave
- the slave whose auto expand mode should be setautoExpanding
-true
for auto expand,false
otherwise
-
getSlaveDocuments
public IDocument[] getSlaveDocuments(IDocument master)
Description copied from interface:ISlaveDocumentManagerExtension
Returns the list of slave documents for the given master document ornull
if there are no such slave document.- Specified by:
getSlaveDocuments
in interfaceISlaveDocumentManagerExtension
- Parameters:
master
- the master document- Returns:
- the list of slave documents or
null
-
-