diff options
Diffstat (limited to 'org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/IDocumentProvider.java')
-rw-r--r-- | org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/IDocumentProvider.java | 203 |
1 files changed, 0 insertions, 203 deletions
diff --git a/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/IDocumentProvider.java b/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/IDocumentProvider.java deleted file mode 100644 index bfd20bc007e..00000000000 --- a/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/IDocumentProvider.java +++ /dev/null @@ -1,203 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.ui.texteditor; - - - - -import org.eclipse.jface.text.IDocument; -import org.eclipse.jface.text.source.IAnnotationModel; - -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IProgressMonitor; - - - -/** - * A document provider maps between domain elements and documents. - * A document provider has the following responsibilities: - * <ul> - * <li> create an annotation model of a domain model element - * <li> create and manage a textual representation, i.e., a document, of a domain model element - * <li> create and save the content of domain model elements based on given documents - * <li> update the documents this document provider manages for domain model elements - * to changes directly applied to those domain model elements - * <li> notify all element state listeners about changes directly applied to domain model - * elements this document provider manages a document for, i.e. the document - * provider must know which changes of a domain model element are to be interpreted - * as element moves, deletes, etc. - * </ul> - * Text editors use document providers to bridge the gap between their input elements and the - * documents they work on. A single document provider may be shared between multiple editors; - * the methods take the editors' input elements as a parameter. - * <p> - * This interface may be implemented by clients; or subclass the standard - * abstract base class <code>AbstractDocumentProvider</code>.</p> - * - * @see org.eclipse.jface.text.IDocument - * @see org.eclipse.ui.texteditor.AbstractDocumentProvider - */ -public interface IDocumentProvider { - - /** - * Connects the given element to this document provider. This tells the provider - * that caller of this method is interested to work with the document provided for - * the given domain model element. By counting the invocations of this method and - * <code>disconnect(Object)</code> this provider can assume to know the - * correct number of clients working with the document provided for that - * domain model element. <p> - * The given element must not be <code>null</code>. - * - * @param element the element - * @exception CoreException if the textual representation or the annotation model - * of the element could not be created - */ - void connect(Object element) throws CoreException; - - /** - * Disconnects the given element from this document provider. This tells the provider - * that the caller of this method is no longer interested in working with the document - * provided for the given domain model element. By counting the invocations of - * <code>connect(Object)</code> and of this method this provider can assume to - * know the correct number of clients working with the document provided for that - * domain model element. <p> - * The given element must not be <code>null</code>. - * - * @param element the element - */ - void disconnect(Object element); - - /** - * Returns the document for the given element. Usually the document contains - * a textual presentation of the content of the element, or is the element itself. - * - * @param element the element, or <code>null</code> - * @return the document, or <code>null</code> if none - */ - IDocument getDocument(Object element); - - /** - * Resets the given element's document to its last saved state. - * Element state listeners are notified both before (<code>elementContentAboutToBeReplaced</code>) - * and after (<code>elementContentReplaced</code>) the content is changed. - * - * @param element the element, or <code>null</code> - */ - void resetDocument(Object element) throws CoreException; - - /** - * Saves the given document provided for the given element. - * - * @param monitor a progress monitor to report progress and request cancelation - * @param element the element, or <code>null</code> - * @param document the document - * @param overwrite indicates whether overwrite should be performed - * while saving the given element if necessary - * @exception CoreException if document could not be stored to the given element - */ - void saveDocument(IProgressMonitor monitor, Object element, IDocument document, boolean overwrite) throws CoreException; - - /** - * Returns the modification stamp of the given element. - * - * @param element the element - * @return the modification stamp of the given element - */ - long getModificationStamp(Object element); - - /** - * Returns the time stamp of the last synchronization of - * the given element and it's provided document. - * - * @param element the element - * @return the sysnchronization stamp of the given element - */ - long getSynchronizationStamp(Object element); - - /** - * Returns whether the given element has been deleted. - * - * @param element the element - * @return <code>true</code> if the element has been deleted - */ - boolean isDeleted(Object element); - - /** - * Returns whether the document provided for the given element must be saved. - * - * @param element the element, or <code>null</code> - * @return <code>true</code> if the document must be saved, and - * <code>false</code> otherwise (including the element is <code>null</code>) - */ - boolean mustSaveDocument(Object element); - - /** - * Returns whether the document provided for the given element differs from - * its original state which would required that it be saved. - * - * @param element the element, or <code>null</code> - * @return <code>true</code> if the document can be saved, and - * <code>false</code> otherwise (including the element is <code>null</code>) - */ - boolean canSaveDocument(Object element); - - /** - * Returns the annotation model for the given element. - * - * @param element the element, or <code>null</code> - * @return the annotation model, or <code>null</code> if none - */ - IAnnotationModel getAnnotationModel(Object element); - - /** - * Informs this document provider about upcoming changes of the given element. - * The changes might cause change notifications specific for the type of the given element. - * If this provider manages a document for the given element, the document provider - * must not change the document because of the notifications received after <code> - * aboutToChange</code> has been and before <code>changed</code> is called. In this case, - * it is assumed that the document is already up to date, e.g., a save operation is a - * typical case. <p> - * The concrete nature of the change notification depends on the concrete type of the - * given element. If the element is, e.g., an <code>IResource</code> the notification - * is a resource delta. - * - * @param element the element, or <code>null</code> - */ - void aboutToChange(Object element); - - /** - * Informs this document provider that the given element has been changed. - * All notifications have been sent out. If this provider manages a document - * for the given element, the document provider must from now on change the - * document on the receipt of change notifications. The concrete nature of the change - * notification depends on the concrete type of the given element. If the element is, - * e.g., an <code>IResource</code> the notification is a resource delta. - * - * @param element the element, or <code>null</code> - */ - void changed(Object element); - - /** - * Adds the given element state listener to this document provider. - * Has no effect if an identical listener is already registered. - * - * @param listener the listener - */ - void addElementStateListener(IElementStateListener listener); - - /** - * Removes the given element state listener from this document provider. - * Has no affect if an identical listener is not registered. - * - * @param listener the listener - */ - void removeElementStateListener(IElementStateListener listener); -} |