Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com
Answertopia.com

How To Guides
Virtualization
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions
Privacy Policy

  




 

 


org.eclipse.emf.workspace.examples.extlibrary.presentation
Class EXTLibraryEditor


java.lang.Object
  extended by 

org.eclipse.core.commands.common.EventManager
      extended by 

org.eclipse.ui.part.WorkbenchPart
          extended by 

org.eclipse.ui.part.EditorPart
              extended by 

org.eclipse.ui.part.MultiPageEditorPart
                  extended by 
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.


Nested Class Summary
 class EXTLibraryEditor.ReverseAdapterFactoryContentProvider
           
 
Field Summary
protected   ComposedAdapterFactory adapterFactory
          This is the one adapter factory used for providing views of the model
protected   Collection< Resource> changedResources
          Resources that have been changed since last activation
protected   IContentOutlinePage contentOutlinePage
          This is the content outline page
protected   IStatusLineManager contentOutlineStatusLineManager
          This is a kludge
protected   TreeViewer contentOutlineViewer
          This is the content outline page's viewer
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
protected   ViewerPane currentViewerPane
          This keeps track of the active viewer pane, in the book
protected   AdapterFactoryEditingDomain editingDomain
          This keeps track of the editing domain that is used to track all changes to the model
protected   ISelection editorSelection
          This keeps track of the selection of the editor as a whole
protected   MarkerHelper markerHelper
          The MarkerHelper is responsible for creating workspace resource markers presented in Eclipse's Problems View
protected   Map< Resource, URI> movedResources
          Resources that have been moved since last activation.
protected   IPartListener partListener
          This listens for when the outline becomes active
protected   EContentAdapter problemIndicationAdapter
          Adapter used to update the problem indication when resources are demanded loaded
protected   PropertySheetPage propertySheetPage
          This is the property sheet page
protected   Collection< Resource> removedResources
          Resources that have been removed since last activation
protected   Resource resource
           
protected   Map< Resource, Diagnostic> resourceToDiagnosticMap
          Map to store the diagnostic associated with a resource
protected   Collection< Resource> savedResources
          Resources that have been saved
protected   ISelectionChangedListener selectionChangedListener
          This listens to which ever viewer is active
protected   Collection< ISelectionChangedListener> selectionChangedListeners
          This keeps track of all the ISelectionChangedListeners that are listening to this editor
protected   TreeViewer selectionViewer
          This is the viewer that shadows the selection in the content outline.
protected   IUndoContext undoContext
           
protected  boolean updateProblemIndication
          Controls whether the problem indication should be updated
protected   WorkspaceSynchronizer workspaceSynchronizer
          Synchronizes workspace changes with the editing domain.
 
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
EXTLibraryEditor ()
          This creates a model editor
 
Method Summary
 void addSelectionChangedListener ( ISelectionChangedListener listener)
          This implements ISelectionProvider
  Diagnostic analyzeResourceProblems ( 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 ( 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 ( 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 ( URI uri, IEditorInput editorInput)
           
protected  void firePropertyChange (int action)
          This is here for the listener to be able to call it
  EditingDomainActionBarContributor getActionBarContributor ()
           
  IActionBars getActionBars ()
           
  Object getAdapter ( Class key)
          This is how the framework determines which interfaces we implement
  AdapterFactory getAdapterFactory ()
           
  IContentOutlinePage getContentOutlinePage ()
          This accesses a cached version of the content outliner
  EditingDomain getEditingDomain ()
          This returns the editing domain as required by the IEditingDomainProvider interface.
  IPropertySheetPage getPropertySheetPage ()
          This accesses a cached version of the property sheet
protected   Resource getResource ()
          Obtains the single resource that I edit.
  ISelection getSelection ()
          This implements ISelectionProvider to return this editor's overall selection
  IUndoContext getUndoContext ()
          Obtains my undo context for populating the Undo and Redo menus from the operation history.
  Viewer getViewer ()
          This returns the viewer as required by the IViewerProvider interface
 void gotoMarker ( IMarker marker)
           
protected  void handleActivate ()
          Handles activation of the editor or it's associated views
protected  void handleChangedResource ()
          Handles what to do with changed resource on activation.
 void handleContentOutlineSelection ( 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 handleMovedResource ()
          Handles what to do with moved resource on activation.
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 ( IEditorSite site, 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 ( 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 ( IMenuManager menuManager)
          This implements IMenuListener to help fill the context menus with contributions from the Edit menu
 void removeSelectionChangedListener ( ISelectionChangedListener listener)
          This implements ISelectionProvider
 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
 void setCurrentViewerPane ( ViewerPane viewerPane)
           
 void setFocus ()
           
 void setSelection ( 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 ( 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, 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. 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 
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 ISelectionChangedListeners 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.

Constructor Detail

EXTLibraryEditor

public EXTLibraryEditor()
This creates a model editor.

Method Detail

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.


Copyright 2002, 2007 IBM Corporation and others.
All Rights Reserved.


 
 
  Published under the terms of the Eclipse Public License Version 1.0 ("EPL") Design by Interspire