Package org.eclipse.jface.text
Interface ISlaveDocumentManager
- All Known Implementing Classes:
ChildDocumentManager
,ProjectionDocumentManager
public interface ISlaveDocumentManager
Slave documents are documents whose contents is defined in terms of a master
document. Thus, slave documents usually reflect a projection of the master document.
Slave documents are causally connected to the master document. This means, changes
of the master document have immediate effect on the slave document and vice versa.
A slave document manager creates slave documents for given master documents, manages the life cycle of the slave documents, and keeps track of the information flow between master and slave documents. The slave document manager defines the construction rules of the slave documents in terms of the master document.
In order to provided backward compatibility for clients of ISlaveDocumentManager
, extension
interfaces are used to provide a means of evolution. The following extension interfaces
exist:
-
ISlaveDocumentManagerExtension
since version 3.0 extending the protocol with an access to all managed slave document for a given master document.
- Since:
- 2.1
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionCreates a new document information mapping between the given slave document and its master document.createSlaveDocument
(IDocument master) Creates a new slave document for the given master document.void
freeSlaveDocument
(IDocument slave) Frees the given slave document.getMasterDocument
(IDocument slave) Returns the master document of the given slave document ornull
if the given document is unknown to this slave document manager.boolean
isSlaveDocument
(IDocument document) Returns whether the given document is a slave document known to this slave document manager.void
setAutoExpandMode
(IDocument slave, boolean autoExpand) Sets the given slave document's auto expand mode.
-
Method Details
-
createSlaveDocument
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.- Parameters:
master
- the master document- Returns:
- the newly created slave document
- See Also:
-
freeSlaveDocument
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
.- Parameters:
slave
- the slave document to be freed- See Also:
-
createMasterSlaveMapping
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.- Parameters:
slave
- the slave document- Returns:
- a document information mapping between the slave document and its master document or
null
-
getMasterDocument
Returns the master document of the given slave document ornull
if the given document is unknown to this slave document manager.- Parameters:
slave
- the slave document- Returns:
- the master document of the given slave document or
null
-
isSlaveDocument
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.- 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
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.
- Parameters:
slave
- the slave whose auto expand mode should be setautoExpand
-true
for auto expand,false
otherwise
-