org.eclipse.xtext.ui.editor.model
Class XtextDocumentProvider

java.lang.Object
  extended by org.eclipse.ui.texteditor.AbstractDocumentProvider
      extended by org.eclipse.ui.editors.text.StorageDocumentProvider
          extended by org.eclipse.ui.editors.text.FileDocumentProvider
              extended by org.eclipse.xtext.ui.editor.model.XtextDocumentProvider
All Implemented Interfaces:
org.eclipse.ui.editors.text.IStorageDocumentProvider, org.eclipse.ui.texteditor.IDocumentProvider, org.eclipse.ui.texteditor.IDocumentProviderExtension, org.eclipse.ui.texteditor.IDocumentProviderExtension2, org.eclipse.ui.texteditor.IDocumentProviderExtension3, org.eclipse.ui.texteditor.IDocumentProviderExtension4, org.eclipse.ui.texteditor.IDocumentProviderExtension5
Direct Known Subclasses:
ResourceAwareXtextDocumentProvider

public class XtextDocumentProvider
extends org.eclipse.ui.editors.text.FileDocumentProvider

Author:
Peter Friese - Initial contribution and API, Sven Efftinge, Michael Clay, Heiko Behrens, Sebastian Zarnekow - Resetting unchanged flag on undo / redo, support for IURIEditorInput

Nested Class Summary
 class XtextDocumentProvider.UnchangedElementListener
           
protected  class XtextDocumentProvider.URIInfo
          Bundle of all required information to allow URI as underlying document content provider.
 
Nested classes/interfaces inherited from class org.eclipse.ui.editors.text.FileDocumentProvider
org.eclipse.ui.editors.text.FileDocumentProvider.FileInfo, org.eclipse.ui.editors.text.FileDocumentProvider.FileSynchronizer, org.eclipse.ui.editors.text.FileDocumentProvider.SafeChange
 
Nested classes/interfaces inherited from class org.eclipse.ui.editors.text.StorageDocumentProvider
org.eclipse.ui.editors.text.StorageDocumentProvider.StorageInfo
 
Nested classes/interfaces inherited from class org.eclipse.ui.texteditor.AbstractDocumentProvider
org.eclipse.ui.texteditor.AbstractDocumentProvider.DocumentProviderOperation, org.eclipse.ui.texteditor.AbstractDocumentProvider.ElementInfo
 
Field Summary
 
Fields inherited from class org.eclipse.ui.editors.text.StorageDocumentProvider
DEFAULT_FILE_SIZE
 
Fields inherited from class org.eclipse.ui.texteditor.AbstractDocumentProvider
PR10806_UC5_ENABLED, PR14469_ENABLED, STATUS_ERROR, STATUS_OK
 
Constructor Summary
XtextDocumentProvider()
           
 
Method Summary
protected  void addUnchangedElementListeners(java.lang.Object element, org.eclipse.ui.texteditor.AbstractDocumentProvider.ElementInfo info)
           
protected  org.eclipse.jface.text.source.IAnnotationModel createAnnotationModel(java.lang.Object element)
           
protected  org.eclipse.jface.text.IDocument createDocument(java.lang.Object element)
           
protected  org.eclipse.ui.texteditor.AbstractDocumentProvider.ElementInfo createElementInfo(java.lang.Object element)
           
protected  XtextDocument createEmptyDocument()
           
protected  void disposeElementInfo(java.lang.Object element, org.eclipse.ui.texteditor.AbstractDocumentProvider.ElementInfo info)
           
protected  void doSaveDocument(org.eclipse.core.runtime.IProgressMonitor monitor, java.lang.Object element, org.eclipse.jface.text.IDocument document, boolean overwrite)
           
protected  void doUpdateStateCache(java.lang.Object element)
           
 java.lang.String getEncoding(java.lang.Object element)
           
 IResourceForEditorInputFactory getResourceForEditorInputFactory()
           
 boolean isDeleted(java.lang.Object element)
           
 boolean isModifiable(java.lang.Object element)
           
 boolean isReadOnly(java.lang.Object element)
           
 boolean isSynchronized(java.lang.Object element)
           
