|
Eclipse Platform 2.0 |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.eclipse.ui.texteditor.AbstractDocumentProvider | +--org.eclipse.ui.editors.text.StorageDocumentProvider | +--org.eclipse.ui.editors.text.FileDocumentProvider
Shareable document provider specialized for file resources (IFile
).
This class may be instantiated or be subclassed.
Nested Class Summary | |
protected class |
FileDocumentProvider.FileInfo
Bundle of all required information to allow files as underlying document resources. |
protected class |
FileDocumentProvider.FileSynchronizer
Synchronizes the document with external resource changes. |
protected class |
FileDocumentProvider.SafeChange
Runnable encapsulating an element state change. |
Nested classes inherited from class org.eclipse.ui.editors.text.StorageDocumentProvider |
|
Nested classes inherited from class org.eclipse.ui.texteditor.AbstractDocumentProvider |
|
Field Summary |
Fields inherited from class org.eclipse.ui.texteditor.AbstractDocumentProvider |
PR10806_UC5_ENABLED, PR14469_ENABLED, STATUS_ERROR, STATUS_OK |
Constructor Summary | |
FileDocumentProvider()
Creates a new document provider. |
Method Summary | |
protected void |
checkSynchronizationState(long cachedModificationStamp,
IResource resource)
Checks whether the given resource has been changed on the local file system by comparing the actual time stamp with the cached one. |
protected long |
computeModificationStamp(IResource resource)
Computes the initial modification stamp for the given resource. |
protected IAnnotationModel |
createAnnotationModel(Object element)
Creates an annotation model for the given element. |
protected AbstractDocumentProvider.ElementInfo |
createElementInfo(Object element)
Creates a new element info object for the given element. |
protected void |
disposeElementInfo(Object element,
AbstractDocumentProvider.ElementInfo info)
Disposes of the given element info object. |
protected void |
doSaveDocument(IProgressMonitor monitor,
Object element,
IDocument document,
boolean overwrite)
Performs the actual work of saving the given document provided for the given element. |
protected void |
doValidateState(Object element,
Object computationContext)
Hook method for validating the state of the given element. |
protected AbstractDocumentProvider.ElementInfo |
getElementInfo(Object element)
Returns the element info object for the given element. |
long |
getModificationStamp(Object element)
Returns the modification stamp of the given element. |
long |
getSynchronizationStamp(Object element)
Returns the time stamp of the last synchronization of the given element and it's provided document. |
protected void |
handleElementContentChanged(IFileEditorInput fileEditorInput)
Updates the element info to a change of the file content and sends out appropriate notifications. |
protected void |
handleElementDeleted(IFileEditorInput fileEditorInput)
Sends out the notification that the file serving as document input has been deleted. |
protected void |
handleElementMoved(IFileEditorInput fileEditorInput,
IPath path)
Sends out the notification that the file serving as document input has been moved. |
boolean |
isDeleted(Object element)
Returns whether the given element has been deleted. |
boolean |
isModifiable(Object element)
Returns whether the document provider thinks that the given element can persistently be modified. |
void |
resetDocument(Object element)
Resets the given element's document to its last saved state. |
protected boolean |
setDocumentContent(IDocument document,
IEditorInput editorInput)
Deprecated. use file encoding based version |
protected boolean |
setDocumentContent(IDocument document,
IEditorInput editorInput,
String encoding)
Intitializes the given document from the given editor input using the given character encoding. |
void |
synchronize(Object element)
Synchronizes the document provided for the given element with the given element. |
Methods inherited from class org.eclipse.ui.editors.text.StorageDocumentProvider |
createDocument, doUpdateStateCache, getDefaultEncoding, getEncoding, handleCoreException, isReadOnly, setDocumentContent, setDocumentContent, setEncoding, updateCache |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public FileDocumentProvider()
Method Detail |
protected boolean setDocumentContent(IDocument document, IEditorInput editorInput) throws CoreException
StorageDocumentProvider#setDocumentContent(IDocument, IEditorInput)
.
setDocumentContent
in class StorageDocumentProvider
document
- the document to be initializededitorInput
- the input from which to derive the content of the document
true
if the document content could be set, false
otherwise
CoreException
- if the given editor input cannot be accessedprotected boolean setDocumentContent(IDocument document, IEditorInput editorInput, String encoding) throws CoreException
StorageDocumentProvider
setDocumentContent
in class StorageDocumentProvider
document
- the document to be initializededitorInput
- the input from which to derive the content of the documentencoding
- the character encoding used to read the editor input
true
if the document content could be set, false
otherwise
CoreException
- if the given editor input cannot be accessedprotected IAnnotationModel createAnnotationModel(Object element) throws CoreException
AbstractDocumentProvider
Subclasses must implement this method.
createAnnotationModel
in class StorageDocumentProvider
element
- the element
CoreException
- if the annotation model could not be createdprotected void checkSynchronizationState(long cachedModificationStamp, IResource resource) throws CoreException
CoreException
is thrown.
cachedModificationStamp
- the chached modification stampresource
- the resource to check
CoreException
- if resource has been changed on the file systemprotected long computeModificationStamp(IResource resource)
resource
- the resource
public long getModificationStamp(Object element)
IDocumentProvider
getModificationStamp
in interface IDocumentProvider
getModificationStamp
in class AbstractDocumentProvider
element
- the element
public long getSynchronizationStamp(Object element)
IDocumentProvider
getSynchronizationStamp
in interface IDocumentProvider
getSynchronizationStamp
in class AbstractDocumentProvider
element
- the element
public void synchronize(Object element) throws CoreException
IDocumentProviderExtension
getSynchronizationTimeStamp
and getModificationTimeStamp
return the same value.
synchronize
in interface IDocumentProviderExtension
synchronize
in class AbstractDocumentProvider
element
- the element
CoreException
- if the synchronization could not be performedpublic boolean isDeleted(Object element)
IDocumentProvider
isDeleted
in interface IDocumentProvider
isDeleted
in class AbstractDocumentProvider
element
- the element
true
if the element has been deletedprotected void doSaveDocument(IProgressMonitor monitor, Object element, IDocument document, boolean overwrite) throws CoreException
AbstractDocumentProvider
Subclasses must implement this method.
doSaveDocument
in class StorageDocumentProvider
monitor
- a progress monitor to report progress and request cancelationelement
- the elementdocument
- the documentoverwrite
- indicates whether an overwrite should happen if necessary
CoreException
- if document could not be stored to the given elementprotected AbstractDocumentProvider.ElementInfo createElementInfo(Object element) throws CoreException
AbstractDocumentProvider
This method is called from connect
when an element info needs
to be created. The AbstractDocumentProvider
implementation
of this method returns a new element info object whose document and
annotation model are the values of createDocument(element)
and createAnnotationModel(element)
, respectively. Subclasses
may override.
createElementInfo
in class StorageDocumentProvider
element
- the element
CoreException
- if the document or annotation model could not be createdprotected void disposeElementInfo(Object element, AbstractDocumentProvider.ElementInfo info)
AbstractDocumentProvider
This method is called when an element info is disposed. The
AbstractDocumentProvider
implementation of this
method does nothing. Subclasses may reimplement.
disposeElementInfo
in class AbstractDocumentProvider
element
- the elementinfo
- the element info objectprotected void handleElementContentChanged(IFileEditorInput fileEditorInput)
fileEditorInput
- the input of an text editorprotected void handleElementMoved(IFileEditorInput fileEditorInput, IPath path)
fileEditorInput
- the input of an text editorpath
- the path of the new location of the fileprotected void handleElementDeleted(IFileEditorInput fileEditorInput)
fileEditorInput
- the input of an text editorprotected AbstractDocumentProvider.ElementInfo getElementInfo(Object element)
AbstractDocumentProvider
getElementInfo
in class AbstractDocumentProvider
element
- the element
null
if noneprotected void doValidateState(Object element, Object computationContext) throws CoreException
AbstractDocumentProvider
doValidateState
in class AbstractDocumentProvider
element
- the elementcomputationContext
- the context in which validation happens
CoreException
- in case validation failspublic boolean isModifiable(Object element)
IDocumentProviderExtension
isReadOnly
as read-only elements may be modifiable and
writable elements may not be modifiable. If the given element is not connected to this document
provider, the result is undefined. Document providers are allowed to use a cache to answer this
question, i.e. there can be a difference between the "real" state of the element and the return
value.
isModifiable
in interface IDocumentProviderExtension
isModifiable
in class StorageDocumentProvider
element
- the element
true
if the given element is modifiable, false
otherwisepublic void resetDocument(Object element) throws CoreException
IDocumentProvider
elementContentAboutToBeReplaced
)
and after (elementContentReplaced
) the content is changed.
resetDocument
in interface IDocumentProvider
resetDocument
in class AbstractDocumentProvider
element
- the element, or null
CoreException
|
Eclipse Platform 2.0 |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |