Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.eclipse.jface.text
Interface ISlaveDocumentManager

All Known Implementing Classes:
  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:
  `IDocument`

Method Summary
`IDocumentInformationMapping` | `createMasterSlaveMapping(IDocument slave)` Creates a new document information mapping between the given slave document and its master document.
`IDocument` | `createSlaveDocument(IDocument master)` Creates a new slave document for the given master document.
`void` | `freeSlaveDocument(IDocument slave)` Frees the given slave document.
`IDocument` | `getMasterDocument(IDocument slave)` Returns the master document of the given slave document or `null` 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 Detail

### createSlaveDocument

    public IDocument createSlaveDocument(IDocument master)

  Creates a new slave document for the given master document. The slave document is causally connected to its master document until `freeSlaveDocument` 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(IDocument)`

### freeSlaveDocument

    public void freeSlaveDocument(IDocument slave)

  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 using `createSlaveDocument`.

  Parameters:
    `slave` - the slave document to be freed
  See Also:
    `createSlaveDocument(IDocument)`

### createMasterSlaveMapping

    public IDocumentInformationMapping createMasterSlaveMapping(IDocument slave)

  Creates a new document information mapping between the given slave document and its master document. Returns `null` 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

    public IDocument getMasterDocument(IDocument slave)

  Returns the master document of the given slave document or `null` 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

    public boolean isSlaveDocument(IDocument document)

  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

    public void setAutoExpandMode(IDocument slave,
                                  boolean autoExpand)

  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 it's 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 set
    `autoExpand` - `true` for auto expand, `false` otherwise

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2004. All rights reserved.