org.eclipse.emf.workspace.examples.extlibrary.presentation
Class EXTLibraryEditor
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.emf.workspace.examples.extlibrary.presentation.EXTLibraryEditor
-
All Implemented Interfaces:
-
IAdaptable,
IExecutableExtension,
IViewerProvider,
IEditingDomainProvider,
IMenuListener,
IPageChangeProvider,
ISelectionProvider,
IGotoMarker,
IEditorPart,
ISaveablePart,
IWorkbenchPart,
IWorkbenchPart2,
IWorkbenchPart3,
IWorkbenchPartOrientation
-
public class EXTLibraryEditor
- extends
MultiPageEditorPart
- implements
IEditingDomainProvider,
ISelectionProvider,
IMenuListener,
IViewerProvider,
IGotoMarker
This is an example of a EXTLibrary model editor.
This particular implementation is customized from the default editor generated
by EMF. This editor differs from the default EMF implementation in the following
ways:
- all instances operate in a single, shared
transactional editing domain
- a
ResourceSetListener
is statically registered on this editing
domain that automatically creates editors for any resource loaded (e.g.,
by proxy resolution)
- the editing domain delegates command-stack functionality to the workbench
IOperationHistory
. It provides its
IUndoContext
to
specialized implementations of the undo/redo actions that operate on the
operation history. Execution of commands is also delegated to the
operation history
- refreshing of the tree content and property sheet is performed within
read-only transactions on the editing domain, using the
TransactionalEditingDomain.runExclusive(Runnable)
API
- only the 'selection' tree view is provided, in addition to the problem
page if and when it is required
- synchronization of the workspace resource with the loaded EMF resource
uses the
WorkspaceSynchronizer
utility API instead of a
resource-change listener
In the code, customizations from the EMF-generated implementation are
marked by
//.CUSTOM: comments.
Methods inherited from class org.eclipse.ui.part.
MultiPageEditorPart
|
activateSite,
addPage,
addPage,
addPage,
addPage,
addPageChangedListener,
createPageContainer,
createPartControl,
createSite,
deactivateSite,
findEditors,
getActiveEditor,
getActivePage,
getContainer,
getControl,
getEditor,
getPageCount,
getPageImage,
getPageSite,
getPageText,
getSelectedPage,
handlePropertyChange,
initializePageSwitching,
pageChange,
removePage,
removePageChangedListener,
setActiveEditor,
setActivePage,
setControl,
setPageImage,
setPageText
|
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 java.lang.
Object
|
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
|
editingDomain
protected
AdapterFactoryEditingDomain editingDomain
- This keeps track of the editing domain that is used to track all changes to the model.
undoContext
protected
IUndoContext undoContext
resource
protected
Resource resource
adapterFactory
protected
ComposedAdapterFactory adapterFactory
- This is the one adapter factory used for providing views of the model.
contentOutlinePage
protected
IContentOutlinePage contentOutlinePage
- This is the content outline page.
contentOutlineStatusLineManager
protected
IStatusLineManager contentOutlineStatusLineManager
- This is a kludge...
contentOutlineViewer
protected
TreeViewer contentOutlineViewer
- This is the content outline page's viewer.
propertySheetPage
protected
PropertySheetPage propertySheetPage
- This is the property sheet page.
selectionViewer
protected
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.
currentViewerPane
protected
ViewerPane currentViewerPane
- This keeps track of the active viewer pane, in the book.
currentViewer
protected
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
ISelectionChangedListener selectionChangedListener
- This listens to which ever viewer is active.
selectionChangedListeners
protected
Collection<
ISelectionChangedListener> selectionChangedListeners
- This keeps track of all the
ISelectionChangedListener
s that are listening to this editor.
editorSelection
protected
ISelection editorSelection
- This keeps track of the selection of the editor as a whole.
markerHelper
protected
MarkerHelper markerHelper
- The MarkerHelper is responsible for creating workspace resource markers presented
in Eclipse's Problems View.
partListener
protected
IPartListener partListener
- This listens for when the outline becomes active
removedResources
protected
Collection<
Resource> removedResources
- Resources that have been removed since last activation.
changedResources
protected
Collection<
Resource> changedResources
- Resources that have been changed since last activation.
movedResources
protected
Map<
Resource,
URI> movedResources
- Resources that have been moved since last activation.
savedResources
protected
Collection<
Resource> savedResources
- Resources that have been saved.
resourceToDiagnosticMap
protected
Map<
Resource,
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
EContentAdapter problemIndicationAdapter
- Adapter used to update the problem indication when resources are demanded loaded.
workspaceSynchronizer
protected
WorkspaceSynchronizer workspaceSynchronizer
- Synchronizes workspace changes with the editing domain.
EXTLibraryEditor
public EXTLibraryEditor()
- This creates a model editor.
handleActivate
protected void handleActivate()
- Handles activation of the editor or it's associated views.
-
-
handleChangedResource
protected void handleChangedResource()
- Handles what to do with changed resource on activation.
-
-
handleMovedResource
protected void handleMovedResource()
- Handles what to do with moved resource 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
WorkbenchPart
-
setSelectionToViewer
public void setSelectionToViewer(
Collection<?> collection)
- This sets the selection into whichever viewer is active.
-
-
getEditingDomain
public
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
IEditingDomainProvider
-
setCurrentViewerPane
public void setCurrentViewerPane(
ViewerPane viewerPane)
-
-
-
setCurrentViewer
public void setCurrentViewer(
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
Viewer getViewer()
- This returns the viewer as required by the
IViewerProvider
interface.
-
-
Specified by:
-
getViewer
in interface
IViewerProvider
-
createContextMenuFor
protected void createContextMenuFor(
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
Diagnostic analyzeResourceProblems(
Resource resource,
Exception exception)
- Returns a diagnostic describing the errors and warnings listed in the resource
and the specified exception (if any).
-
-
getResource
protected
Resource getResource()
- Obtains the single resource that I edit.
-
-
getUndoContext
public
IUndoContext getUndoContext()
- Obtains my undo context for populating the Undo and Redo menus
from the operation history.
-
-
createPages
public void createPages()
- This is the method used by the framework to install your own controls.
-
-
Specified by:
-
createPages
in class
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.
-
-
getAdapter
public
Object getAdapter(
Class key)
- This is how the framework determines which interfaces we implement.
-
-
Specified by:
-
getAdapter
in interface
IAdaptable
-
Overrides:
-
getAdapter
in class
MultiPageEditorPart
-
getContentOutlinePage
public
IContentOutlinePage getContentOutlinePage()
- This accesses a cached version of the content outliner.
-
-
getPropertySheetPage
public
IPropertySheetPage getPropertySheetPage()
- This accesses a cached version of the property sheet.
-
-
handleContentOutlineSelection
public void handleContentOutlineSelection(
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
ISaveablePart
-
Overrides:
-
isDirty
in class
MultiPageEditorPart
-
doSave
public void doSave(
IProgressMonitor progressMonitor)
- This is for implementing
IEditorPart
and simply saves the model file.
-
-
Specified by:
-
doSave
in interface
ISaveablePart
-
Specified by:
-
doSave
in class
EditorPart
-
isPersisted
protected boolean isPersisted(
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
ISaveablePart
-
Specified by:
-
isSaveAsAllowed
in class
EditorPart
-
doSaveAs
public void doSaveAs()
- This also changes the editor's input.
-
-
Specified by:
-
doSaveAs
in interface
ISaveablePart
-
Specified by:
-
doSaveAs
in class
EditorPart
-
doSaveAs
protected void doSaveAs(
URI uri,
IEditorInput editorInput)
-
-
-
gotoMarker
public void gotoMarker(
IMarker marker)
-
-
-
Specified by:
-
gotoMarker
in interface
IGotoMarker
-
init
public void init(
IEditorSite site,
IEditorInput editorInput)
- This is called during startup.
-
-
Specified by:
-
init
in interface
IEditorPart
-
Overrides:
-
init
in class
MultiPageEditorPart
-
setFocus
public void setFocus()
-
-
-
Specified by:
-
setFocus
in interface
IWorkbenchPart
-
Overrides:
-
setFocus
in class
MultiPageEditorPart
-
addSelectionChangedListener
public void addSelectionChangedListener(
ISelectionChangedListener listener)
- This implements
ISelectionProvider
.
-
-
Specified by:
-
addSelectionChangedListener
in interface
ISelectionProvider
-
removeSelectionChangedListener
public void removeSelectionChangedListener(
ISelectionChangedListener listener)
- This implements
ISelectionProvider
.
-
-
Specified by:
-
removeSelectionChangedListener
in interface
ISelectionProvider
-
getSelection
public
ISelection getSelection()
- This implements
ISelectionProvider
to return this editor's overall selection.
-
-
Specified by:
-
getSelection
in interface
ISelectionProvider
-
setSelection
public void setSelection(
ISelection selection)
- This implements
ISelectionProvider
to set this editor's overall selection.
Calling this result will notify the listeners.
-
-
Specified by:
-
setSelection
in interface
ISelectionProvider
-
setStatusLineManager
public void setStatusLineManager(
ISelection selection)
-
-
-
menuAboutToShow
public void menuAboutToShow(
IMenuManager menuManager)
- This implements
IMenuListener
to help fill the context menus with contributions from the Edit menu.
-
-
Specified by:
-
menuAboutToShow
in interface
IMenuListener
-
getActionBarContributor
public
EditingDomainActionBarContributor getActionBarContributor()
-
-
-
getActionBars
public
IActionBars getActionBars()
-
-
-
getAdapterFactory
public
AdapterFactory getAdapterFactory()
-
-
-
dispose
public void dispose()
-
-
-
Specified by:
-
dispose
in interface
IWorkbenchPart
-
Overrides:
-
dispose
in class
MultiPageEditorPart
-
showOutlineView
protected boolean showOutlineView()
- Returns whether the outline view should be presented to the user.
-
-