Class GraphicalEditor

All Implemented Interfaces:
EventListener, IAdaptable, IExecutableExtension, CommandStackListener, IEditorPart, ISaveablePart, ISelectionListener, IWorkbenchPart, IWorkbenchPart2, IWorkbenchPart3, IWorkbenchPartOrientation
Direct Known Subclasses:
GraphicalEditorWithFlyoutPalette, GraphicalEditorWithPalette

public abstract class GraphicalEditor extends EditorPart implements CommandStackListener, ISelectionListener
This class serves as a quick starting point for clients who are new to GEF. It will create an Editor containing a single GraphicalViewer as its control.

IMPORTANTThis class should only be used as a reference for creating your own EditorPart implementation. This class will not suit everyone's needs, and may change in the future. Clients may copy the implementation.

  • Constructor Details

    • GraphicalEditor

      public GraphicalEditor()
      Constructs the editor part
  • Method Details

    • commandStackChanged

      public void commandStackChanged(EventObject event)
      When the command stack changes, the actions interested in the command stack are updated.
      Specified by:
      commandStackChanged in interface CommandStackListener
      Parameters:
      event - the change event
    • configureGraphicalViewer

      protected void configureGraphicalViewer()
      Called to configure the graphical viewer before it receives its contents. This is where the root editpart should be configured. Subclasses should extend or override this method as needed.
    • createActions

      protected void createActions()
      Creates actions for this editor. Subclasses should override this method to create and register actions with the ActionRegistry.
    • createGraphicalViewer

      protected void createGraphicalViewer(Composite parent)
      Creates the GraphicalViewer on the specified Composite.
      Parameters:
      parent - the parent composite
    • createPartControl

      public void createPartControl(Composite parent)
      Realizes the Editor by creating it's Control.

      WARNING: This method may or may not be called by the workbench prior to dispose().

      Specified by:
      createPartControl in interface IWorkbenchPart
      Specified by:
      createPartControl in class WorkbenchPart
      Parameters:
      parent - the parent composite
    • dispose

      public void dispose()
      Specified by:
      dispose in interface IWorkbenchPart
      Overrides:
      dispose in class WorkbenchPart
      See Also:
    • doSaveAs

      public void doSaveAs()
      Does nothing be default. This method should be overridden if isSaveAsAllowed() has been overridden to return true.
      Specified by:
      doSaveAs in interface ISaveablePart
      Specified by:
      doSaveAs in class EditorPart
      See Also:
    • firePropertyChange

      protected void firePropertyChange(int property)
      Overrides:
      firePropertyChange in class WorkbenchPart
      See Also:
    • getActionRegistry

      protected ActionRegistry getActionRegistry()
      Lazily creates and returns the action registry.
      Returns:
      the action registry
    • getAdapter

      public <T> T getAdapter(Class<T> type)
      Returns the adapter for the specified key.

      IMPORTANT certain requests, such as the property sheet, may be made before or after createPartControl(Composite) is called. The order is unspecified by the Workbench.

      Specified by:
      getAdapter in interface IAdaptable
      Overrides:
      getAdapter in class WorkbenchPart
      See Also:
    • getCommandStack

      protected CommandStack getCommandStack()
      Returns the command stack.
      Returns:
      the command stack
    • getEditDomain

      protected DefaultEditDomain getEditDomain()
      Returns the edit domain.
      Returns:
      the edit domain
    • getGraphicalViewer

      protected GraphicalViewer getGraphicalViewer()
      Returns the graphical viewer.
      Returns:
      the graphical viewer
    • getPropertyActions

      protected List getPropertyActions()
      Returns the list of IActions dependant on property changes in the Editor. These actions should implement the UpdateAction interface so that they can be updated in response to property changes. An example is the "Save" action.
      Returns:
      the list of property-dependant actions
    • getSelectionActions

      protected List getSelectionActions()
      Returns the list of IDs of Actions that are dependant on changes in the workbench's ISelectionService. The associated Actions can be found in the action registry. Such actions should implement the UpdateAction interface so that they can be updated in response to selection changes.
      Returns:
      the list of selection-dependant action IDs
      See Also:
    • getSelectionSynchronizer

      protected SelectionSynchronizer getSelectionSynchronizer()
      Returns the selection syncronizer object. The synchronizer can be used to sync the selection of 2 or more EditPartViewers.
      Returns:
      the syncrhonizer
    • getStackActions

      protected List getStackActions()
      Returns the list of IDs of Actions that are dependant on the CommmandStack's state. The associated Actions can be found in the action registry. These actions should implement the UpdateAction interface so that they can be updated in response to command stack changes. An example is the "undo" action.
      Returns:
      the list of stack-dependant action IDs
    • hookGraphicalViewer

      protected void hookGraphicalViewer()
      Hooks the GraphicalViewer to the rest of the Editor. By default, the viewer is added to the SelectionSynchronizer, which can be used to keep 2 or more EditPartViewers in sync. The viewer is also registered as the ISelectionProvider for the Editor's PartSite.
    • init

      public void init(IEditorSite site, IEditorInput input) throws PartInitException
      Sets the site and input for this editor then creates and initializes the actions. Subclasses may extend this method, but should always call super.init(site, input) .
      Specified by:
      init in interface IEditorPart
      Specified by:
      init in class EditorPart
      Throws:
      PartInitException
      See Also:
    • initializeActionRegistry

      protected void initializeActionRegistry()
      Initializes the ActionRegistry. This registry may be used by ActionBarContributors and/or ContextMenuProviders.

      This method may be called on Editor creation, or lazily the first time getActionRegistry() is called.

    • initializeGraphicalViewer

      protected abstract void initializeGraphicalViewer()
      Override to set the contents of the GraphicalViewer after it has been created.
      See Also:
    • isDirty

      public boolean isDirty()
      Returns true if the command stack is dirty
      Specified by:
      isDirty in interface ISaveablePart
      Specified by:
      isDirty in class EditorPart
      See Also:
    • isSaveAsAllowed

      public boolean isSaveAsAllowed()
      Returns false by default. Subclasses must return true to allow doSaveAs() to be called.
      Specified by:
      isSaveAsAllowed in interface ISaveablePart
      Specified by:
      isSaveAsAllowed in class EditorPart
      See Also:
    • selectionChanged

      public void selectionChanged(IWorkbenchPart part, ISelection selection)
      Specified by:
      selectionChanged in interface ISelectionListener
      See Also:
    • setActionRegistry

      protected void setActionRegistry(ActionRegistry registry)
      Sets the ActionRegistry for this EditorPart.
      Parameters:
      registry - the registry
    • setEditDomain

      protected void setEditDomain(DefaultEditDomain ed)
      Sets the EditDomain for this EditorPart.
      Parameters:
      ed - the domain
    • setFocus

      public void setFocus()
      Specified by:
      setFocus in interface IWorkbenchPart
      Specified by:
      setFocus in class WorkbenchPart
      See Also:
    • setGraphicalViewer

      protected void setGraphicalViewer(GraphicalViewer viewer)
      Sets the graphicalViewer for this EditorPart.
      Parameters:
      viewer - the graphical viewer
    • updateActions

      protected void updateActions(List actionIds)
      A convenience method for updating a set of actions defined by the given List of action IDs. The actions are found by looking up the ID in the action registry. If the corresponding action is an UpdateAction, it will have its update() method called.
      Parameters:
      actionIds - the list of IDs to update