Package org.eclipse.m2m.atl.emftvm.presentation

# 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.IGotoMarker
This is an example of a Emftvm model editor.

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`class`
`EmftvmEditor.ReverseAdapterFactoryContentProvider`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected org.eclipse.emf.edit.provider.ComposedAdapterFactory`
`adapterFactory`
This is the one adapter factory used for providing views of the model.
`protected Collection<org.eclipse.emf.ecore.resource.Resource>`
`changedResources`
Resources that have been changed since last activation.
`protected org.eclipse.ui.views.contentoutline.IContentOutlinePage`
`contentOutlinePage`
This is the content outline page.
`protected org.eclipse.jface.action.IStatusLineManager`
`contentOutlineStatusLineManager`
This is a kludge...
`protected org.eclipse.jface.viewers.TreeViewer`
`contentOutlineViewer`
This is the content outline page's viewer.
`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.
`protected org.eclipse.emf.common.ui.ViewerPane`
`currentViewerPane`
This keeps track of the active viewer pane, in the book.
`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.
`protected org.eclipse.jface.viewers.ISelection`
`editorSelection`
This keeps track of the selection of the editor as a whole.
`protected org.eclipse.jface.viewers.ListViewer`
`listViewer`
This shows how a list view works.
`protected org.eclipse.emf.common.ui.MarkerHelper`
`markerHelper`
The MarkerHelper is responsible for creating workspace resource markers presented in Eclipse's Problems View.
`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.
`protected org.eclipse.ui.IPartListener`
`partListener`
This listens for when the outline becomes active
`protected org.eclipse.emf.ecore.util.EContentAdapter`
`problemIndicationAdapter`
Adapter used to update the problem indication when resources are demanded loaded.
`protected List<org.eclipse.ui.views.properties.PropertySheetPage>`
`propertySheetPages`
This is the property sheet page.
`protected Collection<org.eclipse.emf.ecore.resource.Resource>`
`removedResources`
Resources that have been removed since last activation.
`protected org.eclipse.core.resources.IResourceChangeListener`
`resourceChangeListener`
This listens for workspace changes.
`protected Map<org.eclipse.emf.ecore.resource.Resource,org.eclipse.emf.common.util.Diagnostic>`
`resourceToDiagnosticMap`
Map to store the diagnostic associated with a resource.
`protected Collection<org.eclipse.emf.ecore.resource.Resource>`
`savedResources`
Resources that have been saved.
`protected org.eclipse.jface.viewers.ISelectionChangedListener`
`selectionChangedListener`
This listens to which ever viewer is active.
`protected Collection<org.eclipse.jface.viewers.ISelectionChangedListener>`
`selectionChangedListeners`
This keeps track of all the `ISelectionChangedListener`s that are listening to this editor.
`protected org.eclipse.jface.viewers.TreeViewer`
`selectionViewer`
This is the viewer that shadows the selection in the content outline.
`protected org.eclipse.jface.viewers.TableViewer`
`tableViewer`
This shows how a table view works.
`protected org.eclipse.jface.viewers.TreeViewer`
`treeViewer`
This shows how a tree view works.
`protected org.eclipse.jface.viewers.TreeViewer`
`treeViewerWithColumns`
This shows how a tree view with columns works.
`protected boolean`
`updateProblemIndication`
Controls whether the problem indication should be updated.

### 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`

## Constructor Summary

Constructors
Constructor
Description
`EmftvmEditor()`
This creates a model editor.

## Method Summary

