Package org.eclipse.m2m.atl.profiler.exportmodel.presentation

## Class ExportmodelEditor

- 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.profiler.exportmodel.presentation.ExportmodelEditor

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 ExportmodelEditor
    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 Exportmodel model editor.

### Nested Class Summary

Nested Classes
`class` `ExportmodelEditor.ReverseAdapterFactoryContentProvider`

### Field Summary

Fields
`protected org.eclipse.emf.edit.provider.ComposedAdapterFactory` `adapterFactory` This is the one adapter factory used for providing views of the model.
`protected java.util.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 org.eclipse.ui.views.properties.PropertySheetPage` `propertySheetPage` This is the property sheet page.
`protected java.util.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 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.
`protected java.util.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 java.util.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
`ExportmodelEditor()` This creates a model editor.

### Method Summary

All Methods Instance Methods Concrete Methods
`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, java.lang.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()`
`java.lang.Object` `getAdapter​(java.lang.Class 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​(java.util.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, 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`

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

#### propertySheetPage

    protected org.eclipse.ui.views.properties.PropertySheetPage propertySheetPage

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

### Constructor Detail

#### ExportmodelEditor

    public ExportmodelEditor()

This creates a model editor.

### 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:
  `firePropertyChange` in class `org.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 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,
                                                                          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:
  `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 java.lang.Object getAdapter​(java.lang.Class 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.