org.eclipse.graphiti.ui.editor
Class GraphicalComposite

java.lang.Object
  extended by Composite
      extended by org.eclipse.graphiti.ui.editor.GraphicalComposite
Direct Known Subclasses:
DiagramComposite

public abstract class GraphicalComposite
extends Composite

Based on the original GEF GraphicalEditor class, this is a composite that supports graphical editing.

Since:
0.10

Nested Class Summary
private static class GraphicalComposite.ActionIDList
           
 
Field Summary
private  ActionRegistry actionRegistry
           
private  DefaultEditDomain editDomain
           
private  GraphicalViewer graphicalViewer
           
private  List propertyActions
           
private  List selectionActions
           
private  List stackActions
           
private  SelectionSynchronizer synchronizer
           
 
Constructor Summary
GraphicalComposite(Composite parent, int style)
          Constructs the editor part
 
Method Summary
 void commandStackChanged(EventObject event)
          When the command stack changes, the actions interested in the command stack are updated.
protected  void configureGraphicalViewer()
          Called to configure the graphical viewer before it receives its contents.
protected  void createActions()
          Creates actions for this editor.
 void createControl()
          Realizes the Editor by creating it's Control.
protected  void createGraphicalViewer()
          Creates the GraphicalViewer on the specified Composite.
 void dispose()
           
protected  void firePropertyChange(int property)
           
 ActionRegistry getActionRegistry()
          Lazily creates and returns the action registry.
 Object getAdapter(Class type)
          Returns the adapter for the specified key.
protected  CommandStack getCommandStack()
          Returns the command stack.
 DefaultEditDomain getEditDomain()
          Returns the edit domain.
 GraphicalViewer getGraphicalViewer()
          Returns the graphical viewer.
protected  List getPropertyActions()
          Returns the list of IActions dependant on property changes in the Editor.
 List getSelectionActions()
          Returns the list of IDs of Actions that are dependant on changes in the workbench's ISelectionService.
protected  SelectionSynchronizer getSelectionSynchronizer()
          Returns the selection syncronizer object.
protected  List getStackActions()
          Returns the list of IDs of Actions that are dependant on the CommmandStack's state.
protected abstract  IWorkbenchPart getWorkbenchPart()
           
 void hookGraphicalViewer()
          Hooks the GraphicalViewer to the rest of the Editor.
protected  void init()
           
protected  void initializeActionRegistry()
          Initializes the ActionRegistry.
protected  void initializeGraphicalViewer()
          Override to set the contents of the GraphicalViewer after it has been created.
 boolean isDirty()
          Returns true if the command stack is dirty
 void selectionChanged(IWorkbenchPart part, ISelection selection)
           
protected  void setActionRegistry(ActionRegistry registry)
          Sets the ActionRegistry for this EditorPart.
 void setEditDomain(DefaultEditDomain editDomain)
          Sets the EditDomain for this EditorPart.
 boolean setFocus()
           
 void setGraphicalViewer(GraphicalViewer viewer)
          Sets the graphicalViewer for this EditorPart.
protected  void updateActions(List actionIds)
          A convenience method for updating a set of actions defined by the given List of action IDs.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

editDomain

private DefaultEditDomain editDomain

graphicalViewer

private GraphicalViewer graphicalViewer

actionRegistry

private ActionRegistry actionRegistry

synchronizer

private SelectionSynchronizer synchronizer

selectionActions

private List selectionActions

stackActions

private List stackActions

propertyActions

private List propertyActions
Constructor Detail

GraphicalComposite

public GraphicalComposite(Composite parent,
                          int style)
Constructs the editor part

Method Detail

commandStackChanged

public void commandStackChanged(EventObject event)
When the command stack changes, the actions interested in the command stack are updated.

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()
Creates the GraphicalViewer on the specified Composite.

Parameters:
parent - the parent composite

createControl

public void createControl()
Realizes the Editor by creating it's Control.

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

Parameters:
parent - the parent composite

dispose

public void dispose()
See Also:
org.eclipse.ui.IWorkbenchPart#dispose()

firePropertyChange

protected void firePropertyChange(int property)
See Also:
org.eclipse.ui.part.WorkbenchPart#firePropertyChange(int)

getActionRegistry

public ActionRegistry getActionRegistry()
Lazily creates and returns the action registry.

Returns:
the action registry

getAdapter

public Object getAdapter(Class 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.

See Also:
org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)

getCommandStack

protected CommandStack getCommandStack()
Returns the command stack.

Returns:
the command stack

getEditDomain

public DefaultEditDomain getEditDomain()
Returns the edit domain.

Returns:
the edit domain

getGraphicalViewer

public 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

public 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:
updateActions(List)

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

public 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

protected void init()

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 void initializeGraphicalViewer()
Override to set the contents of the GraphicalViewer after it has been created.

See Also:
#createGraphicalViewer(Composite)

isDirty

public boolean isDirty()
Returns true if the command stack is dirty

See Also:
org.eclipse.ui.ISaveablePart#isDirty()

selectionChanged

public void selectionChanged(IWorkbenchPart part,
                             ISelection selection)
See Also:
org.eclipse.ui.ISelectionListener#selectionChanged(IWorkbenchPart, ISelection)

setActionRegistry

protected void setActionRegistry(ActionRegistry registry)
Sets the ActionRegistry for this EditorPart.

Parameters:
registry - the registry

setEditDomain

public void setEditDomain(DefaultEditDomain editDomain)
Sets the EditDomain for this EditorPart.

Parameters:
ed - the domain

setFocus

public boolean setFocus()

setGraphicalViewer

public 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

getWorkbenchPart

protected abstract IWorkbenchPart getWorkbenchPart()


Copyright (c) SAP AG 2005, 2012.