Package com._1c.g5.ides.ui.formeditor
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
-
- 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
- Direct Known Subclasses:
AbstractMultiPageEditor
public abstract class AbstractMultiPageEditor extends org.eclipse.ui.forms.editor.FormEditor
Abstract multipage form-based editor for editors with one source page and several form pagesAbstractFormPage
.Clients should register handle model elements change listener through
registerModelChangeListener(IElementChangeListener)
.Clients should use undo context
getUndoContext()
for all operations for correct undo\redo behavior.This editor provides its own selection provider
AbstractMultiPageEditor.FormEditorSelectionProvider
.The editor has correct behavior on deleting of underlying resource.
- See Also:
FormEditorActionBarContributor
,AbstractFormPage
-
-
Constructor Summary
Constructors Constructor Description AbstractMultiPageEditor()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
activateSourcePage()
Activates source page.void
addSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener listener)
Selection change listener registration in editor's selection providerprotected void
afterPageChange(int oldPageIndex, int newPageIndex)
Invoked after page will be changedprotected void
beforePageChange(int oldPageIndex, int newPageIndex)
Invoked before page will be changedprotected void
createPages()
Registers listeners for internal use.protected abstract org.eclipse.core.commands.operations.IUndoContext
createUndoContext()
Should return newIUndoContext
instancevoid
dispose()
protected void
doReloadInput(org.eclipse.ui.part.FileEditorInput fileEditorInput)
Reloads editor input.Object
getSelectedPage()
Returns selected page or null if no page selected or selected page is not instance ofIFormPage
orITextEditor
org.eclipse.jface.viewers.ISelection
getSelection()
Returns editor's selection.abstract org.eclipse.handly.model.ISourceFile
getSourceFile()
ReturnsISourceFile
for modelprotected int
getSourcePageIndex()
Returns index of source page.org.eclipse.core.commands.operations.IUndoContext
getUndoContext()
Returns the editor's undo context.protected boolean
hasUnrecoverableErrors()
Returns true if there is no way of building form by model thru error in resource, false other way.void
init(org.eclipse.ui.IEditorSite site, org.eclipse.ui.IEditorInput input)
Initializes editor.protected void
onSetEditorInput(org.eclipse.ui.part.FileEditorInput input, boolean inputChanged)
Executed right aftersetInput(IEditorInput)
if input is instance ofFileEditorInput
You should execute this method from super if overrideprotected void
pageChange(int newPageIndex)
protected abstract void
reconcile()
Execute reconcilingprotected void
refresh(AbstractFormPage formPage, boolean hasErrors)
Refresh form and display validation issues.void
refreshActiveFormPage(boolean force)
This method executes form refresh if form page is active.protected abstract void
registerModelChangeListener(org.eclipse.handly.model.IElementChangeListener elementChangeListener)
Model change listener registration.protected abstract void
removeModelChangeListener(org.eclipse.handly.model.IElementChangeListener elementChangeListener)
Removes model change listener.void
removeSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener listener)
Remove listener from registered listeners in the editor's selection provider.protected void
setInput(org.eclipse.ui.IEditorInput input)
Sets editor's input.void
setSelection(org.eclipse.jface.viewers.ISelection selection)
Sets selection.protected void
switchPage(AbstractFormPage formPage)
Performs page switch.-
Methods inherited from class org.eclipse.ui.forms.editor.FormEditor
addPage, addPage, addPage, addPage, addPage, addPage, addPages, 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, getAdapter, 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, doSave, doSaveAs, getEditorInput, getEditorSite, getTitleToolTip, isSaveAsAllowed, 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
-
init
public void init(org.eclipse.ui.IEditorSite site, org.eclipse.ui.IEditorInput input) throws org.eclipse.ui.PartInitException
Initializes editor. Redefines the editor selection provider toAbstractMultiPageEditor.FormEditorSelectionProvider
. Registers model change listener through#registerModelChangeListener()
- Specified by:
init
in interfaceorg.eclipse.ui.IEditorPart
- Overrides:
init
in classorg.eclipse.ui.forms.editor.FormEditor
- Parameters:
site
- the editor site (notnull
)input
- the editor input (notnull
)- Throws:
org.eclipse.ui.PartInitException
-
addSelectionChangedListener
public final void addSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener listener)
Selection change listener registration in editor's selection provider- Parameters:
listener
- - selection change listener (notnull
)
-
dispose
public void dispose()
- Specified by:
dispose
in interfaceorg.eclipse.ui.IWorkbenchPart
- Overrides:
dispose
in classorg.eclipse.ui.forms.editor.FormEditor
-
getSelectedPage
public Object getSelectedPage()
Returns selected page or null if no page selected or selected page is not instance ofIFormPage
orITextEditor
- Specified by:
getSelectedPage
in interfaceorg.eclipse.jface.dialogs.IPageChangeProvider
- Overrides:
getSelectedPage
in classorg.eclipse.ui.forms.editor.FormEditor
-
getSelection
public final org.eclipse.jface.viewers.ISelection getSelection()
Returns editor's selection.- Returns:
- the selection or null if nothing selected.
-
getUndoContext
public org.eclipse.core.commands.operations.IUndoContext getUndoContext()
Returns the editor's undo context. If editor's undo context is null, it will be created bycreateUndoContext()
- Returns:
IUndoContext
instance for this editor (nevernull
).
-
getSourceFile
public abstract org.eclipse.handly.model.ISourceFile getSourceFile()
ReturnsISourceFile
for model- Returns:
- root element handle (never
null
)
-
refreshActiveFormPage
public void refreshActiveFormPage(boolean force)
This method executes form refresh if form page is active.- Parameters:
force
- true if you want full refreshThis method is not intended to be overrided by clients.
-
removeSelectionChangedListener
public final void removeSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener listener)
Remove listener from registered listeners in the editor's selection provider.- Parameters:
listener
- the listener to remove (notnull
)
-
setSelection
public final void setSelection(org.eclipse.jface.viewers.ISelection selection)
Sets selection. All listeners registered throughaddSelectionChangedListener(ISelectionChangedListener)
will be notified- Parameters:
selection
- new selection (notnull
)
-
activateSourcePage
protected final void activateSourcePage()
Activates source page.
-
afterPageChange
protected void afterPageChange(int oldPageIndex, int newPageIndex)
Invoked after page will be changed- Parameters:
oldPageIndex
- index of active page before changenewPageIndex
- index of changed to page
-
beforePageChange
protected void beforePageChange(int oldPageIndex, int newPageIndex)
Invoked before page will be changed- Parameters:
oldPageIndex
- index of active page before page changenewPageIndex
- index of changed to page
-
createPages
protected void createPages()
Registers listeners for internal use. Clients must execute this method from super if override.- Overrides:
createPages
in classorg.eclipse.ui.forms.editor.FormEditor
-
createUndoContext
protected abstract org.eclipse.core.commands.operations.IUndoContext createUndoContext()
Should return newIUndoContext
instance- Returns:
- new
IUndoContext
instance (nevernull
)
-
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)- Parameters:
fileEditorInput
- new editor's input (notnull
)
-
hasUnrecoverableErrors
protected boolean hasUnrecoverableErrors()
Returns true if there is no way of building form by model thru error in resource, false other way.This method may be invoked not only from UI thread.
-
getSourcePageIndex
protected int getSourcePageIndex()
Returns index of source page.- Returns:
- source page index. Default is 0.
-
onSetEditorInput
protected void onSetEditorInput(org.eclipse.ui.part.FileEditorInput input, boolean inputChanged)
Executed right aftersetInput(IEditorInput)
if input is instance ofFileEditorInput
You should execute this method from super if override- Parameters:
input
-FileEditorInput
inputChanged
- true if input is changed from last set
-
pageChange
protected final void pageChange(int newPageIndex)
- Overrides:
pageChange
in classorg.eclipse.ui.forms.editor.FormEditor
-
registerModelChangeListener
protected abstract void registerModelChangeListener(org.eclipse.handly.model.IElementChangeListener elementChangeListener)
Model change listener registration. Editor implementators should implement this method if model has its change notification mechanism.- Parameters:
elementChangeListener
- the lelement change listener
-
removeModelChangeListener
protected abstract void removeModelChangeListener(org.eclipse.handly.model.IElementChangeListener elementChangeListener)
Removes model change listener. Executed when editor disposes. Editor implementators should implement this method if model has its change notification mechanism.- Parameters:
elementChangeListener
- the lelement change listener
-
reconcile
protected abstract void reconcile() throws org.eclipse.core.runtime.CoreException
Execute reconciling- Throws:
org.eclipse.core.runtime.CoreException
- if something goes wrong while reconciling
-
refresh
protected final void refresh(AbstractFormPage formPage, boolean hasErrors)
Refresh form and display validation issues. If there is critical errors in model, content fromAbstractFormPage.createPageErrorContent(org.eclipse.swt.widgets.Composite, org.eclipse.ui.forms.IManagedForm)
will be displayed Method must be executed in UI thread
-
setInput
protected void setInput(org.eclipse.ui.IEditorInput input)
Sets editor's input. If input is instance ofFileEditorInput
onSetEditorInput(FileEditorInput, boolean)
will be invoked.- Overrides:
setInput
in classorg.eclipse.ui.part.EditorPart
- Parameters:
input
- editors input (notnull
)
-
switchPage
protected void switchPage(AbstractFormPage formPage)
Performs page switch. Before switching reconcile will be executed and form page will be refreshed against fresh model- Parameters:
page
- page to switch to (notnull
)
-
-