Class CommonXtextEditor<T extends org.eclipse.emf.ecore.EObject,​R>

  • Type Parameters:
    T - the type of the top-level language element
    R - the model type corresponding to T
    All Implemented Interfaces:
    IUpdatableEditor, org.eclipse.core.runtime.IAdaptable, org.eclipse.core.runtime.IExecutableExtension, org.eclipse.ui.IEditorPart, org.eclipse.ui.INavigationLocationProvider, org.eclipse.ui.IPersistable, org.eclipse.ui.IPersistableEditor, org.eclipse.ui.IReusableEditor, org.eclipse.ui.ISaveablePart, org.eclipse.ui.ISaveablesSource, org.eclipse.ui.IWorkbenchPart, org.eclipse.ui.IWorkbenchPart2, org.eclipse.ui.IWorkbenchPart3, org.eclipse.ui.part.IWorkbenchPartOrientation, org.eclipse.ui.texteditor.ITextEditor, org.eclipse.ui.texteditor.ITextEditorExtension, org.eclipse.ui.texteditor.ITextEditorExtension2, org.eclipse.ui.texteditor.ITextEditorExtension3, org.eclipse.ui.texteditor.ITextEditorExtension4, org.eclipse.ui.texteditor.ITextEditorExtension5, org.eclipse.ui.texteditor.ITextEditorExtension6, org.eclipse.xtext.ui.editor.DirtyStateEditorSupport.IDirtyStateEditorSupportClient, org.eclipse.xtext.ui.editor.DirtyStateEditorSupport.IDirtyStateEditorSupportClientExtension
    Direct Known Subclasses:
    AbstractXTextEditor

    public abstract class CommonXtextEditor<T extends org.eclipse.emf.ecore.EObject,​R>
    extends org.eclipse.xtext.ui.editor.XtextEditor
    implements IUpdatableEditor
    A common extension of the general org.eclipse.xtext.ui.editor.XtextEditor. The extension hooks into the dispose- and the getDocument-mechanism in order to register or unregister a de.uni_hildesheim.sse.dslcore.ui.editors.AbstractModelChangeListener instance, which will update the editor if the underlying data model changes.
    Author:
    kroeher, Holger Eichelberger
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      private class  CommonXtextEditor.UnitOfWork
      Implements the xText unit of work for building the model.
      • Nested classes/interfaces inherited from class org.eclipse.xtext.ui.editor.XtextEditor

        org.eclipse.xtext.ui.editor.XtextEditor.DeleteNextSubWordAction, org.eclipse.xtext.ui.editor.XtextEditor.DeletePreviousSubWordAction, org.eclipse.xtext.ui.editor.XtextEditor.NavigateNextSubWordAction, org.eclipse.xtext.ui.editor.XtextEditor.NavigatePreviousSubWordAction, org.eclipse.xtext.ui.editor.XtextEditor.NextSubWordAction, org.eclipse.xtext.ui.editor.XtextEditor.PreviousSubWordAction, org.eclipse.xtext.ui.editor.XtextEditor.SelectNextSubWordAction, org.eclipse.xtext.ui.editor.XtextEditor.SelectPreviousSubWordAction, org.eclipse.xtext.ui.editor.XtextEditor.SmartLineStartAction
      • Nested classes/interfaces inherited from class org.eclipse.ui.texteditor.AbstractTextEditor

        org.eclipse.ui.texteditor.AbstractTextEditor.AbstractSelectionChangedListener, org.eclipse.ui.texteditor.AbstractTextEditor.ColumnSupport, org.eclipse.ui.texteditor.AbstractTextEditor.IdMapEntry, org.eclipse.ui.texteditor.AbstractTextEditor.LineEndAction, org.eclipse.ui.texteditor.AbstractTextEditor.LineStartAction, org.eclipse.ui.texteditor.AbstractTextEditor.SelectionProvider, org.eclipse.ui.texteditor.AbstractTextEditor.TextEditorSavable
      • Nested classes/interfaces inherited from interface org.eclipse.ui.texteditor.ITextEditorExtension3

        org.eclipse.ui.texteditor.ITextEditorExtension3.InsertMode
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected AbstractModelChangeListener modelListener
      The listener which will be registered to this editor in order to receive notifications about updates of the underlying model.
      • Fields inherited from class org.eclipse.xtext.ui.editor.XtextEditor

        DEFAULT_KEY_BINDING_SCOPE, ERROR_ANNOTATION_TYPE, ID, INFO_ANNOTATION_TYPE, KEY_BINDING_SCOPE, WARNING_ANNOTATION_TYPE
      • Fields inherited from class org.eclipse.ui.editors.text.TextEditor

        fEncodingSupport
      • Fields inherited from class org.eclipse.ui.texteditor.AbstractDecoratedTextEditor

        DEFAULT_OVERVIEW_RULER_CONTEXT_MENU_ID, fAnnotationAccess, fIsUpdatingMarkerViews, fLineNumberRulerColumn, fOverviewRuler, fSourceViewerDecorationSupport
      • Fields inherited from class org.eclipse.ui.texteditor.AbstractTextEditor

        ACTION_MAP, COMMON_EDITOR_CONTEXT_MENU_ID, COMMON_RULER_CONTEXT_MENU_ID, DEFAULT_EDITOR_CONTEXT_MENU_ID, DEFAULT_RULER_CONTEXT_MENU_ID, fErrorLabel, PREFERENCE_COLOR_BACKGROUND, PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT, PREFERENCE_COLOR_FIND_SCOPE, PREFERENCE_COLOR_FOREGROUND, PREFERENCE_COLOR_FOREGROUND_SYSTEM_DEFAULT, PREFERENCE_COLOR_SELECTION_BACKGROUND, PREFERENCE_COLOR_SELECTION_BACKGROUND_SYSTEM_DEFAULT, PREFERENCE_COLOR_SELECTION_FOREGROUND, PREFERENCE_COLOR_SELECTION_FOREGROUND_SYSTEM_DEFAULT, PREFERENCE_FONT, PREFERENCE_HOVER_ENRICH_MODE, PREFERENCE_HYPERLINK_KEY_MODIFIER, PREFERENCE_HYPERLINK_KEY_MODIFIER_MASK, PREFERENCE_HYPERLINKS_ENABLED, PREFERENCE_NAVIGATION_SMART_HOME_END, PREFERENCE_RULER_CONTRIBUTIONS, PREFERENCE_SHOW_CARET_OFFSET, PREFERENCE_SHOW_CARRIAGE_RETURN, PREFERENCE_SHOW_ENCLOSED_IDEOGRAPHIC_SPACES, PREFERENCE_SHOW_ENCLOSED_SPACES, PREFERENCE_SHOW_ENCLOSED_TABS, PREFERENCE_SHOW_LEADING_IDEOGRAPHIC_SPACES, PREFERENCE_SHOW_LEADING_SPACES, PREFERENCE_SHOW_LEADING_TABS, PREFERENCE_SHOW_LINE_FEED, PREFERENCE_SHOW_SELECTION_SIZE, PREFERENCE_SHOW_TRAILING_IDEOGRAPHIC_SPACES, PREFERENCE_SHOW_TRAILING_SPACES, PREFERENCE_SHOW_TRAILING_TABS, PREFERENCE_SHOW_WHITESPACE_CHARACTERS, PREFERENCE_TEXT_DRAG_AND_DROP_ENABLED, PREFERENCE_USE_CUSTOM_CARETS, PREFERENCE_WHITESPACE_CHARACTER_ALPHA_VALUE, PREFERENCE_WIDE_CARET, PREFERENCE_WORD_WRAP_ENABLED, TAG_SELECTION_HORIZONTAL_PIXEL, TAG_SELECTION_LENGTH, TAG_SELECTION_OFFSET, TAG_SELECTION_TOP_PIXEL, VERTICAL_RULER_WIDTH
      • Fields inherited from interface org.eclipse.ui.IEditorPart

        PROP_DIRTY, PROP_INPUT
      • Fields inherited from interface org.eclipse.ui.texteditor.ITextEditorExtension3

        INSERT, SMART_INSERT
      • Fields inherited from interface org.eclipse.ui.IWorkbenchPart

        PROP_TITLE
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      void buildModel​(org.eclipse.xtext.ui.editor.model.IXtextDocument doc)
      Creates the model in the given xText document doc.
      protected abstract TranslationResult<R> createModel​(T root, java.net.URI uri)
      Creates a model (while {@link #buildModel(IXtextDocument)).
      void dispose()  
      void doRevertToSaved()  
      void doSave​(org.eclipse.core.runtime.IProgressMonitor progressMonitor)  
      void doSaveAs()  
      protected abstract java.lang.String getBundleId()
      Returns the current bundle id.
      org.eclipse.xtext.ui.editor.model.IXtextDocument getDocument()  
      private EASyLoggerFactory.EASyLogger getLogger()
      Returns the logger for this class.
      protected abstract IResourceInitializer getResourceInitializer()
      Returns the resource initializer.
      private void onSave()
      Builds up the IVML model on saving the document in the editor.
      protected abstract void print​(TranslationResult<R> result, java.io.Writer out)
      Prints the translation result for debugging.
      private void processMessages​(TranslationResult<?> result)
      Processes the messages.
      void updateEditor()
      Updates this editor.
      • Methods inherited from class org.eclipse.xtext.ui.editor.XtextEditor

        addVerifyListener, collectContextMenuPreferencePages, configureSourceViewerDecorationSupport, configureToggleCommentAction, createActions, createAnnotationAccess, createDeleteNextSubWordAction, createDeletePreviousSubWordAction, createNavigateNextSubWordAction, createNavigatePreviousSubWordAction, createNavigationActions, createPartControl, createSelectNextSubWordAction, createSelectPreviousSubWordAction, createSmartLineStartAction, createSourceViewer, createWordIterator, doSetInput, editorContextMenuAboutToShow, forceReconcile, getAdapter, getDefaultImage, getDirtyStateEditorSupport, getInternalSourceViewer, getLanguageName, getResource, getShell, getUndoRedoOperationApprover, getXtextEditorCallback, getXtextSourceViewerConfiguration, handlePreferenceStoreChanged, init, initializeDirtyStateSupport, initializeKeyBindingScopes, initializeViewerColors, installFoldingSupport, installProjectionSupport, isContentAssistAvailable, isNavigationTarget, outlinePageClosed, removeDirtyStateSupport, removeVerifyListener, resetProjection, reveal, rulerContextMenuAboutToShow, setKeyBindingScope, setLanguageName, setPreferenceStore, setXtextEditorCallback, uninstallFoldingSupport, updatedTitleImage, updateState, updateStatusLine, validateEditorInputState, validateState
      • Methods inherited from class org.eclipse.ui.editors.text.TextEditor

        getStatusBanner, getStatusHeader, getStatusMessage, initializeEditor, installEncodingSupport, isSaveAsAllowed, updatePropertyDependentActions
      • Methods inherited from class org.eclipse.ui.texteditor.AbstractDecoratedTextEditor

        collectOverviewRulerMenuPreferencePages, collectRulerMenuPreferencePages, createAnnotationRulerColumn, createChangeHover, createChangeRulerColumn, createColumnSupport, createCompositeRuler, createContextMenuListener, createLineNumberRulerColumn, createOverviewRuler, createOverviewRulerContextMenu, createShowInTargetList, createStatusControl, createVerticalRuler, disposeDocumentProvider, getAnnotationAccess, getAnnotationPreferenceLookup, getAnnotationPreferences, getDocumentProvider, getOverviewRuler, getOverviewRulerContextMenuId, getSharedColors, getSourceViewerDecorationSupport, gotoAnnotation, gotoMarker, handleEditorInputChanged, hideOverviewRuler, initializeLineNumberRulerColumn, isChangeInformationShowing, isEditable, isErrorStatus, isLineNumberRulerVisible, isOverviewRulerVisible, isOverwriteModeEnabled, isPrefQuickDiffAlwaysOn, isSpacesAsTabsDeletionEnabled, isTabsToSpacesConversionEnabled, openSaveErrorDialog, overviewRulerContextMenuAboutToShow, performSaveAs, setDocumentProvider, setOverviewRulerContextMenuId, showChangeInformation, showOverviewRuler, showRevisionInformation, updateMarkerViews
      • Methods inherited from class org.eclipse.ui.texteditor.StatusTextEditor

        handleElementContentReplaced, sanityCheckState, setFocus, updatePartControl, updateStatusField
      • Methods inherited from class org.eclipse.ui.texteditor.AbstractTextEditor

        addAction, addAction, addGroup, addRulerContextMenuListener, adjustHighlightRange, affectsTextPresentation, canHandleMove, close, configureInsertMode, containsSavedState, createEmptyNavigationLocation, createNavigationLocation, createUndoRedoActions, doGetSelection, doRestoreState, doSetSelection, editorSaved, enableOverwriteMode, enableSanityChecking, enableStateValidation, findAnnotation, firePropertyChange, getAction, getActiveSaveables, getContextMenuListener, getCoverage, getCursorListener, getCursorPosition, getEditorContextMenuId, getFontPropertyPreferenceKey, getHelpContextId, getHighlightRange, getInitialWordWrapStatus, getInsertMode, getLegalInsertModes, getPreferenceStore, getProgressMonitor, getRangeIndicator, getRulerContextMenuId, getRulerMouseListener, getSaveables, getSelectionChangedListener, getSelectionProvider, getSourceViewer, getSourceViewerConfiguration, getStatusField, getStatusLineManager, getVerticalRuler, handleCursorPositionChanged, handleExceptionOnSave, handleInsertModeChanged, initializeDragAndDrop, installCodeMiningProviders, installTabsToSpacesConverter, installTextDragAndDrop, internalInit, isBlockSelectionModeEnabled, isBlockSelectionModeSupported, isDirty, isEditorInputIncludedInContextMenu, isEditorInputModifiable, isEditorInputReadOnly, isInInsertMode, isVisible, isWordWrapEnabled, isWordWrapSupported, markAsContentDependentAction, markAsPropertyDependentAction, markAsSelectionDependentAction, markAsStateDependentAction, markInNavigationHistory, modelOffset2WidgetOffset, performRevert, performSave, rememberSelection, removeActionActivationCode, removeRulerContextMenuListener, resetHighlightRange, restoreSelection, restoreState, safelySanityCheckState, saveState, selectAndReveal, selectAndReveal, setAction, setActionActivationCode, setBlockSelectionMode, setCompatibilityMode, setDocumentProvider, setEditorContextMenuId, setHelpContextId, setHighlightRange, setInput, setInputWithNotify, setInsertMode, setKeyBindingScopes, setRangeIndicator, setRulerContextMenuId, setSourceViewerConfiguration, setStatusField, setStatusLineErrorMessage, setStatusLineMessage, setWordWrap, showHighlightRangeOnly, showsHighlightRangeOnly, uninstallTabsToSpacesConverter, uninstallTextDragAndDrop, updateContentDependentActions, updateContributedRulerColumns, updateIndentPrefixes, updateSelectionDependentActions, updateStateDependentActions, updateStatusFields, widgetOffset2ModelOffset
      • Methods inherited from class org.eclipse.ui.part.EditorPart

        checkSite, getEditorInput, getEditorSite, getTitleToolTip, isSaveOnCloseNeeded, setContentDescription, setInitializationData, setPartName
      • Methods inherited from class org.eclipse.ui.part.WorkbenchPart

        addPartPropertyListener, addPropertyListener, firePartPropertyChanged, getConfigurationElement, getContentDescription, getOrientation, getPartName, getPartProperties, getPartProperty, getSite, getTitle, getTitleImage, removePartPropertyListener, removePropertyListener, setPartProperty, setSite, setTitle, setTitleImage, setTitleToolTip, showBusy
      • Methods inherited from class org.eclipse.core.commands.common.EventManager

        addListenerObject, clearListeners, getListeners, isListenerAttached, removeListenerObject
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface org.eclipse.xtext.ui.editor.DirtyStateEditorSupport.IDirtyStateEditorSupportClient

        isDirty
      • Methods inherited from interface org.eclipse.ui.IEditorPart

        getEditorInput, getEditorSite
      • Methods inherited from interface org.eclipse.ui.ISaveablePart

        isSaveOnCloseNeeded
      • Methods inherited from interface org.eclipse.ui.IWorkbenchPart

        addPropertyListener, getSite, getTitle, getTitleImage, getTitleToolTip, removePropertyListener
    • Field Detail

      • modelListener

        protected AbstractModelChangeListener modelListener
        The listener which will be registered to this editor in order to receive notifications about updates of the underlying model.
    • Constructor Detail

      • CommonXtextEditor

        public CommonXtextEditor()
    • Method Detail

      • dispose

        public void dispose()
        Specified by:
        dispose in interface org.eclipse.ui.IWorkbenchPart
        Overrides:
        dispose in class org.eclipse.xtext.ui.editor.XtextEditor
      • getDocument

        public org.eclipse.xtext.ui.editor.model.IXtextDocument getDocument()
        Specified by:
        getDocument in interface org.eclipse.xtext.ui.editor.DirtyStateEditorSupport.IDirtyStateEditorSupportClient
        Overrides:
        getDocument in class org.eclipse.xtext.ui.editor.XtextEditor
      • doSaveAs

        public void doSaveAs()
        Specified by:
        doSaveAs in interface org.eclipse.ui.ISaveablePart
        Overrides:
        doSaveAs in class org.eclipse.xtext.ui.editor.XtextEditor
      • doSave

        public void doSave​(org.eclipse.core.runtime.IProgressMonitor progressMonitor)
        Specified by:
        doSave in interface org.eclipse.ui.ISaveablePart
        Overrides:
        doSave in class org.eclipse.xtext.ui.editor.XtextEditor
      • doRevertToSaved

        public void doRevertToSaved()
        Specified by:
        doRevertToSaved in interface org.eclipse.ui.texteditor.ITextEditor
        Overrides:
        doRevertToSaved in class org.eclipse.xtext.ui.editor.XtextEditor
      • onSave

        private void onSave()
        Builds up the IVML model on saving the document in the editor.
      • buildModel

        public void buildModel​(org.eclipse.xtext.ui.editor.model.IXtextDocument doc)
        Description copied from interface: IUpdatableEditor
        Creates the model in the given xText document doc. This method synchronizes over doc in order to avoid reentrant model validation.
        Specified by:
        buildModel in interface IUpdatableEditor
        Parameters:
        doc - the document to create the model for
      • processMessages

        private void processMessages​(TranslationResult<?> result)
                              throws org.eclipse.core.runtime.CoreException
        Processes the messages.
        Parameters:
        result - the translation result
        Throws:
        org.eclipse.core.runtime.CoreException - in case of marker processing problems
      • getBundleId

        protected abstract java.lang.String getBundleId()
        Returns the current bundle id.
        Returns:
        the current bundle identification
      • createModel

        protected abstract TranslationResult<R> createModel​(T root,
                                                            java.net.URI uri)
        Creates a model (while {@link #buildModel(IXtextDocument)).
        Parameters:
        root - the root language element
        uri - the URI of the underlying document
        Returns:
        the translation result for the created model
      • getResourceInitializer

        protected abstract IResourceInitializer getResourceInitializer()
        Returns the resource initializer.
        Returns:
        the resource initializer
      • print

        protected abstract void print​(TranslationResult<R> result,
                                      java.io.Writer out)
        Prints the translation result for debugging.
        Parameters:
        result - the translation result to be printed
        out - the output stream / writer