protected  boolean isWorkspaceExternalEditorInput(java.lang.Object element)
           
protected  void loadResource(XtextResource resource, java.lang.String document, java.lang.String encoding)
           
protected  void removeUnchangedElementListeners(java.lang.Object element, org.eclipse.ui.texteditor.AbstractDocumentProvider.ElementInfo info)
           
protected  boolean setDocumentContent(org.eclipse.jface.text.IDocument document, org.eclipse.ui.IEditorInput editorInput, java.lang.String encoding)
           
 void setResourceForEditorInputFactory(IResourceForEditorInputFactory resourceForEditorInputFactory)
           
protected  void updateCache(org.eclipse.ui.IURIEditorInput input)
           
 
Methods inherited from class org.eclipse.ui.editors.text.FileDocumentProvider
cacheEncodingState, checkSynchronizationState, computeModificationStamp, doResetDocument, doSynchronize, doValidateState, getContentType, getElementInfo, getModificationStamp, getOperationRunner, getPersistedEncoding, getResetRule, getSaveRule, getSynchronizationStamp, getSynchronizeRule, getValidateStateRule, handleElementContentChanged, handleElementDeleted, handleElementMoved, persistEncoding, readUTF8BOM, refreshFile, refreshFile, setDocumentContent
 
Methods inherited from class org.eclipse.ui.editors.text.StorageDocumentProvider
getDefaultEncoding, handleCoreException, isNotSynchronizedException, setDocumentContent, setDocumentContent, setEncoding, setupDocument, updateCache
 
Methods inherited from class org.eclipse.ui.texteditor.AbstractDocumentProvider
aboutToChange, addElementStateListener, canSaveDocument, changed, connect, connected, disconnect, disconnected, executeOperation, fireElementContentAboutToBeReplaced, fireElementContentReplaced, fireElementDeleted, fireElementDirtyStateChanged, fireElementMoved, fireElementStateChangeFailed, fireElementStateChanging, fireElementStateValidationChanged, getAnnotationModel, getConnectedElements, getDocument, getProgressMonitor, getStatus, invalidatesState, isStateValidated, mustSaveDocument, removeElementStateListener, 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
 

Constructor Detail

XtextDocumentProvider

public XtextDocumentProvider()
Method Detail

createEmptyDocument

protected XtextDocument createEmptyDocument()
Overrides:
createEmptyDocument in class org.eclipse.ui.editors.text.StorageDocumentProvider

createDocument

protected org.eclipse.jface.text.IDocument createDocument(java.lang.Object element)
                                                   throws org.eclipse.core.runtime.CoreException
Overrides:
createDocument in class org.eclipse.ui.editors.text.StorageDocumentProvider
Throws:
org.eclipse.core.runtime.CoreException

isDeleted

public boolean isDeleted(java.lang.Object element)
Specified by:
isDeleted in interface org.eclipse.ui.texteditor.IDocumentProvider
Overrides:
isDeleted in class org.eclipse.ui.editors.text.FileDocumentProvider

setDocumentContent

protected boolean setDocumentContent(org.eclipse.jface.text.IDocument document,
                                     org.eclipse.ui.IEditorInput editorInput,
                                     java.lang.String encoding)
                              throws org.eclipse.core.runtime.CoreException
Overrides:
setDocumentContent in class org.eclipse.ui.editors.text.FileDocumentProvider
Throws:
org.eclipse.core.runtime.CoreException

disposeElementInfo

protected void disposeElementInfo(java.lang.Object element,
                                  org.eclipse.ui.texteditor.AbstractDocumentProvider.ElementInfo info)
Overrides:
disposeElementInfo in class org.eclipse.ui.editors.text.FileDocumentProvider

loadResource