Modifier and Type
Method
Description
`void`
`addSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener listener)`
This implements `ISelectionProvider`.
`org.eclipse.emf.common.util.Diagnostic`
`analyzeResourceProblems(org.eclipse.emf.ecore.resource.Resource resource, Exception exception)`
Returns a diagnostic describing the errors and warnings listed in the resource and the specified exception (if any).
`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.
`void`
`createModel()`
This is the method called to load a resource into the editing domain's resource set based on the editor's input.
`void`
`createPages()`
This is the method used by the framework to install your own controls.
`void`
`dispose()`
`void`
`doSave(org.eclipse.core.runtime.IProgressMonitor progressMonitor)`
This is for implementing `IEditorPart` and simply saves the model file.
`void`
`doSaveAs()`
This also changes the editor's input.
`protected void`
`doSaveAs(org.eclipse.emf.common.util.URI uri, org.eclipse.ui.IEditorInput editorInput)`
`protected void`
`firePropertyChange(int action)`
This is here for the listener to be able to call it.
`org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor`
`getActionBarContributor()`
`org.eclipse.ui.IActionBars`
`getActionBars()`
`<T> T`
`getAdapter(Class<T> key)`
This is how the framework determines which interfaces we implement.
`org.eclipse.emf.common.notify.AdapterFactory`
`getAdapterFactory()`
`org.eclipse.ui.views.contentoutline.IContentOutlinePage`
`getContentOutlinePage()`
This accesses a cached version of the content outliner.
`org.eclipse.emf.edit.domain.EditingDomain`
`getEditingDomain()`
This returns the editing domain as required by the `IEditingDomainProvider` interface.
`org.eclipse.ui.views.properties.IPropertySheetPage`
`getPropertySheetPage()`
This accesses a cached version of the property sheet.
`org.eclipse.jface.viewers.ISelection`
`getSelection()`
This implements `ISelectionProvider` to return this editor's overall selection.
`org.eclipse.jface.viewers.Viewer`
`getViewer()`
This returns the viewer as required by the `IViewerProvider` interface.
`void`
`gotoMarker(org.eclipse.core.resources.IMarker marker)`
`protected void`
`handleActivate()`
Handles activation of the editor or it's associated views.
`protected void`
`handleChangedResources()`
Handles what to do with changed resources on activation.
`void`
`handleContentOutlineSelection(org.eclipse.jface.viewers.ISelection selection)`
This deals with how we want selection in the outliner to affect the other views.
`protected boolean`
`handleDirtyConflict()`
Shows a dialog that asks if conflicting changes should be discarded.
`protected void`
`hideTabs()`
If there is just one page in the multi-page editor part, this hides the single tab at the bottom.
`void`
`init(org.eclipse.ui.IEditorSite site, org.eclipse.ui.IEditorInput editorInput)`
This is called during startup.
`protected void`
`initializeEditingDomain()`
This sets up the editing domain for the model editor.
`boolean`
`isDirty()`
This is for implementing `IEditorPart` and simply tests the command stack.
`protected boolean`
`isPersisted(org.eclipse.emf.ecore.resource.Resource resource)`
This returns whether something has been persisted to the URI of the specified resource.
`boolean`
`isSaveAsAllowed()`
This always returns true because it is not currently supported.
`void`
`menuAboutToShow(org.eclipse.jface.action.IMenuManager menuManager)`
This implements `IMenuListener` to help fill the context menus with contributions from the Edit menu.
`protected void`
`pageChange(int pageIndex)`
This is used to track the active viewer.
`void`
`removeSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener listener)`
This implements `ISelectionProvider`.
`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.
`void`
`setCurrentViewerPane(org.eclipse.emf.common.ui.ViewerPane viewerPane)`
`void`
`setFocus()`
`void`
`setSelection(org.eclipse.jface.viewers.ISelection selection)`
This implements `ISelectionProvider` to set this editor's overall selection.
`void`
`setSelectionToViewer(Collection<?> collection)`
This sets the selection into whichever viewer is active.
`void`
`setStatusLineManager(org.eclipse.jface.viewers.ISelection selection)`
`protected boolean`
`showOutlineView()`
Returns whether the outline view should be presented to the user.
`protected void`
`showTabs()`
If there is more than one page in the multi-page editor part, this shows the tabs at the bottom.
`protected void`
`updateProblemIndication()`
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, getAPIPreferenceStore, getContainer, getControl, getEditor, getPageCount, getPageImage, getPageSite, getPageText, getSelectedPage, getTabStyle, handlePropertyChange, initializePageSwitching, isUpdateRequired, removePage, removePageChangedListener, setActiveEditor, setActivePage, setControl, setPageImage, setPageText, updateContainer`

### 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`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.eclipse.ui.IWorkbenchPart

`addPropertyListener, getSite, getTitle, getTitleImage, removePropertyListener`

## Field Details

