Class DiagramEditor

java.lang.Object
org.eclipse.core.commands.common.EventManager
org.eclipse.ui.part.WorkbenchPart
org.eclipse.ui.part.EditorPart
org.eclipse.gef.ui.parts.GraphicalEditor
org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette
org.eclipse.graphiti.ui.editor.DiagramEditor
All Implemented Interfaces:
EventListener, org.eclipse.core.runtime.IAdaptable, org.eclipse.core.runtime.IExecutableExtension, org.eclipse.emf.edit.domain.IEditingDomainProvider, org.eclipse.gef.commands.CommandStackEventListener, org.eclipse.gef.commands.CommandStackListener, IDiagramContainer, IDiagramContainerUI, org.eclipse.ui.IEditorPart, org.eclipse.ui.ISaveablePart, org.eclipse.ui.ISelectionListener, org.eclipse.ui.IWorkbenchPart, org.eclipse.ui.IWorkbenchPart2, org.eclipse.ui.IWorkbenchPart3, org.eclipse.ui.part.IWorkbenchPartOrientation, org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor

public class DiagramEditor extends org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette implements IDiagramContainerUI, org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor, org.eclipse.emf.edit.domain.IEditingDomainProvider, org.eclipse.gef.commands.CommandStackEventListener
This is the main class for the Graphiti diagram editor. It represents the editor to Eclipse and therefore implements IEditorPart. The implementation is based upon a GEF editor implementation ( GraphicalEditorWithFlyoutPalette) and enhances it with Graphiti-specific stuff.
This editor is registered as an Eclipse editor using the extension point org.eclipse.ui.editors. Therefore the Eclipse standard methods can be used to open a new diagram editor. The associated IEditorInput object is a subclass of DiagramEditorInput, but using another type of input is also ok as long as it can be adapted to an IFile that can be reolved within the workspace of is a URIEditorInput. These types of input objects will be converted to a corresponding DiagramEditorInput when the editor is initialized (see init(IEditorSite, IEditorInput)).
Any clients extending this class should also contribute their editor to the Eclipse editor extension point to gain full advantage of the Eclipse editor integration of Graphiti.
There are a lot of aspects this class needs to deal with; the larger aspects are separated into other classes which share the lifecycle with the DiagramEditor instance. This means they are instantiated when a new diagram editor is created and exist until the editor is closed again. There are default implementations for all of these aspects, see the Default*Behavior classes in this package. The following aspects are separated:
  • Markers: Handles everything about markers in the editor. See DefaultMarkerBehavior for the default implementation. Override #createMarkerBehavior() to change the default behavior.
  • Palette: Handles everything about the palette in the editor. See DefaultPaletteBehavior for the default implementation. Override #createPaletteBehaviour() to change the default behavior.
  • Persistence: Handles everything about loading, saving and the dirty state in the editor. See DefaultPersistencyBehavior for the default implementation. Override #createPersistencyBehavior() to change the default behavior.
  • Refreshing: Handles everything about refreshing the editor (refreshing means that the editor shows what's defined in the pictogram model). See DefaultRefreshBehavior for the default implementation. Override #createRefreshBehavior() to change the default behavior.
  • Update: Handles everything about updating the editor (updating means that the pictogram model is updated to reflect any changes done to the domain model - your business objects - or to the way objects shall be visualized). See DefaultMarkerBehavior for the default implementation. Override #createMarkerBehavior() to change the default behavior.
All the other aspects are dealt with directly within this class. One of the larger aspects implemented here is selection handling, which would have been awkward if separated out.
Since:
0.10
  • Nested Class Summary

    Nested classes/interfaces inherited from class org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette

    org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette.CustomPalettePage
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    The ID of the DiagramEditor as it is registered with the org.eclipse.ui.editors extension point.

    Fields inherited from interface org.eclipse.graphiti.ui.editor.IDiagramContainerUI

    DIAGRAM_CONTEXT_ID

    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
    Creates a new diagram editor and cares about the creation of the different behavior extensions by delegating to the various create*Behavior() methods.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Notify the container that it should shut down or clear it's state.
    void
    Notification that the command stack changed.
    void
    Called to configure the editor, before it receives its content.
    convertToDiagramEditorInput(org.eclipse.ui.IEditorInput input)
    Is called by the init(IEditorSite, IEditorInput) method in case the IEditorInput instance passed is no DiagramEditorInput .
    protected DiagramBehavior
    Creates the behavior object that cares about the common (behavioral) coding shared between editors, views and other composites.
    protected void
    createGraphicalViewer(org.eclipse.swt.widgets.Composite parent)
    Creates the GraphicalViewer on the specified Composite and initializes it.
    protected final org.eclipse.gef.ui.palette.PaletteViewerProvider
    Delegates to the method (or the method in a subclass of) #createPaletteViewerProvider() to create the PaletteViewerProvider used inside the GEF editor.
    void
    createPartControl(org.eclipse.swt.widgets.Composite parent)
    Creates the UI of the editor by delegating to the super.createPartControl method.
    void
    Disposes this DiagramEditor instance and frees all used resources and clears all references.
    void
    doSave(org.eclipse.core.runtime.IProgressMonitor monitor)
    Called to perform the saving of the editor.
    org.eclipse.gef.ui.actions.ActionRegistry
    Returns the GEF action registry for the container.
    Implements the Eclipse IAdaptable interface.
    Returns the ID for contributions in the tabbed property sheets by delegating to the method IToolBehaviorProvider.getContributorId() .
    Returns the associated DiagramSupport instance to this editor.
    Returns the IDiagramEditorInput instance used for this container.
    Returns the IDiagramTypeProvider instance associated with this DiagramEditor.
    org.eclipse.gef.DefaultEditDomain
    Returns the GEF edit domain as needed for some of the feature functionality in Graphiti; simply a public rewrite of the GEF editor super method.
    org.eclipse.emf.transaction.TransactionalEditingDomain
    Returns the EMF TransactionalEditingDomain used within this editor by delegating to the update behavior extension, by default DefaultUpdateBehavior.getEditingDomain().
    org.eclipse.gef.GraphicalViewer
    Returns the GEF GraphicalViewer as it is needed in some Graphiti feature implementations.
    protected final org.eclipse.gef.ui.palette.FlyoutPaletteComposite.FlyoutPreferences
    Delegates to the method (or the method in a subclass of) DefaultPaletteBehavior.getPalettePreferences().
    protected final org.eclipse.gef.palette.PaletteRoot
    Returns the PaletteRoot to use in the GEF editor by delegating to DefaultPaletteBehavior.getPaletteRoot().
    Returns the PictogramElements that are currently selected in the diagram editor.
    Returns the actions used for selection of the parent GEF editor, for an editor based upon the GEF editor this simply returns the standard GEF selection actions by delegating to the super editor class.
    Returns the tooltip that shall be displayed when hovering over the editor title tab.
    org.eclipse.ui.IWorkbenchPart
    Returns the IWorkbenchPart for this container.
    void
    Hooks the GraphicalViewer to be used inside the container.
    void
    init(org.eclipse.ui.IEditorSite site, org.eclipse.ui.IEditorInput input)
    Does the initialization of the editor.
    void
    Called to initialize the editor with its content.
    boolean
    Returns if the editor is currently dirty and needs to be saved or not.
    void
    Refreshes the editor title to show the name of the diagram
    void
    Refreshes the tooltip displayed for the editor title tab according to what is returned in getTitleToolTip().
    void
    selectionChanged(org.eclipse.ui.IWorkbenchPart part, org.eclipse.jface.viewers.ISelection selection)
    Handles a selection changed event that is triggered by any selection source, e.g.
    void
    Selects the given PictogramElements in the diagram.
    void
    setEditDomain(org.eclipse.gef.DefaultEditDomain editDomain)
    Sets the GEF edit domain to the container.
    void
    Sets the focus by delegating to the super class implementation in the GEF editor and additionally triggers a update of the diagram by delegating to DefaultUpdateBehavior.handleActivate().
    void
    setGraphicalViewer(org.eclipse.gef.GraphicalViewer viewer)
    Sets the GraphicalViewer to be used inside the container.
    protected void
    setInput(org.eclipse.ui.IEditorInput input)
    Sets the given IEditorInput object as the input for this editor.
    void
    Sets one PictogramElement for later selection.
    void
    Sets PictogramElements for later selection.
    void
    stackChanged(org.eclipse.gef.commands.CommandStackEvent event)
     
    void
    Updates the UI to correctly reflect the dirty state of the editor.

    Methods inherited from class org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette

    createPaletteComposite, createPalettePage, getGraphicalControl, getPaletteViewerProvider

    Methods inherited from class org.eclipse.gef.ui.parts.GraphicalEditor

    createActions, doSaveAs, firePropertyChange, getCommandStack, getPropertyActions, getSelectionSynchronizer, getStackActions, initializeActionRegistry, isSaveAsAllowed, setActionRegistry, updateActions

    Methods inherited from class org.eclipse.ui.part.EditorPart

    checkSite, getEditorInput, getEditorSite, isSaveOnCloseNeeded, setContentDescription, setInitializationData, 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.graphiti.platform.IDiagramContainer

    getTitle

    Methods inherited from interface org.eclipse.graphiti.ui.editor.IDiagramContainerUI

    getSite

    Methods inherited from interface org.eclipse.ui.IWorkbenchPart

    addPropertyListener, getSite, getTitle, getTitleImage, removePropertyListener
  • Field Details

  • Constructor Details

    • DiagramEditor

      public DiagramEditor()
      Creates a new diagram editor and cares about the creation of the different behavior extensions by delegating to the various create*Behavior() methods.
  • Method Details

    • getDiagramBehavior

      public DiagramBehavior getDiagramBehavior()
      Returns the associated DiagramSupport instance to this editor.
      Specified by:
      getDiagramBehavior in interface IDiagramContainer
      Specified by:
      getDiagramBehavior in interface IDiagramContainerUI
      Returns:
      The associated DiagramSupport instance
      Since:
      0.10
    • init

      public void init(org.eclipse.ui.IEditorSite site, org.eclipse.ui.IEditorInput input) throws org.eclipse.ui.PartInitException
      Does the initialization of the editor. The default implementation cares about:
      1. converting the passed IEditorInput to a DiagramEditorInput. In case this fails, a PartInitException is thrown.
      2. creating the editing domain by delegating to the update behavior extension, see DefaultUpdateBehavior.createEditingDomain(IDiagramEditorInput) for details
      3. initializing the underlying GEF editor by delegating to super
      4. initializing the update behavior extension (the order is important here as this must happen after initializing the GEF editor!)
      5. triggering the migration of diagram data if necessary
      Any clients overriding this method have to make sure that they they always call super.init(site, input).
      Specified by:
      init in interface org.eclipse.ui.IEditorPart
      Overrides:
      init in class org.eclipse.gef.ui.parts.GraphicalEditor
      Parameters:
      site - the Eclipse IEditorSite that will host this editor
      input - the editor input that shall be used. Note that this method will exchange the input instance in case it is no DiagramEditorInput.
      Throws:
      org.eclipse.ui.PartInitException
      See Also:
      • IEditorPart.init(IEditorSite, IEditorInput)
    • createDiagramBehavior

      protected DiagramBehavior createDiagramBehavior()
      Creates the behavior object that cares about the common (behavioral) coding shared between editors, views and other composites. See DiagramBehavior for details and the default implementation. Override to change the behavior.
      Returns:
      a new instance of DiagramBehavior
      Since:
      0.10
    • convertToDiagramEditorInput

      protected DiagramEditorInput convertToDiagramEditorInput(org.eclipse.ui.IEditorInput input) throws org.eclipse.ui.PartInitException
      Is called by the init(IEditorSite, IEditorInput) method in case the IEditorInput instance passed is no DiagramEditorInput . This method should try to convert the passed input object to a DiagramEditorInput or throw an PartInitException in case the conversion can (or should) not be done for any reason. The default implementation uses the EditorInputAdapter.adaptToDiagramEditorInput(IEditorInput) method to do the conversion. Clients may adapt to do additional conversions or to prohibit any conversion by simply throwing a PartInitException .
      Parameters:
      input - the original input
      Returns:
      a DiagramEditorInput corresponding to the passed input instance in case a conversion is possible. This method must not return null, otherwise the editor initialization will fail.
      Throws:
      org.eclipse.ui.PartInitException - in case the passed input object cannot or should not be converted to a DiagramEditorInput instance.
      Since:
      0.9
    • setInput

      protected void setInput(org.eclipse.ui.IEditorInput input)
      Sets the given IEditorInput object as the input for this editor. It must be of type DiagramEditorInput otherwise an IllegalArgumentException is thrown.
      The default implementation here cares about loading the diagram from the EMF Resource the input points to, sets the ID of the IDiagramTypeProvider for the diagram given in the input, registers listeners (by delegating to #registerDiagramResourceSetListener() and #registerBusinessObjectsListener()) and does the refreshing of the editor UI.
      Overrides:
      setInput in class org.eclipse.ui.part.EditorPart
      Parameters:
      input - the DiagramEditorInput instance to use within this editor.
    • createPartControl

      public void createPartControl(org.eclipse.swt.widgets.Composite parent)
      Creates the UI of the editor by delegating to the super.createPartControl method. The default implementation here also registers the command stack listener to correctly reflect the dirty state of the editor.
      Specified by:
      createPartControl in interface org.eclipse.ui.IWorkbenchPart
      Overrides:
      createPartControl in class org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette
    • createGraphicalViewer

      protected void createGraphicalViewer(org.eclipse.swt.widgets.Composite parent)
      Creates the GraphicalViewer on the specified Composite and initializes it. This method needs to be implemented here to fulfill the interface of the underlying GEF editor but only delegates to DiagramSupport#createGraphicalViewer(Composite).
      Overrides:
      createGraphicalViewer in class org.eclipse.gef.ui.parts.GraphicalEditor
      Parameters:
      parent - The parent composite
    • initializeGraphicalViewer

      public void initializeGraphicalViewer()
      Called to initialize the editor with its content. Here everything is done, which is dependent of the IConfigurationProviderInternal.
      Specified by:
      initializeGraphicalViewer in interface IDiagramContainerUI
      Overrides:
      initializeGraphicalViewer in class org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette
      Since:
      0.10
      See Also:
      • GraphicalEditorWithFlyoutPalette.initializeGraphicalViewer()
    • configureGraphicalViewer

      public void configureGraphicalViewer()
      Called to configure the editor, before it receives its content. The default-implementation is for example doing the following: configure the ZoomManager, registering Actions... Here everything is done, which is independent of the IConfigurationProviderInternal.
      Specified by:
      configureGraphicalViewer in interface IDiagramContainerUI
      Overrides:
      configureGraphicalViewer in class org.eclipse.gef.ui.parts.GraphicalEditor
      Since:
      0.12
      See Also:
      • GraphicalEditor.configureGraphicalViewer()
    • updateDirtyState

      public void updateDirtyState()
      Updates the UI to correctly reflect the dirty state of the editor. The default implementation does this by firing a IEditorPart.PROP_DIRTY property change.
      Specified by:
      updateDirtyState in interface IDiagramContainer
      Since:
      0.9
    • doSave

      public void doSave(org.eclipse.core.runtime.IProgressMonitor monitor)
      Called to perform the saving of the editor. The default implementation delegates via DiagramSupport to DefaultPersistencyBehavior.saveDiagram(IProgressMonitor).
      Specified by:
      doSave in interface IDiagramContainer
      Specified by:
      doSave in interface org.eclipse.ui.ISaveablePart
      Specified by:
      doSave in class org.eclipse.ui.part.EditorPart
      Parameters:
      monitor - the Eclipse progress monitor to report progress with.
    • isDirty

      public boolean isDirty()
      Returns if the editor is currently dirty and needs to be saved or not. The default implementation delegates to DiagramSupport#isDirty().
      Specified by:
      isDirty in interface IDiagramContainer
      Specified by:
      isDirty in interface org.eclipse.ui.ISaveablePart
      Overrides:
      isDirty in class org.eclipse.gef.ui.parts.GraphicalEditor
      Returns:
      true in case the editor is dirty, false otherwise.
    • createPaletteViewerProvider

      protected final org.eclipse.gef.ui.palette.PaletteViewerProvider createPaletteViewerProvider()
      Delegates to the method (or the method in a subclass of) #createPaletteViewerProvider() to create the PaletteViewerProvider used inside the GEF editor.
      Overrides:
      createPaletteViewerProvider in class org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette
      Returns:
      the PaletteViewerProvider to use
    • getPalettePreferences

      protected final org.eclipse.gef.ui.palette.FlyoutPaletteComposite.FlyoutPreferences getPalettePreferences()
      Delegates to the method (or the method in a subclass of) DefaultPaletteBehavior.getPalettePreferences(). To change the palette override the behavior there.
      Overrides:
      getPalettePreferences in class org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette
      Returns:
      the PaletteViewerProvider preferences to use.
    • getPaletteRoot

      protected final org.eclipse.gef.palette.PaletteRoot getPaletteRoot()
      Returns the PaletteRoot to use in the GEF editor by delegating to DefaultPaletteBehavior.getPaletteRoot().
      Specified by:
      getPaletteRoot in class org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette
      Returns:
      the PaletteRoot to use
    • refreshTitle

      public void refreshTitle()
      Refreshes the editor title to show the name of the diagram
      Specified by:
      refreshTitle in interface IDiagramContainer
      Since:
      0.9
    • refreshTitleToolTip

      public void refreshTitleToolTip()
      Refreshes the tooltip displayed for the editor title tab according to what is returned in getTitleToolTip().
      Specified by:
      refreshTitleToolTip in interface IDiagramContainer
      Since:
      0.9
    • getAdapter

      public Object getAdapter(Class type)
      Implements the Eclipse IAdaptable interface. This implementation first delegates to the IToolBehaviorProvider.getAdapter(Class) method and checks if something is returned. In case the return value is null it returns adapters for ZoomManager, IPropertySheetPage, Diagram, KeyHandler, SelectionSynchronizer and IContextButtonManager. It also delegates to the super implementation in GraphicalEditorWithFlyoutPalette.getAdapter(Class).
      Specified by:
      getAdapter in interface org.eclipse.core.runtime.IAdaptable
      Overrides:
      getAdapter in class org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette
      Parameters:
      type - the type to which shall be adapted
      Returns:
      the adapter instance
    • dispose

      public void dispose()
      Disposes this DiagramEditor instance and frees all used resources and clears all references. Also delegates to all the behavior extensions to also free their resources (e.g. and most important is the TransactionalEditingDomain held by the DefaultPersistencyBehavior. Always delegate to super.dispose() in case you override this method!
      Specified by:
      dispose in interface org.eclipse.ui.IWorkbenchPart
      Overrides:
      dispose in class org.eclipse.gef.ui.parts.GraphicalEditor
    • setFocus

      public void setFocus()
      Sets the focus by delegating to the super class implementation in the GEF editor and additionally triggers a update of the diagram by delegating to DefaultUpdateBehavior.handleActivate().
      Specified by:
      setFocus in interface org.eclipse.ui.IWorkbenchPart
      Overrides:
      setFocus in class org.eclipse.gef.ui.parts.GraphicalEditor
    • getSelectedPictogramElements

      public PictogramElement[] getSelectedPictogramElements()
      Returns the PictogramElements that are currently selected in the diagram editor.
      Specified by:
      getSelectedPictogramElements in interface IDiagramContainer
      Returns:
      an array of PictogramElements.
      Since:
      0.9
    • selectionChanged

      public void selectionChanged(org.eclipse.ui.IWorkbenchPart part, org.eclipse.jface.viewers.ISelection selection)
      Handles a selection changed event that is triggered by any selection source, e.g. a browser with "Link to Editor" enabled.
      Checks if the currently active editor is a MultiPageEditorPart with an opened diagram editor inside, tries to find any PictogramElement for the objects in the selection and selects them in the diagram.
      Note that in case of the CommonNavigator as event source, its editor linking mechanism must be enabled.
      Specified by:
      selectionChanged in interface org.eclipse.ui.ISelectionListener
      Overrides:
      selectionChanged in class org.eclipse.gef.ui.parts.GraphicalEditor
      Parameters:
      part - the source IWorkbenchPart that triggered the event
      selection - the new selection (mostly a IStructuredSelection instance.
      Since:
      0.9
    • selectPictogramElements

      public void selectPictogramElements(PictogramElement[] pictogramElements)
      Selects the given PictogramElements in the diagram.
      Specified by:
      selectPictogramElements in interface IDiagramContainer
      Parameters:
      pictogramElements - an array of PictogramElements to select.
      Since:
      0.9
    • setPictogramElementForSelection

      public void setPictogramElementForSelection(PictogramElement pictogramElement)
      Sets one PictogramElement for later selection.

      The methods #getPictogramElementsForSelection(), setPictogramElementForSelection(PictogramElement), setPictogramElementsForSelection(PictogramElement[]) and DiagramSupport#selectBufferedPictogramElements() offer the possibility to use a deferred selection mechanism: via the setters, PictogramElements can be stored for a selection operation that is triggered lateron during a general refresh via the method DiagramSupport#selectBufferedPictogramElements(). This mechanism is used e.g. in the Graphiti framework in direct editing to restore the previous selection, but can also be used by clients.

      Specified by:
      setPictogramElementForSelection in interface IDiagramContainer
      Parameters:
      pictogramElement - the PictogramElement that shall be stored for later selection
      Since:
      0.9
    • setPictogramElementsForSelection

      public void setPictogramElementsForSelection(PictogramElement[] pictogramElements)
      Sets PictogramElements for later selection.

      The methods #getPictogramElementsForSelection(), setPictogramElementForSelection(PictogramElement), setPictogramElementsForSelection(PictogramElement[]) and DiagramSupport#selectBufferedPictogramElements() offer the possibility to use a deferred selection mechanism: via the setters, PictogramElements can be stored for a selection operation that is triggered lateron during a general refresh via the method DiagramSupport#selectBufferedPictogramElements(). This mechanism is used e.g. in the Graphiti framework in direct editing to restore the previous selection, but can also be used by clients.

      Specified by:
      setPictogramElementsForSelection in interface IDiagramContainer
      Parameters:
      pictogramElements - the PictogramElements that shall be stored for later selection
      Since:
      0.9
    • getContributorId

      public String getContributorId()
      Returns the ID for contributions in the tabbed property sheets by delegating to the method IToolBehaviorProvider.getContributorId() .
      Specified by:
      getContributorId in interface org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor
      Returns:
      the contributor id as a String
      Since:
      0.9
    • getDiagramTypeProvider

      public IDiagramTypeProvider getDiagramTypeProvider()
      Returns the IDiagramTypeProvider instance associated with this DiagramEditor. There is always a 1:1 relation between the editor and the provider.

      Note that this is a pure delegation method. Overrides should happen in DiagramBehavior.

      Specified by:
      getDiagramTypeProvider in interface IDiagramContainer
      Returns:
      the associated IDiagramTypeProvider instance.
      Since:
      0.9
    • getEditDomain

      public org.eclipse.gef.DefaultEditDomain getEditDomain()
      Returns the GEF edit domain as needed for some of the feature functionality in Graphiti; simply a public rewrite of the GEF editor super method.
      Specified by:
      getEditDomain in interface IDiagramContainerUI
      Overrides:
      getEditDomain in class org.eclipse.gef.ui.parts.GraphicalEditor
      Returns:
      the DefaultEditDomain used in this editor
      Since:
      0.9
      See Also:
      • GraphicalEditor.getEditDomain()
    • getGraphicalViewer

      public org.eclipse.gef.GraphicalViewer getGraphicalViewer()
      Returns the GEF GraphicalViewer as it is needed in some Graphiti feature implementations. This is simply a public rewrite of the according super method.
      Specified by:
      getGraphicalViewer in interface IDiagramContainerUI
      Overrides:
      getGraphicalViewer in class org.eclipse.gef.ui.parts.GraphicalEditor
      Returns:
      the GraphicalViewer used within this editor instance
      See Also:
      • GraphicalEditor.getGraphicalViewer()
    • getTitleToolTip

      public String getTitleToolTip()
      Returns the tooltip that shall be displayed when hovering over the editor title tab.
      Specified by:
      getTitleToolTip in interface IDiagramContainer
      Specified by:
      getTitleToolTip in interface org.eclipse.ui.IWorkbenchPart
      Overrides:
      getTitleToolTip in class org.eclipse.ui.part.EditorPart
      Returns:
      the tooltip as a String
    • getEditingDomain

      public org.eclipse.emf.transaction.TransactionalEditingDomain getEditingDomain()
      Returns the EMF TransactionalEditingDomain used within this editor by delegating to the update behavior extension, by default DefaultUpdateBehavior.getEditingDomain().
      Specified by:
      getEditingDomain in interface org.eclipse.emf.edit.domain.IEditingDomainProvider
      Returns:
      the TransactionalEditingDomain instance used in the editor
      Since:
      0.9
    • getDiagramEditorInput

      public IDiagramEditorInput getDiagramEditorInput()
      Description copied from interface: IDiagramContainerUI
      Returns the IDiagramEditorInput instance used for this container. Basically it is used as an Eclipse IEditorInput object only in case the container is an editor; for other types of containers the input is simply used as a holder for a URI pointing to a diagram.
      Specified by:
      getDiagramEditorInput in interface IDiagramContainerUI
      Returns:
      The input containing the URI for the diagram
      Since:
      0.10
    • getWorkbenchPart

      public org.eclipse.ui.IWorkbenchPart getWorkbenchPart()
      Returns the IWorkbenchPart for this container. Since this editor itself is already a part the default implementation simply returns this.
      Specified by:
      getWorkbenchPart in interface IDiagramContainerUI
      Returns:
      This part
      Since:
      0.10
    • close

      public void close()
      Description copied from interface: IDiagramContainer
      Notify the container that it should shut down or clear it's state.
      Specified by:
      close in interface IDiagramContainer
      Since:
      0.10
    • setEditDomain

      public void setEditDomain(org.eclipse.gef.DefaultEditDomain editDomain)
      Description copied from interface: IDiagramContainerUI
      Sets the GEF edit domain to the container. Needed for initializing the container from the DiagramBehavior instance.
      Specified by:
      setEditDomain in interface IDiagramContainerUI
      Overrides:
      setEditDomain in class org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette
      Parameters:
      editDomain - The DefaultEditDomain to set
      Since:
      0.10
      See Also:
      • GraphicalEditor#setEditDomain()
    • getActionRegistry

      public org.eclipse.gef.ui.actions.ActionRegistry getActionRegistry()
      Description copied from interface: IDiagramContainerUI
      Returns the GEF action registry for the container.
      Specified by:
      getActionRegistry in interface IDiagramContainerUI
      Overrides:
      getActionRegistry in class org.eclipse.gef.ui.parts.GraphicalEditor
      Returns:
      The ActionRegistry
    • getSelectionActions

      public List getSelectionActions()
      Description copied from interface: IDiagramContainerUI
      Returns the actions used for selection of the parent GEF editor, for an editor based upon the GEF editor this simply returns the standard GEF selection actions by delegating to the super editor class.
      Specified by:
      getSelectionActions in interface IDiagramContainerUI
      Overrides:
      getSelectionActions in class org.eclipse.gef.ui.parts.GraphicalEditor
      Returns:
      A List containing the selection actions
      See Also:
      • GraphicalEditor.getSelectionActions()
    • commandStackChanged

      public void commandStackChanged(EventObject event)
      Description copied from interface: IDiagramContainerUI
      Notification that the command stack changed. This might e.g. trigger an update of the dirty state of the container.
      Specified by:
      commandStackChanged in interface org.eclipse.gef.commands.CommandStackListener
      Specified by:
      commandStackChanged in interface IDiagramContainerUI
      Overrides:
      commandStackChanged in class org.eclipse.gef.ui.parts.GraphicalEditor
      Parameters:
      event - An event instance describing what happened
      See Also:
      • GraphicalEditor.commandStackChanged(EventObject event)
    • stackChanged

      public void stackChanged(org.eclipse.gef.commands.CommandStackEvent event)
      Specified by:
      stackChanged in interface org.eclipse.gef.commands.CommandStackEventListener
      Since:
      0.15
    • setGraphicalViewer

      public void setGraphicalViewer(org.eclipse.gef.GraphicalViewer viewer)
      Description copied from interface: IDiagramContainerUI
      Sets the GraphicalViewer to be used inside the container. The viewer is created by the DiagramBehavior instance and needs to be set in the GEF container.
      Specified by:
      setGraphicalViewer in interface IDiagramContainerUI
      Overrides:
      setGraphicalViewer in class org.eclipse.gef.ui.parts.GraphicalEditor
      Parameters:
      viewer - The viewer to use.
      See Also:
      • GraphicalEditor.setGraphicalViewer(GraphicalViewer viewer)
    • hookGraphicalViewer

      public void hookGraphicalViewer()
      Description copied from interface: IDiagramContainerUI
      Hooks the GraphicalViewer to be used inside the container.
      Specified by:
      hookGraphicalViewer in interface IDiagramContainerUI
      Overrides:
      hookGraphicalViewer in class org.eclipse.gef.ui.parts.GraphicalEditor
      See Also:
      • GraphicalEditor#hookGraphicalViewer(GraphicalViewer viewer)