Class EmftvmEditor
- 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.m2m.atl.emftvm.presentation.EmftvmEditor
-
- All Implemented Interfaces:
org.eclipse.core.runtime.IAdaptable,org.eclipse.core.runtime.IExecutableExtension,org.eclipse.emf.common.ui.viewer.IViewerProvider,org.eclipse.emf.edit.domain.IEditingDomainProvider,org.eclipse.jface.action.IMenuListener,org.eclipse.jface.dialogs.IPageChangeProvider,org.eclipse.jface.viewers.ISelectionProvider,org.eclipse.ui.ide.IGotoMarker,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 class EmftvmEditor extends org.eclipse.ui.part.MultiPageEditorPart implements org.eclipse.emf.edit.domain.IEditingDomainProvider, org.eclipse.jface.viewers.ISelectionProvider, org.eclipse.jface.action.IMenuListener, org.eclipse.emf.common.ui.viewer.IViewerProvider, org.eclipse.ui.ide.IGotoMarkerThis is an example of a Emftvm model editor.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description classEmftvmEditor.ReverseAdapterFactoryContentProvider
-
Field Summary
Fields Modifier and Type Field Description protected org.eclipse.emf.edit.provider.ComposedAdapterFactoryadapterFactoryThis is the one adapter factory used for providing views of the model.protected java.util.Collection<org.eclipse.emf.ecore.resource.Resource>changedResourcesResources that have been changed since last activation.protected org.eclipse.ui.views.contentoutline.IContentOutlinePagecontentOutlinePageThis is the content outline page.protected org.eclipse.jface.action.IStatusLineManagercontentOutlineStatusLineManagerThis is a kludge...protected org.eclipse.jface.viewers.TreeViewercontentOutlineViewerThis is the content outline page's viewer.protected org.eclipse.jface.viewers.ViewercurrentViewerThis keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer.protected org.eclipse.emf.common.ui.ViewerPanecurrentViewerPaneThis keeps track of the active viewer pane, in the book.protected org.eclipse.emf.edit.domain.AdapterFactoryEditingDomaineditingDomainThis keeps track of the editing domain that is used to track all changes to the model.protected org.eclipse.jface.viewers.ISelectioneditorSelectionThis keeps track of the selection of the editor as a whole.protected org.eclipse.jface.viewers.ListViewerlistViewerThis shows how a list view works.protected org.eclipse.emf.common.ui.MarkerHelpermarkerHelperThe MarkerHelper is responsible for creating workspace resource markers presented in Eclipse's Problems View.protected org.eclipse.jface.viewers.TreeViewerparentViewerThis inverts the roll of parent and child in the content provider and show parents as a tree.protected org.eclipse.ui.IPartListenerpartListenerThis listens for when the outline becomes activeprotected org.eclipse.emf.ecore.util.EContentAdapterproblemIndicationAdapterAdapter used to update the problem indication when resources are demanded loaded.protected java.util.List<org.eclipse.ui.views.properties.PropertySheetPage>propertySheetPagesThis is the property sheet page.protected java.util.Collection<org.eclipse.emf.ecore.resource.Resource>removedResourcesResources that have been removed since last activation.protected org.eclipse.core.resources.IResourceChangeListenerresourceChangeListenerThis listens for workspace changes.protected java.util.Map<org.eclipse.emf.ecore.resource.Resource,org.eclipse.emf.common.util.Diagnostic>resourceToDiagnosticMapMap to store the diagnostic associated with a resource.protected java.util.Collection<org.eclipse.emf.ecore.resource.Resource>savedResourcesResources that have been saved.protected org.eclipse.jface.viewers.ISelectionChangedListenerselectionChangedListenerThis listens to which ever viewer is active.protected java.util.Collection<org.eclipse.jface.viewers.ISelectionChangedListener>selectionChangedListenersThis keeps track of all theISelectionChangedListeners that are listening to this editor.protected org.eclipse.jface.viewers.TreeViewerselectionViewerThis is the viewer that shadows the selection in the content outline.protected org.eclipse.jface.viewers.TableViewertableViewerThis shows how a table view works.protected org.eclipse.jface.viewers.TreeViewertreeViewerThis shows how a tree view works.protected org.eclipse.jface.viewers.TreeViewertreeViewerWithColumnsThis shows how a tree view with columns works.protected booleanupdateProblemIndicationControls whether the problem indication should be updated.
-
Constructor Summary
Constructors Constructor Description EmftvmEditor()This creates a model editor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener listener)This implementsISelectionProvider.org.eclipse.emf.common.util.DiagnosticanalyzeResourceProblems(org.eclipse.emf.ecore.resource.Resource resource, java.lang.Exception exception)Returns a diagnostic describing the errors and warnings listed in the resource and the specified exception (if any).protected voidcreateContextMenuFor(org.eclipse.jface.viewers.StructuredViewer viewer)This creates a context menu for the viewer and adds a listener as well registering the menu for extension.voidcreateModel()This is the method called to load a resource into the editing domain's resource set based on the editor's input.voidcreatePages()This is the method used by the framework to install your own controls.voiddispose()voiddoSave(org.eclipse.core.runtime.IProgressMonitor progressMonitor)This is for implementingIEditorPartand simply saves the model file.voiddoSaveAs()This also changes the editor's input.protected voiddoSaveAs(org.eclipse.emf.common.util.URI uri, org.eclipse.ui.IEditorInput editorInput)protected voidfirePropertyChange(int action)This is here for the listener to be able to call it.org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributorgetActionBarContributor()org.eclipse.ui.IActionBarsgetActionBars()java.lang.ObjectgetAdapter(java.lang.Class key)This is how the framework determines which interfaces we implement.org.eclipse.emf.common.notify.AdapterFactorygetAdapterFactory()org.eclipse.ui.views.contentoutline.IContentOutlinePagegetContentOutlinePage()This accesses a cached version of the content outliner.org.eclipse.emf.edit.domain.EditingDomaingetEditingDomain()This returns the editing domain as required by theIEditingDomainProviderinterface.org.eclipse.ui.views.properties.IPropertySheetPagegetPropertySheetPage()This accesses a cached version of the property sheet.org.eclipse.jface.viewers.ISelectiongetSelection()This implementsISelectionProviderto return this editor's overall selection.org.eclipse.jface.viewers.ViewergetViewer()This returns the viewer as required by theIViewerProviderinterface.voidgotoMarker(org.eclipse.core.resources.IMarker marker)protected voidhandleActivate()Handles activation of the editor or it's associated views.protected voidhandleChangedResources()Handles what to do with changed resources on activation.voidhandleContentOutlineSelection(org.eclipse.jface.viewers.ISelection selection)This deals with how we want selection in the outliner to affect the other views.protected booleanhandleDirtyConflict()Shows a dialog that asks if conflicting changes should be discarded.protected voidhideTabs()If there is just one page in the multi-page editor part, this hides the single tab at the bottom.voidinit(org.eclipse.ui.IEditorSite site, org.eclipse.ui.IEditorInput editorInput)This is called during startup.protected voidinitializeEditingDomain()This sets up the editing domain for the model editor.booleanisDirty()This is for implementingIEditorPartand simply tests the command stack.protected booleanisPersisted(org.eclipse.emf.ecore.resource.Resource resource)This returns whether something has been persisted to the URI of the specified resource.booleanisSaveAsAllowed()This always returns true because it is not currently supported.voidmenuAboutToShow(org.eclipse.jface.action.IMenuManager menuManager)This implementsIMenuListenerto help fill the context menus with contributions from the Edit menu.protected voidpageChange(int pageIndex)This is used to track the active viewer.voidremoveSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener listener)This implementsISelectionProvider.voidsetCurrentViewer(org.eclipse.jface.viewers.Viewer viewer)This makes sure that one content viewer, either for the current page or the outline view, if it has focus, is the current one.voidsetCurrentViewerPane(org.eclipse.emf.common.ui.ViewerPane viewerPane)voidsetFocus()voidsetSelection(org.eclipse.jface.viewers.ISelection selection)This implementsISelectionProviderto set this editor's overall selection.voidsetSelectionToViewer(java.util.Collection<?> collection)This sets the selection into whichever viewer is active.voidsetStatusLineManager(org.eclipse.jface.viewers.ISelection selection)protected booleanshowOutlineView()Returns whether the outline view should be presented to the user.protected voidshowTabs()If there is more than one page in the multi-page editor part, this shows the tabs at the bottom.protected voidupdateProblemIndication()Updates the problems indication with the information described in the specified diagnostic.-
Methods inherited from class org.eclipse.ui.part.MultiPageEditorPart
activateSite, addPage, addPage, addPage, addPage, addPageChangedListener, createContainer, createItem, createPageContainer, createPartControl, createSite, deactivateSite, findEditors, getActiveEditor, getActivePage, getContainer, getControl, getEditor, getPageCount, getPageImage, getPageSite, getPageText, getSelectedPage, handlePropertyChange, initializePageSwitching, removePage, removePageChangedListener, setActiveEditor, setActivePage, setControl, setPageImage, setPageText
-
Methods inherited from class org.eclipse.ui.part.EditorPart
checkSite, getEditorInput, getEditorSite, getTitleToolTip, isSaveOnCloseNeeded, setContentDescription, setInitializationData, setInput, setInputWithNotify, setPartName
-
Methods inherited from class org.eclipse.ui.part.WorkbenchPart
addPartPropertyListener, addPropertyListener, firePartPropertyChanged, 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
-
-
-
-
Field Detail
-
editingDomain
protected org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain editingDomain
This keeps track of the editing domain that is used to track all changes to the model.
-
adapterFactory
protected org.eclipse.emf.edit.provider.ComposedAdapterFactory adapterFactory
This is the one adapter factory used for providing views of the model.
-
contentOutlinePage
protected org.eclipse.ui.views.contentoutline.IContentOutlinePage contentOutlinePage
This is the content outline page.
-
contentOutlineStatusLineManager
protected org.eclipse.jface.action.IStatusLineManager contentOutlineStatusLineManager
This is a kludge...
-
contentOutlineViewer
protected org.eclipse.jface.viewers.TreeViewer contentOutlineViewer
This is the content outline page's viewer.
-
propertySheetPages
protected java.util.List<org.eclipse.ui.views.properties.PropertySheetPage> propertySheetPages
This is the property sheet page.
-
selectionViewer
protected org.eclipse.jface.viewers.TreeViewer selectionViewer
This is the viewer that shadows the selection in the content outline. The parent relation must be correctly defined for this to work.
-
parentViewer
protected org.eclipse.jface.viewers.TreeViewer parentViewer
This inverts the roll of parent and child in the content provider and show parents as a tree.
-
treeViewer
protected org.eclipse.jface.viewers.TreeViewer treeViewer
This shows how a tree view works.
-
listViewer
protected org.eclipse.jface.viewers.ListViewer listViewer
This shows how a list view works. A list viewer doesn't support icons.
-
tableViewer
protected org.eclipse.jface.viewers.TableViewer tableViewer
This shows how a table view works. A table can be used as a list with icons.
-
treeViewerWithColumns
protected org.eclipse.jface.viewers.TreeViewer treeViewerWithColumns
This shows how a tree view with columns works.
-
currentViewerPane
protected org.eclipse.emf.common.ui.ViewerPane currentViewerPane
This keeps track of the active viewer pane, in the book.
-
currentViewer
protected org.eclipse.jface.viewers.Viewer currentViewer
This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer.
-
selectionChangedListener
protected org.eclipse.jface.viewers.ISelectionChangedListener selectionChangedListener
This listens to which ever viewer is active.
-
selectionChangedListeners
protected java.util.Collection<org.eclipse.jface.viewers.ISelectionChangedListener> selectionChangedListeners
This keeps track of all theISelectionChangedListeners that are listening to this editor.
-
editorSelection
protected org.eclipse.jface.viewers.ISelection editorSelection
This keeps track of the selection of the editor as a whole.
-
markerHelper
protected org.eclipse.emf.common.ui.MarkerHelper markerHelper
The MarkerHelper is responsible for creating workspace resource markers presented in Eclipse's Problems View.
-
partListener
protected org.eclipse.ui.IPartListener partListener
This listens for when the outline becomes active
-
removedResources
protected java.util.Collection<org.eclipse.emf.ecore.resource.Resource> removedResources
Resources that have been removed since last activation.
-
changedResources
protected java.util.Collection<org.eclipse.emf.ecore.resource.Resource> changedResources
Resources that have been changed since last activation.
-
savedResources
protected java.util.Collection<org.eclipse.emf.ecore.resource.Resource> savedResources
Resources that have been saved.
-
resourceToDiagnosticMap
protected java.util.Map<org.eclipse.emf.ecore.resource.Resource,org.eclipse.emf.common.util.Diagnostic> resourceToDiagnosticMap
Map to store the diagnostic associated with a resource.
-
updateProblemIndication
protected boolean updateProblemIndication
Controls whether the problem indication should be updated.
-
problemIndicationAdapter
protected org.eclipse.emf.ecore.util.EContentAdapter problemIndicationAdapter
Adapter used to update the problem indication when resources are demanded loaded.
-
resourceChangeListener
protected org.eclipse.core.resources.IResourceChangeListener resourceChangeListener
This listens for workspace changes.
-
-
Method Detail
-
handleActivate
protected void handleActivate()
Handles activation of the editor or it's associated views.
-
handleChangedResources
protected void handleChangedResources()
Handles what to do with changed resources on activation.
-
updateProblemIndication
protected void updateProblemIndication()
Updates the problems indication with the information described in the specified diagnostic.
-
handleDirtyConflict
protected boolean handleDirtyConflict()
Shows a dialog that asks if conflicting changes should be discarded.
-
initializeEditingDomain
protected void initializeEditingDomain()
This sets up the editing domain for the model editor.
-
firePropertyChange
protected void firePropertyChange(int action)
This is here for the listener to be able to call it.- Overrides:
firePropertyChangein classorg.eclipse.ui.part.WorkbenchPart
-
setSelectionToViewer
public void setSelectionToViewer(java.util.Collection<?> collection)
This sets the selection into whichever viewer is active.
-
getEditingDomain
public org.eclipse.emf.edit.domain.EditingDomain getEditingDomain()
This returns the editing domain as required by theIEditingDomainProviderinterface. This is important for implementing the static methods ofAdapterFactoryEditingDomainand for supportingCommandAction.- Specified by:
getEditingDomainin interfaceorg.eclipse.emf.edit.domain.IEditingDomainProvider
-
setCurrentViewerPane
public void setCurrentViewerPane(org.eclipse.emf.common.ui.ViewerPane viewerPane)
-
setCurrentViewer
public void setCurrentViewer(org.eclipse.jface.viewers.Viewer viewer)
This makes sure that one content viewer, either for the current page or the outline view, if it has focus, is the current one.
-
getViewer
public org.eclipse.jface.viewers.Viewer getViewer()
This returns the viewer as required by theIViewerProviderinterface.- Specified by:
getViewerin interfaceorg.eclipse.emf.common.ui.viewer.IViewerProvider
-
createContextMenuFor
protected void createContextMenuFor(org.eclipse.jface.viewers.StructuredViewer viewer)
This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
-
createModel
public void createModel()
This is the method called to load a resource into the editing domain's resource set based on the editor's input.
-
analyzeResourceProblems
public org.eclipse.emf.common.util.Diagnostic analyzeResourceProblems(org.eclipse.emf.ecore.resource.Resource resource, java.lang.Exception exception)Returns a diagnostic describing the errors and warnings listed in the resource and the specified exception (if any).
-
createPages
public void createPages()
This is the method used by the framework to install your own controls.- Specified by:
createPagesin classorg.eclipse.ui.part.MultiPageEditorPart
-
hideTabs
protected void hideTabs()
If there is just one page in the multi-page editor part, this hides the single tab at the bottom.
-
showTabs
protected void showTabs()
If there is more than one page in the multi-page editor part, this shows the tabs at the bottom.
-
pageChange
protected void pageChange(int pageIndex)
This is used to track the active viewer.- Overrides:
pageChangein classorg.eclipse.ui.part.MultiPageEditorPart
-
getAdapter
public java.lang.Object getAdapter(java.lang.Class key)
This is how the framework determines which interfaces we implement.- Specified by:
getAdapterin interfaceorg.eclipse.core.runtime.IAdaptable- Overrides:
getAdapterin classorg.eclipse.ui.part.MultiPageEditorPart
-
getContentOutlinePage
public org.eclipse.ui.views.contentoutline.IContentOutlinePage getContentOutlinePage()
This accesses a cached version of the content outliner.
-
getPropertySheetPage
public org.eclipse.ui.views.properties.IPropertySheetPage getPropertySheetPage()
This accesses a cached version of the property sheet.
-
handleContentOutlineSelection
public void handleContentOutlineSelection(org.eclipse.jface.viewers.ISelection selection)
This deals with how we want selection in the outliner to affect the other views.
-
isDirty
public boolean isDirty()
This is for implementingIEditorPartand simply tests the command stack.- Specified by:
isDirtyin interfaceorg.eclipse.ui.ISaveablePart- Overrides:
isDirtyin classorg.eclipse.ui.part.MultiPageEditorPart
-
doSave
public void doSave(org.eclipse.core.runtime.IProgressMonitor progressMonitor)
This is for implementingIEditorPartand simply saves the model file.- Specified by:
doSavein interfaceorg.eclipse.ui.ISaveablePart- Specified by:
doSavein classorg.eclipse.ui.part.EditorPart
-
isPersisted
protected boolean isPersisted(org.eclipse.emf.ecore.resource.Resource resource)
This returns whether something has been persisted to the URI of the specified resource. The implementation uses the URI converter from the editor's resource set to try to open an input stream.
-
isSaveAsAllowed
public boolean isSaveAsAllowed()
This always returns true because it is not currently supported.- Specified by:
isSaveAsAllowedin interfaceorg.eclipse.ui.ISaveablePart- Specified by:
isSaveAsAllowedin classorg.eclipse.ui.part.EditorPart
-
doSaveAs
public void doSaveAs()
This also changes the editor's input.- Specified by:
doSaveAsin interfaceorg.eclipse.ui.ISaveablePart- Specified by:
doSaveAsin classorg.eclipse.ui.part.EditorPart
-
doSaveAs
protected void doSaveAs(org.eclipse.emf.common.util.URI uri, org.eclipse.ui.IEditorInput editorInput)
-
gotoMarker
public void gotoMarker(org.eclipse.core.resources.IMarker marker)
- Specified by:
gotoMarkerin interfaceorg.eclipse.ui.ide.IGotoMarker
-
init
public void init(org.eclipse.ui.IEditorSite site, org.eclipse.ui.IEditorInput editorInput)This is called during startup.- Specified by:
initin interfaceorg.eclipse.ui.IEditorPart- Overrides:
initin classorg.eclipse.ui.part.MultiPageEditorPart
-
setFocus
public void setFocus()
- Specified by:
setFocusin interfaceorg.eclipse.ui.IWorkbenchPart- Overrides:
setFocusin classorg.eclipse.ui.part.MultiPageEditorPart
-
addSelectionChangedListener
public void addSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener listener)
This implementsISelectionProvider.- Specified by:
addSelectionChangedListenerin interfaceorg.eclipse.jface.viewers.ISelectionProvider
-
removeSelectionChangedListener
public void removeSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener listener)
This implementsISelectionProvider.- Specified by:
removeSelectionChangedListenerin interfaceorg.eclipse.jface.viewers.ISelectionProvider
-
getSelection
public org.eclipse.jface.viewers.ISelection getSelection()
This implementsISelectionProviderto return this editor's overall selection.- Specified by:
getSelectionin interfaceorg.eclipse.jface.viewers.ISelectionProvider
-
setSelection
public void setSelection(org.eclipse.jface.viewers.ISelection selection)
This implementsISelectionProviderto set this editor's overall selection. Calling this result will notify the listeners.- Specified by:
setSelectionin interfaceorg.eclipse.jface.viewers.ISelectionProvider
-
setStatusLineManager
public void setStatusLineManager(org.eclipse.jface.viewers.ISelection selection)
-
menuAboutToShow
public void menuAboutToShow(org.eclipse.jface.action.IMenuManager menuManager)
This implementsIMenuListenerto help fill the context menus with contributions from the Edit menu.- Specified by:
menuAboutToShowin interfaceorg.eclipse.jface.action.IMenuListener
-
getActionBarContributor
public org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor getActionBarContributor()
-
getActionBars
public org.eclipse.ui.IActionBars getActionBars()
-
getAdapterFactory
public org.eclipse.emf.common.notify.AdapterFactory getAdapterFactory()
-
dispose
public void dispose()
- Specified by:
disposein interfaceorg.eclipse.ui.IWorkbenchPart- Overrides:
disposein classorg.eclipse.ui.part.MultiPageEditorPart
-
showOutlineView
protected boolean showOutlineView()
Returns whether the outline view should be presented to the user.
-
-