Class ProjectionDocumentManager

  • All Implemented Interfaces:
    IDocumentListener, ISlaveDocumentManager, ISlaveDocumentManagerExtension
    Direct Known Subclasses:
    ChildDocumentManager

    public class ProjectionDocumentManager
    extends java.lang.Object
    implements IDocumentListener, ISlaveDocumentManager, ISlaveDocumentManagerExtension
    A ProjectionDocumentManager is one particular implementation of ISlaveDocumentManager. This manager creates so called projection documents (see ProjectionDocumentas 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 Detail

      • ProjectionDocumentManager

        public ProjectionDocumentManager()
    • 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 already
        masterEvent - 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 interface IDocumentListener
        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. Returns null if the given document is unknown to this slave document manager.
        Specified by:
        createMasterSlaveMapping in interface ISlaveDocumentManager
        Parameters:
        slave - the slave document
        Returns:
        a document information mapping between the slave document and its master document or null
      • createProjectionDocument

        protected ProjectionDocument createProjectionDocument​(IDocument master)
        Factory method for projection documents.
        Parameters:
        master - the master document
        Returns:
        the newly created projection document
      • getMasterDocument

        public IDocument getMasterDocument​(IDocument slave)
        Description copied from interface: ISlaveDocumentManager
        Returns the master document of the given slave document or null if the given document is unknown to this slave document manager.
        Specified by:
        getMasterDocument in interface ISlaveDocumentManager
        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 interface ISlaveDocumentManager
        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 interface ISlaveDocumentManager
        Parameters:
        slave - the slave whose auto expand mode should be set
        autoExpanding - true for auto expand, false otherwise