protected void loadResource(XtextResource resource,
                            java.lang.String document,
                            java.lang.String encoding)
                     throws org.eclipse.core.runtime.CoreException
Throws:
org.eclipse.core.runtime.CoreException

createElementInfo

protected org.eclipse.ui.texteditor.AbstractDocumentProvider.ElementInfo createElementInfo(java.lang.Object element)
                                                                                    throws org.eclipse.core.runtime.CoreException
Overrides:
createElementInfo in class org.eclipse.ui.editors.text.FileDocumentProvider
Throws:
org.eclipse.core.runtime.CoreException

addUnchangedElementListeners

protected void addUnchangedElementListeners(java.lang.Object element,
                                            org.eclipse.ui.texteditor.AbstractDocumentProvider.ElementInfo info)
Overrides:
addUnchangedElementListeners in class org.eclipse.ui.texteditor.AbstractDocumentProvider

removeUnchangedElementListeners

protected void removeUnchangedElementListeners(java.lang.Object element,
                                               org.eclipse.ui.texteditor.AbstractDocumentProvider.ElementInfo info)
Overrides:
removeUnchangedElementListeners in class org.eclipse.ui.texteditor.AbstractDocumentProvider

createAnnotationModel

protected org.eclipse.jface.text.source.IAnnotationModel createAnnotationModel(java.lang.Object element)
                                                                        throws org.eclipse.core.runtime.CoreException
Overrides:
createAnnotationModel in class org.eclipse.ui.editors.text.FileDocumentProvider
Throws:
org.eclipse.core.runtime.CoreException

setResourceForEditorInputFactory

public void setResourceForEditorInputFactory(IResourceForEditorInputFactory resourceForEditorInputFactory)

getResourceForEditorInputFactory

public IResourceForEditorInputFactory getResourceForEditorInputFactory()

getEncoding

public java.lang.String getEncoding(java.lang.Object element)
Specified by:
getEncoding in interface org.eclipse.ui.editors.text.IStorageDocumentProvider
Overrides:
getEncoding in class org.eclipse.ui.editors.text.StorageDocumentProvider

isSynchronized

public boolean isSynchronized(java.lang.Object element)
Specified by:
isSynchronized in interface org.eclipse.ui.texteditor.IDocumentProviderExtension3
Overrides:
isSynchronized in class org.eclipse.ui.editors.text.FileDocumentProvider

isModifiable

public boolean isModifiable(java.lang.Object element)
Specified by:
isModifiable in interface org.eclipse.ui.texteditor.IDocumentProviderExtension
Overrides:
isModifiable in class org.eclipse.ui.editors.text.FileDocumentProvider

isReadOnly

public boolean isReadOnly(java.lang.Object element)
Specified by:
isReadOnly in interface org.eclipse.ui.texteditor.IDocumentProviderExtension
Overrides:
isReadOnly in class org.eclipse.ui.editors.text.StorageDocumentProvider

isWorkspaceExternalEditorInput

protected boolean isWorkspaceExternalEditorInput(java.lang.Object element)
Since:
2.3

updateCache

protected void updateCache(org.eclipse.ui.IURIEditorInput input)
                    throws org.eclipse.core.runtime.CoreException
Throws:
org.eclipse.core.runtime.CoreException
Since:
2.3

doSaveDocument

protected void doSaveDocument(org.eclipse.core.runtime.IProgressMonitor monitor,
                              java.lang.Object element,
                              org.eclipse.jface.text.IDocument document,
                              boolean overwrite)
                       throws org.eclipse.core.runtime.CoreException
Overrides:
doSaveDocument in class org.eclipse.ui.editors.text.FileDocumentProvider
Throws:
org.eclipse.core.runtime.CoreException

doUpdateStateCache

protected void doUpdateStateCache(java.lang.Object element)
                           throws org.eclipse.core.runtime.CoreException
Overrides:
doUpdateStateCache in class org.eclipse.ui.editors.text.StorageDocumentProvider
Throws:
org.eclipse.core.runtime.CoreException