Class AbstractMultiPageEditor
- java.lang.Object
-
- org.eclipse.core.commands.common.EventManager
-
- org.eclipse.ui.part.WorkbenchPart
-
- org.eclipse.ui.part.EditorPart
-
- org.eclipse.ui.part.MultiPageEditorPart
-
- org.eclipse.ui.forms.editor.FormEditor
-
- com._1c.g5.ides.ui.formeditor.AbstractMultiPageEditor
-
- com._1c.g5.ides.ui.formeditor.xtext.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, usesXtextEditor
as source-page.The editor has correct behavior on renaming of underlying resource.
In general clients should only add design pages through
addDesignPages()
and registerIElementChangeListener
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
-
Constructor Summary
Constructors Constructor Description AbstractMultiPageEditor()
-
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 byaddDesignPages()
.protected void
afterPageChange(int oldPageIndex, int newPageIndex)
Invoked after page will be changedprotected void
beforePageChange(int oldPageIndex, int newPageIndex)
Invoked before page will be changedprotected org.eclipse.core.commands.operations.IUndoContext
createUndoContext()
Returns undo contextvoid
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()
ReturnsISourceFile
for modelprotected int
getSourcePageIndex()
Returns index of source page.protected boolean
hasUnrecoverableErrors()
Returns true if there is critical errors in resource, false otherwiseboolean
isSaveAsAllowed()
protected void
onSetEditorInput(org.eclipse.ui.part.FileEditorInput input, boolean reloadingInput)
Executed right afterAbstractMultiPageEditor.setInput(IEditorInput)
if input is instance ofFileEditorInput
You should execute this method from super if overrideprotected void
outlinePageClosed()
protected void
reconcile()
Execute reconciling-
Methods inherited from class com._1c.g5.ides.ui.formeditor.AbstractMultiPageEditor
activateSourcePage, addSelectionChangedListener, createPages, getSelectedPage, getSelection, getUndoContext, init, pageChange, refresh, refreshActiveFormPage, registerModelChangeListener, removeModelChangeListener, removeSelectionChangedListener, setInput, setSelection, switchPage
-
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
-
-
-
-
Method Detail
-
dispose
public void dispose()
- Specified by:
dispose
in interfaceorg.eclipse.ui.IWorkbenchPart
- Overrides:
dispose
in classAbstractMultiPageEditor
-
getAdapter
public Object getAdapter(Class adapter)
- Specified by:
getAdapter
in interfaceorg.eclipse.core.runtime.IAdaptable
- Overrides:
getAdapter
in classorg.eclipse.ui.part.MultiPageEditorPart
-
isSaveAsAllowed
public boolean isSaveAsAllowed()
- Specified by:
isSaveAsAllowed
in interfaceorg.eclipse.ui.ISaveablePart
- Specified by:
isSaveAsAllowed
in classorg.eclipse.ui.part.EditorPart
-
getDocument
public org.eclipse.handly.xtext.ui.editor.IHandlyXtextDocument getDocument()
Returns underlying xtext document.- Returns:
IHandlyXtextDocument
instance (nevernull
)
-
getLanguageName
public String getLanguageName()
-
doSave
public void doSave(org.eclipse.core.runtime.IProgressMonitor monitor)
- Specified by:
doSave
in interfaceorg.eclipse.ui.ISaveablePart
- Specified by:
doSave
in classorg.eclipse.ui.part.EditorPart
-
doSaveAs
public void doSaveAs()
- Specified by:
doSaveAs
in interfaceorg.eclipse.ui.ISaveablePart
- Specified by:
doSaveAs
in classorg.eclipse.ui.part.EditorPart
-
getSourceFile
public org.eclipse.handly.model.ISourceFile getSourceFile()
Description copied from class:AbstractMultiPageEditor
ReturnsISourceFile
for model- Specified by:
getSourceFile
in classAbstractMultiPageEditor
- Returns:
- root element handle (never
null
)
-
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 classAbstractMultiPageEditor
- Parameters:
fileEditorInput
- new editor's input (notnull
)
-
createUndoContext
protected org.eclipse.core.commands.operations.IUndoContext createUndoContext()
Returns undo context- Specified by:
createUndoContext
in classAbstractMultiPageEditor
- 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 byaddDesignPages()
. Clients must execute this method from super if override.- Specified by:
addPages
in classorg.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 classAbstractMultiPageEditor
- Parameters:
oldPageIndex
- index of active page before changenewPageIndex
- 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 classAbstractMultiPageEditor
- Parameters:
oldPageIndex
- index of active page before page changenewPageIndex
- index of changed to page
-
addDesignPages
protected abstract void addDesignPages() throws org.eclipse.ui.PartInitException
Creates and add design pages. Pages can be added throughFormEditor.addPage(org.eclipse.ui.forms.editor.IFormPage)
method.- Throws:
org.eclipse.ui.PartInitException
- if one or more pages cannot be created
-
getSourcePageIndex
protected int getSourcePageIndex()
Description copied from class:AbstractMultiPageEditor
Returns index of source page.- Overrides:
getSourcePageIndex
in classAbstractMultiPageEditor
- Returns:
- source page index. Default is 0.
-
hasUnrecoverableErrors
protected boolean hasUnrecoverableErrors()
Returns true if there is critical errors in resource, false otherwise- Overrides:
hasUnrecoverableErrors
in classAbstractMultiPageEditor
-
onSetEditorInput
protected void onSetEditorInput(org.eclipse.ui.part.FileEditorInput input, boolean reloadingInput)
Description copied from class:AbstractMultiPageEditor
Executed right afterAbstractMultiPageEditor.setInput(IEditorInput)
if input is instance ofFileEditorInput
You should execute this method from super if override- Overrides:
onSetEditorInput
in classAbstractMultiPageEditor
- Parameters:
input
-FileEditorInput
reloadingInput
- true if input is changed from last set
-
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 classAbstractMultiPageEditor
- Throws:
org.eclipse.core.runtime.CoreException
- if something goes wrong while reconciling
-
-