org.eclipse.ui.editors.text
Class FileDocumentProvider
java.lang.Object
org.eclipse.ui.texteditor.AbstractDocumentProvider
org.eclipse.ui.editors.text.StorageDocumentProvider
org.eclipse.ui.editors.text.FileDocumentProvider
-
All Implemented Interfaces:
-
IStorageDocumentProvider,
IDocumentProvider,
IDocumentProviderExtension,
IDocumentProviderExtension2,
IDocumentProviderExtension3,
IDocumentProviderExtension4,
IDocumentProviderExtension5
-
public class FileDocumentProvider
- extends
StorageDocumentProvider
Shared document provider specialized for file resources (IFile
).
This class may be instantiated or be subclassed.
Method Summary
|
protected void
|
cacheEncodingState
(
Object element)
Internally caches the file's encoding data. |
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
|
doResetDocument
(
Object element,
IProgressMonitor monitor)
Executes the actual work of reseting the given elements document. |
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
|
doSynchronize
(
Object element,
IProgressMonitor monitor)
Performs the actual work of synchronizing the given element. |
protected void
|
doValidateState
(
Object element,
Object computationContext)
Hook method for validating the state of the given element. |
IContentType
|
getContentType
(
Object element)
Returns the content type of for the given element or
null if none could be determined. |
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. |
protected
IRunnableContext
|
getOperationRunner
(
IProgressMonitor monitor)
Returns the runnable context for this document provider. |
protected
String
|
getPersistedEncoding
(
Object element)
Returns the persisted encoding for the given element. |
protected
ISchedulingRule
|
getResetRule
(
Object element)
Returns the scheduling rule required for executing
reset on the given element. |
protected
ISchedulingRule
|
getSaveRule
(
Object element)
Returns the scheduling rule required for executing
save on 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
ISchedulingRule
|
getSynchronizeRule
(
Object element)
Returns the scheduling rule required for executing
synchronize on the given element. |
protected
ISchedulingRule
|
getValidateStateRule
(
Object element)
Returns the scheduling rule required for executing
validateState on the given element. |
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. |
boolean
|
isSynchronized
(
Object element)
Returns whether the information provided for the given element is in sync with the element. |
protected void
|
persistEncoding
(
Object element,
String encoding)
Persists the given encoding for the given element. |
protected void
|
readUTF8BOM
(
IFile file,
String encoding,
Object element)
Deprecated. as of 3.0 this method is no longer in use and does nothing
|
protected void
|
refreshFile
(
IFile file)
Refreshes the given file resource. |
protected void
|
refreshFile
(
IFile file,
IProgressMonitor monitor)
Refreshes the given file resource. |
protected boolean
|
setDocumentContent
(
IDocument document,
IEditorInput editorInput)
Deprecated. use file encoding based version
|
protected boolean
|
setDocumentContent
(
IDocument document,
IEditorInput editorInput,
String encoding)
Initializes the given document from the given editor input using the given character encoding. |
Methods inherited from class org.eclipse.ui.editors.text.
StorageDocumentProvider
|
createDocument,
createEmptyDocument,
doUpdateStateCache,
getDefaultEncoding,
getEncoding,
handleCoreException,
isNotSynchronizedException,
isReadOnly,
setDocumentContent,
setDocumentContent,
setEncoding,
setupDocument,
updateCache
|
Methods inherited from class org.eclipse.ui.texteditor.
AbstractDocumentProvider
|
aboutToChange,
addElementStateListener,
addUnchangedElementListeners,
canSaveDocument,
changed,
connect,
connected,
disconnect,
disconnected,
executeOperation,
fireElementContentAboutToBeReplaced,
fireElementContentReplaced,
fireElementDeleted,
fireElementDirtyStateChanged,
fireElementMoved,
fireElementStateChangeFailed,
fireElementStateChanging,
fireElementStateValidationChanged,
getAnnotationModel,
getConnectedElements,
getDocument,
getProgressMonitor,
getStatus,
invalidatesState,
isStateValidated,
mustSaveDocument,
removeElementStateListener,
removeUnchangedElementListeners,
resetDocument,
saveDocument,
setCanSaveDocument,
setProgressMonitor,
synchronize,
updateStateCache,
validateState
|
Methods inherited from class java.lang.
Object
|
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
|
FileDocumentProvider
public FileDocumentProvider()
- Creates and returns a new document provider.
setDocumentContent
protected boolean setDocumentContent(
IDocument document,
IEditorInput editorInput)
throws
CoreException
-
Deprecated. use file encoding based version
- Overrides
StorageDocumentProvider#setDocumentContent(IDocument, IEditorInput)
.
-
-
Overrides:
-
setDocumentContent
in class
StorageDocumentProvider
-
-
Parameters:
-
document
- the document to be initialized -
editorInput
- the input from which to derive the content of the document
-
Returns:
-
true
if the document content could be set, false
otherwise
-
Throws:
-
CoreException
- if the given editor input cannot be accessed -
Since:
- 2.0
-
See Also:
-
StorageDocumentProvider.setDocumentContent(IDocument, IEditorInput)
setDocumentContent
protected boolean setDocumentContent(
IDocument document,
IEditorInput editorInput,
String encoding)
throws
CoreException
-
Description copied from class:
StorageDocumentProvider
- Initializes the given document from the given editor input using the given character encoding.
-
-
Overrides:
-
setDocumentContent
in class
StorageDocumentProvider
-
-
Parameters:
-
document
- the document to be initialized -
editorInput
- the input from which to derive the content of the document -
encoding
- the character encoding used to read the editor input
-
Returns:
-
true
if the document content could be set, false
otherwise
-
Throws:
-
CoreException
- if the given editor input cannot be accessed
createAnnotationModel
protected
IAnnotationModel createAnnotationModel(
Object element)
throws
CoreException
-
Description copied from class:
AbstractDocumentProvider
- Creates an annotation model for the given element.
Subclasses must implement this method.
-
-
Overrides:
-
createAnnotationModel
in class
StorageDocumentProvider
-
-
Parameters:
-
element
- the element
-
Returns:
- the annotation model or
null
if none
-
Throws:
-
CoreException
- if the annotation model could not be created
checkSynchronizationState
protected void checkSynchronizationState(long cachedModificationStamp,
IResource resource)
throws
CoreException
- Checks whether the given resource has been changed on the
local file system by comparing the actual time stamp with the
cached one. If the resource has been changed, a
CoreException
is thrown.
-
-
Parameters:
-
cachedModificationStamp
- the cached modification stamp -
resource
- the resource to check
-
Throws:
-
CoreException
- if resource has been changed on the file system
computeModificationStamp
protected long computeModificationStamp(
IResource resource)
- Computes the initial modification stamp for the given resource.
-
-
Parameters:
-
resource
- the resource
-
Returns:
- the modification stamp
getModificationStamp
public long getModificationStamp(
Object element)
-
Description copied from interface:
IDocumentProvider
- Returns the modification stamp of the given element.
-
-
Specified by:
-
getModificationStamp
in interface
IDocumentProvider
-
Overrides:
-
getModificationStamp
in class
AbstractDocumentProvider
-
-
Parameters:
-
element
- the element
-
Returns:
- the modification stamp of the given element
getSynchronizationStamp
public long getSynchronizationStamp(
Object element)
-
Description copied from interface:
IDocumentProvider
- Returns the time stamp of the last synchronization of
the given element and it's provided document.
-
-
Specified by:
-
getSynchronizationStamp
in interface
IDocumentProvider
-
Overrides:
-
getSynchronizationStamp
in class
AbstractDocumentProvider
-
-
Parameters:
-
element
- the element
-
Returns:
- the synchronization stamp of the given element
doSynchronize
protected void doSynchronize(
Object element,
IProgressMonitor monitor)
throws
CoreException
-
Description copied from class:
AbstractDocumentProvider
- Performs the actual work of synchronizing the given element.
-
-
Overrides:
-
doSynchronize
in class
AbstractDocumentProvider
-
-
Parameters:
-
element
- the element -
monitor
- the progress monitor
-
Throws:
-
CoreException
- in the case that synchronization fails
isDeleted
public boolean isDeleted(
Object element)
-
Description copied from interface:
IDocumentProvider
- Returns whether the given element has been deleted.
-
-
Specified by:
-
isDeleted
in interface
IDocumentProvider
-
Overrides:
-
isDeleted
in class
AbstractDocumentProvider
-
-
Parameters:
-
element
- the element
-
Returns:
-
true
if the element has been deleted
doSaveDocument
protected void doSaveDocument(
IProgressMonitor monitor,
Object element,
IDocument document,
boolean overwrite)
throws
CoreException
-
Description copied from class:
AbstractDocumentProvider
- Performs the actual work of saving the given document provided for the
given element.
Subclasses must implement this method.
-
-
Overrides:
-
doSaveDocument
in class
StorageDocumentProvider
-
-
Parameters:
-
monitor
- a progress monitor to report progress and request cancelation -
element
- the element -
document
- the document -
overwrite
- indicates whether an overwrite should happen if necessary
-
Throws:
-
CoreException
- if document could not be stored to the given element
createElementInfo
protected
AbstractDocumentProvider.ElementInfo createElementInfo(
Object element)
throws
CoreException
-
Description copied from class:
AbstractDocumentProvider
- Creates a new element info object for the given element.
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.
-
-
Overrides:
-
createElementInfo
in class
StorageDocumentProvider
-
-
Parameters:
-
element
- the element
-
Returns:
- a new element info object
-
Throws:
-
CoreException
- if the document or annotation model could not be created
disposeElementInfo
protected void disposeElementInfo(
Object element,
AbstractDocumentProvider.ElementInfo info)
-
Description copied from class:
AbstractDocumentProvider
- Disposes of the given element info object.
This method is called when an element info is disposed. The
AbstractDocumentProvider
implementation of this
method does nothing. Subclasses may reimplement.
-
-
Overrides:
-
disposeElementInfo
in class
AbstractDocumentProvider
-
-
Parameters:
-
element
- the element -
info
- the element info object
handleElementContentChanged
protected void handleElementContentChanged(
IFileEditorInput fileEditorInput)
- Updates the element info to a change of the file content and sends out
appropriate notifications.
-
-
Parameters:
-
fileEditorInput
- the input of an text editor
handleElementMoved
protected void handleElementMoved(
IFileEditorInput fileEditorInput,
IPath path)
- Sends out the notification that the file serving as document input has been moved.
-
-
Parameters:
-
fileEditorInput
- the input of an text editor -
path
- the path of the new location of the file
handleElementDeleted
protected void handleElementDeleted(
IFileEditorInput fileEditorInput)
- Sends out the notification that the file serving as document input has been deleted.
-
-
Parameters:
-
fileEditorInput
- the input of an text editor
getElementInfo
protected
AbstractDocumentProvider.ElementInfo getElementInfo(
Object element)
-
Description copied from class:
AbstractDocumentProvider
- Returns the element info object for the given element.
-
-
Overrides:
-
getElementInfo
in class
AbstractDocumentProvider
-
-
Parameters:
-
element
- the element
-
Returns:
- the element info object, or
null
if none
doValidateState
protected void doValidateState(
Object element,
Object computationContext)
throws
CoreException
-
Description copied from class:
AbstractDocumentProvider
- Hook method for validating the state of the given element. Must not take care of cache updating etc.
Default implementation is empty.
-
-
Overrides:
-
doValidateState
in class
AbstractDocumentProvider
-
-
Parameters:
-
element
- the element -
computationContext
- the context in which validation happens
-
Throws:
-
CoreException
- in case validation fails
isModifiable
public boolean isModifiable(
Object element)
-
Description copied from interface:
IDocumentProviderExtension
- Returns whether the document provider thinks that the given element can persistently be modified.
This is orthogonal to
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.
-
-
Specified by:
-
isModifiable
in interface
IDocumentProviderExtension
-
Overrides:
-
isModifiable
in class
StorageDocumentProvider
-
-
Parameters:
-
element
- the element
-
Returns:
-
true
if the given element is modifiable, false
otherwise
doResetDocument
protected void doResetDocument(
Object element,
IProgressMonitor monitor)
throws
CoreException
-
Description copied from class:
AbstractDocumentProvider
- Executes the actual work of reseting the given elements document.
-
-
Overrides:
-
doResetDocument
in class
AbstractDocumentProvider
-
-
Parameters:
-
element
- the element -
monitor
- the progress monitor
-
Throws:
-
CoreException
- if resetting fails
refreshFile
protected void refreshFile(
IFile file)
throws
CoreException
- Refreshes the given file resource.
-
-
Parameters:
-
file
- the file
-
Throws:
-
CoreException
- if the refresh fails -
Since:
- 2.1
refreshFile
protected void refreshFile(
IFile file,
IProgressMonitor monitor)
throws
CoreException
- Refreshes the given file resource.
-
-
Parameters:
-
file
- the file to be refreshed -
monitor
- the progress monitor
-
Throws:
-
CoreException
- if the refresh fails -
Since:
- 3.0
isSynchronized
public boolean isSynchronized(
Object element)
-
Description copied from interface:
IDocumentProviderExtension3
- Returns whether the information provided for the given element is in sync with the element.
-
-
Specified by:
-
isSynchronized
in interface
IDocumentProviderExtension3
-
Overrides:
-
isSynchronized
in class
AbstractDocumentProvider
-
-
Parameters:
-
element
- the element
-
Returns:
-
true
if the information is in sync with the element, false
otherwise
getContentType
public
IContentType getContentType(
Object element)
throws
CoreException
-
Description copied from interface:
IDocumentProviderExtension4
- Returns the content type of for the given element or
null
if none could be determined. If the element's
document can be saved, the returned content type is determined by the
document's current content.
-
-
Specified by:
-
getContentType
in interface
IDocumentProviderExtension4
-
Overrides:
-
getContentType
in class
StorageDocumentProvider
-
-
Parameters:
-
element
- the element
-
Returns:
- the content type or
null
-
Throws:
-
CoreException
- if reading or accessing the underlying store
fails
getPersistedEncoding
protected
String getPersistedEncoding(
Object element)
- Returns the persisted encoding for the given element.
-
-
Overrides:
-
getPersistedEncoding
in class
StorageDocumentProvider
-
-
Parameters:
-
element
- the element for which to get the persisted encoding
-
Returns:
- the persisted encoding
-
Since:
- 2.1
persistEncoding
protected void persistEncoding(
Object element,
String encoding)
throws
CoreException
- Persists the given encoding for the given element.
-
-
Overrides:
-
persistEncoding
in class
StorageDocumentProvider
-
-
Parameters:
-
element
- the element for which to store the persisted encoding -
encoding
- the encoding
-
Throws:
-
CoreException
- if persisting the encoding fails -
Since:
- 2.1
getOperationRunner
protected
IRunnableContext getOperationRunner(
IProgressMonitor monitor)
-
Description copied from class:
AbstractDocumentProvider
- Returns the runnable context for this document provider.
-
-
Overrides:
-
getOperationRunner
in class
StorageDocumentProvider
-
-
Parameters:
-
monitor
- a progress monitor to track the operation
-
Returns:
- the runnable context for this document provider
getResetRule
protected
ISchedulingRule getResetRule(
Object element)
-
Description copied from class:
AbstractDocumentProvider
- Returns the scheduling rule required for executing
reset
on the given element. This default
implementation returns null
.
-
-
Overrides:
-
getResetRule
in class
AbstractDocumentProvider
-
-
Parameters:
-
element
- the element
-
Returns:
- the scheduling rule for
reset
getSaveRule
protected
ISchedulingRule getSaveRule(
Object element)
-
Description copied from class:
AbstractDocumentProvider
- Returns the scheduling rule required for executing
save
on the given element. This default
implementation returns null
.
-
-
Overrides:
-
getSaveRule
in class
AbstractDocumentProvider
-
-
Parameters:
-
element
- the element
-
Returns:
- the scheduling rule for
save
getSynchronizeRule
protected
ISchedulingRule getSynchronizeRule(
Object element)
-
Description copied from class:
AbstractDocumentProvider
- Returns the scheduling rule required for executing
synchronize
on the given element. This default
implementation returns null
.
-
-
Overrides:
-
getSynchronizeRule
in class
AbstractDocumentProvider
-
-
Parameters:
-
element
- the element
-
Returns:
- the scheduling rule for
synchronize
getValidateStateRule
protected
ISchedulingRule getValidateStateRule(
Object element)
-
Description copied from class:
AbstractDocumentProvider
- Returns the scheduling rule required for executing
validateState
on the given element. This default
implementation returns null
.
-
-
Overrides:
-
getValidateStateRule
in class
AbstractDocumentProvider
-
-
Parameters:
-
element
- the element
-
Returns:
- the scheduling rule for
validateState
readUTF8BOM
protected void readUTF8BOM(
IFile file,
String encoding,
Object element)
throws
CoreException
-
Deprecated. as of 3.0 this method is no longer in use and does nothing
- Reads the file's UTF-8 BOM if any and stores it.
XXX:
This is a workaround for a corresponding bug in Java readers and writer,
see: https://developer.java.sun.com/developer/bugParade/bugs/4508058.html
-
-
Parameters:
-
file
- the file -
encoding
- the encoding -
element
- the element, or null
-
Throws:
-
CoreException
- if reading the BOM fails -
Since:
- 3.0
cacheEncodingState
protected void cacheEncodingState(
Object element)
throws
CoreException
- Internally caches the file's encoding data.
-
-
Parameters:
-
element
- the element, or null
-
Throws:
-
CoreException
- if the encoding cannot be retrieved -
Since:
- 3.1
Guidelines for using Eclipse APIs.
Copyright (c) Eclipse contributors and others 2000, 2008. All rights reserved.