### 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 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 Collection<org.eclipse.jface.viewers.ISelectionChangedListener> selectionChangedListeners
This keeps track of all the `ISelectionChangedListener`s 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 Collection<org.eclipse.emf.ecore.resource.Resource> removedResources
Resources that have been removed since last activation.

### changedResources

protected Collection<org.eclipse.emf.ecore.resource.Resource> changedResources
Resources that have been changed since last activation.

### savedResources

protected Collection<org.eclipse.emf.ecore.resource.Resource> savedResources
Resources that have been saved.

### resourceToDiagnosticMap

protected 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.

## Constructor Details

### EmftvmEditor

public EmftvmEditor()
This creates a model editor.

## Method Details

### 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:
  `firePropertyChange` in class `org.eclipse.ui.part.WorkbenchPart`

### setSelectionToViewer

public void setSelectionToViewer(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 the `IEditingDomainProvider` interface. This is important for implementing the static methods of `AdapterFactoryEditingDomain` and for supporting `CommandAction`.

Specified by:
  `getEditingDomain` in interface `org.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 the `IViewerProvider` interface.

Specified by:
  `getViewer` in interface `org.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, 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:
  `createPages` in class `org.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:
  `pageChange` in class `org.eclipse.ui.part.MultiPageEditorPart`

### getAdapter

public <T> T getAdapter(Class<T> key)
This is how the framework determines which interfaces we implement.

Specified by:
  `getAdapter` in interface `org.eclipse.core.runtime.IAdaptable`
Overrides:
  `getAdapter` in class `org.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 implementing `IEditorPart` and simply tests the command stack.

Specified by:
  `isDirty` in interface `org.eclipse.ui.ISaveablePart`
Overrides:
  `isDirty` in class `org.eclipse.ui.part.MultiPageEditorPart`

### doSave

public void doSave(org.eclipse.core.runtime.IProgressMonitor progressMonitor)
This is for implementing `IEditorPart` and simply saves the model file.

Specified by:
  `doSave` in interface `org.eclipse.ui.ISaveablePart`
Specified by:
  `doSave` in class `org.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:
  `isSaveAsAllowed` in interface `org.eclipse.ui.ISaveablePart`
Specified by:
  `isSaveAsAllowed` in class `org.eclipse.ui.part.EditorPart`

### doSaveAs

public void doSaveAs()
This also changes the editor's input.

Specified by:
  `doSaveAs` in interface `org.eclipse.ui.ISaveablePart`
Specified by:
  `doSaveAs` in class `org.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:
  `gotoMarker` in interface `org.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:
  `init` in interface `org.eclipse.ui.IEditorPart`
Overrides:
  `init` in class `org.eclipse.ui.part.MultiPageEditorPart`

### setFocus

public void setFocus()

Specified by:
  `setFocus` in interface `org.eclipse.ui.IWorkbenchPart`
Overrides:
  `setFocus` in class `org.eclipse.ui.part.MultiPageEditorPart`

### addSelectionChangedListener

public void addSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener listener)
This implements `ISelectionProvider`.

Specified by:
  `addSelectionChangedListener` in interface `org.eclipse.jface.viewers.ISelectionProvider`

### removeSelectionChangedListener

public void removeSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener listener)
This implements `ISelectionProvider`.

Specified by:
  `removeSelectionChangedListener` in interface `org.eclipse.jface.viewers.ISelectionProvider`

### getSelection

public org.eclipse.jface.viewers.ISelection getSelection()
This implements `ISelectionProvider` to return this editor's overall selection.

Specified by:
  `getSelection` in interface `org.eclipse.jface.viewers.ISelectionProvider`

### setSelection

public void setSelection(org.eclipse.jface.viewers.ISelection selection)
This implements `ISelectionProvider` to set this editor's overall selection. Calling this result will notify the listeners.

Specified by:
  `setSelection` in interface `org.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 implements `IMenuListener` to help fill the context menus with contributions from the Edit menu.

Specified by:
  `menuAboutToShow` in interface `org.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:
  `dispose` in interface `org.eclipse.ui.IWorkbenchPart`
Overrides:
  `dispose` in class `org.eclipse.ui.part.MultiPageEditorPart`

### showOutlineView

protected boolean showOutlineView()
Returns whether the outline view should be presented to the user.