Class AbstractMultiPageEditor

  • All Implemented Interfaces:
    org.eclipse.core.runtime.IAdaptable, org.eclipse.core.runtime.IExecutableExtension, org.eclipse.jface.dialogs.IPageChangeProvider, org.eclipse.ui.IEditorPart, org.eclipse.ui.ISaveablePart, org.eclipse.ui.IWorkbenchPart, org.eclipse.ui.IWorkbenchPart2, org.eclipse.ui.IWorkbenchPart3, org.eclipse.ui.part.IWorkbenchPartOrientation

    public abstract class AbstractMultiPageEditor
    extends AbstractMultiPageEditor
    Abstract multipage editor, uses XtextEditor as source-page.

    The editor has correct behavior on renaming of underlying resource.

    In general clients should only add design pages through addDesignPages() and register IElementChangeListener provided by the editor in their V8Model.

    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected org.eclipse.handly.ui.IInputElementProvider inputElementProvider  
      protected boolean useStateElementListener  
      protected org.eclipse.xtext.ui.editor.XtextEditor xtextEditor  
      • Fields inherited from class org.eclipse.ui.forms.editor.FormEditor

        pages
      • Fields inherited from class org.eclipse.ui.part.MultiPageEditorPart

        PAGE_CONTAINER_SITE
      • Fields inherited from interface org.eclipse.ui.IEditorPart

        PROP_DIRTY, PROP_INPUT
      • 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
      protected abstract void addDesignPages()
      Creates and add design pages.
      protected void addPages()
      Adds xtext editor as source page and design pages provided by addDesignPages().
      protected void afterPageChange​(int oldPageIndex, int newPageIndex)
      Invoked after page will be changed
      protected void beforePageChange​(int oldPageIndex, int newPageIndex)
      Invoked before page will be changed
      protected org.eclipse.core.commands.operations.IUndoContext createUndoContext()
      Returns undo context
      void dispose()  
      protected void doReloadInput​(org.eclipse.ui.part.FileEditorInput fileEditorInput)
      Reloads editor input.
      void doSave​(org.eclipse.core.runtime.IProgressMonitor monitor)  
      void doSaveAs()  
      Object getAdapter​(Class adapter)  
      org.eclipse.handly.xtext.ui.editor.IHandlyXtextDocument getDocument()
      Returns underlying xtext document.
      String getLanguageName()  
      org.eclipse.handly.model.ISourceFile getSourceFile()
      Returns ISourceFile for model
      protected int getSourcePageIndex()
      Returns index of source page.
      protected boolean hasUnrecoverableErrors()
      Returns true if there is critical errors in resource, false otherwise
      boolean isSaveAsAllowed()  
      protected void onSetEditorInput​(org.eclipse.ui.part.FileEditorInput input, boolean reloadingInput)
      Executed right after AbstractMultiPageEditor.setInput(IEditorInput) if input is instance of FileEditorInput You should execute this method from super if override
      protected void outlinePageClosed()  
      protected void reconcile()
      Execute reconciling
      • Methods inherited from class org.eclipse.ui.forms.editor.FormEditor

        addPage, addPage, addPage, addPage, addPage, addPage, close, commitPages, configurePage, createPageContainer, createToolkit, editorDirtyStateChanged, findPage, getActiveEditor, getActivePageInstance, getCurrentPage, getToolkit, isDirty, removePage, selectReveal, setActivePage, setActivePage, setActivePage, updateActionBarContributor
      • Methods inherited from class org.eclipse.ui.part.MultiPageEditorPart

        activateSite, addPageChangedListener, createContainer, createItem, createPartControl, createSite, deactivateSite, findEditors, getActivePage, getContainer, getControl, getEditor, getPageCount, getPageImage, getPageSite, getPageText, handlePropertyChange, initializePageSwitching, removePageChangedListener, setActiveEditor, setControl, setFocus, setPageImage, setPageText
      • Methods inherited from class org.eclipse.ui.part.EditorPart

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

        addPartPropertyListener, addPropertyListener, firePartPropertyChanged, firePropertyChange, getConfigurationElement, getContentDescription, getDefaultImage, 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 interface org.eclipse.ui.IWorkbenchPart

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

      • xtextEditor

        @Inject
        protected org.eclipse.xtext.ui.editor.XtextEditor xtextEditor
      • inputElementProvider

        @Inject
        protected org.eclipse.handly.ui.IInputElementProvider inputElementProvider
      • useStateElementListener

        protected boolean useStateElementListener
    • Constructor Detail

      • AbstractMultiPageEditor

        public AbstractMultiPageEditor()
    • Method Detail

      • dispose

        public void dispose()
        Specified by:
        dispose in interface org.eclipse.ui.IWorkbenchPart
        Overrides:
        dispose in class AbstractMultiPageEditor
      • getAdapter

        public Object getAdapter​(Class adapter)
        Specified by:
        getAdapter in interface org.eclipse.core.runtime.IAdaptable
        Overrides:
        getAdapter in class org.eclipse.ui.part.MultiPageEditorPart
      • isSaveAsAllowed

        public boolean isSaveAsAllowed()
        Specified by:
        isSaveAsAllowed in interface org.eclipse.ui.ISaveablePart
        Specified by:
        isSaveAsAllowed in class org.eclipse.ui.part.EditorPart
      • getDocument

        public org.eclipse.handly.xtext.ui.editor.IHandlyXtextDocument getDocument()
        Returns underlying xtext document.
        Returns:
        IHandlyXtextDocument instance (never null)
      • getLanguageName

        public String getLanguageName()
      • doSave

        public void doSave​(org.eclipse.core.runtime.IProgressMonitor monitor)
        Specified by:
        doSave in interface org.eclipse.ui.ISaveablePart
        Specified by:
        doSave in class org.eclipse.ui.part.EditorPart
      • doSaveAs

        public void doSaveAs()
        Specified by:
        doSaveAs in interface org.eclipse.ui.ISaveablePart
        Specified by:
        doSaveAs in class org.eclipse.ui.part.EditorPart
      • doReloadInput

        protected void doReloadInput​(org.eclipse.ui.part.FileEditorInput fileEditorInput)
        Reloads editor input. Must be envoked if editor's input changed for some reasons (for ex: resource was renamed)
        Overrides:
        doReloadInput in class AbstractMultiPageEditor
        Parameters:
        fileEditorInput - new editor's input (not null)
      • createUndoContext

        protected org.eclipse.core.commands.operations.IUndoContext createUndoContext()
        Returns undo context
        Specified by:
        createUndoContext in class AbstractMultiPageEditor
        Returns:
        undo context (never null). This context is matched with workspace context and xtext document context.
      • addPages

        protected void addPages()
        Adds xtext editor as source page and design pages provided by addDesignPages(). Clients must execute this method from super if override.
        Specified by:
        addPages in class org.eclipse.ui.forms.editor.FormEditor
      • afterPageChange

        protected void afterPageChange​(int oldPageIndex,
                                       int newPageIndex)
        Description copied from class: AbstractMultiPageEditor
        Invoked after page will be changed
        Overrides:
        afterPageChange in class AbstractMultiPageEditor
        Parameters:
        oldPageIndex - index of active page before change
        newPageIndex - index of changed to page
      • beforePageChange

        protected void beforePageChange​(int oldPageIndex,
                                        int newPageIndex)
        Description copied from class: AbstractMultiPageEditor
        Invoked before page will be changed
        Overrides:
        beforePageChange in class AbstractMultiPageEditor
        Parameters:
        oldPageIndex - index of active page before page change
        newPageIndex - index of changed to page
      • addDesignPages

        protected abstract void addDesignPages()
                                        throws org.eclipse.ui.PartInitException
        Creates and add design pages. Pages can be added through FormEditor.addPage(org.eclipse.ui.forms.editor.IFormPage) method.
        Throws:
        org.eclipse.ui.PartInitException - if one or more pages cannot be created
      • outlinePageClosed

        protected void outlinePageClosed()
      • reconcile

        protected void reconcile()
                          throws org.eclipse.core.runtime.CoreException
        Description copied from class: AbstractMultiPageEditor
        Execute reconciling
        Specified by:
        reconcile in class AbstractMultiPageEditor
        Throws:
        org.eclipse.core.runtime.CoreException - if something goes wrong while reconciling