org.eclipse.graphiti.ui.editor
Class DiagramComposite

java.lang.Object
  extended by Composite
      extended by org.eclipse.graphiti.ui.editor.GraphicalComposite
          extended by org.eclipse.graphiti.ui.editor.DiagramComposite
All Implemented Interfaces:
IDiagramContainer, IDiagramEditor, IDiagramContainerUI

public class DiagramComposite
extends GraphicalComposite
implements IDiagramContainerUI

An SWT composite that can display a Graphiti diagram. This implementation is based on a custom GraphicalComposite class that works much like the GEF GraphicalEditorWithFlyoutPalette class. A DiagramComposite can be used anywhere a regular SWT Composite can. A DiagramComposite can participate in a parent transaction or create one of it's own. If the DiagramComposites is managing it's own transaction, it is up to the enclosing workbench part to call the appropriate methods on the composite.

Since:
0.10

Field Summary
private  DiagramBehavior diagramBehavior
           
private  IWorkbenchPart ownedPart
           
 
Fields inherited from interface org.eclipse.graphiti.ui.editor.IDiagramContainerUI
DIAGRAM_CONTEXT_ID
 
Constructor Summary
DiagramComposite(Composite parent, int style)
           
DiagramComposite(IWorkbenchPart ownedPart, Composite parent, int style)
           
 
Method Summary
 void close()
          Notify the container that it should shut down or clear it's state.
protected  void configureGraphicalViewer()
          Called to configure the graphical viewer before it receives its contents.
protected  DiagramBehavior createDiagramBehavior()
           
protected  void createGraphicalViewer()
          Creates the GraphicalViewer on the specified Composite.
protected  PaletteViewerProvider createPaletteViewerProvider()
           
 void disableAdapters()
           
 void dispose()
           
 void doSave(IProgressMonitor monitor)
          Triggers that the diagram model is persisted.
 void editingDomainInitialized()
           
 void enableAdapters()
           
 Object getAdapter(Class type)
          Returns the adapter for the specified key.
 DiagramBehavior getDiagramBehavior()
          Returns the DiagramBehavior instance associated with this container.
 IDiagramEditorInput getDiagramEditorInput()
          Returns the IDiagramEditorInput instance used for this container.
 IDiagramTypeProvider getDiagramTypeProvider()
          Gets the diagram type provider.
 GraphicalEditPart getEditPartForPictogramElement(PictogramElement pe)
           
protected  FlyoutPreferences getPalettePreferences()
           
protected  PaletteRoot getPaletteRoot()
           
 DefaultRefreshBehavior getRefreshBehavior()
           
 PictogramElement[] getSelectedPictogramElements()
          Gets all pictogram elements that are currently selected.
 IWorkbenchPartSite getSite()
          Returns the IWorkbenchPartSite of the Eclipse IWorkbenchPart that displays this container.
 String getTitle()
          Gets the title for the container that is displaying the diagram.
 String getTitleToolTip()
          Returns the tooltip for the container.
 DefaultUpdateBehavior getUpdateBehavior()
           
 IWorkbenchPart getWorkbenchPart()
          Returns the instance of the Eclipse IWorkbenchPart that displays this container.
 double getZoomLevel()
           
 void initializeGraphicalViewer()
          Override to set the contents of the GraphicalViewer after it has been created.
 boolean isAlive()
           
 boolean isDirectEditingActive()
           
 boolean isDirty()
          Returns true if the command stack is dirty
 void refreshTitle()
          Refreshes the title text of this container.
 void refreshTitleToolTip()
          Refreshes the title tool tip text of this part.
 void selectPictogramElements(PictogramElement[] pictogramElements)
          Selects all the given pictogram elements in the container.
 void setDirectEditingActive(boolean directEditingActive)
           
 boolean 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().
 void setInput(IDiagramEditorInput input)
           
 void setInput(TransactionalEditingDomain editingDomain, IDiagramEditorInput input)
           
 void setPictogramElementForSelection(PictogramElement pictogramElement)
          Sets the pictogram element which should be selected after the container refresh.
 void setPictogramElementsForSelection(PictogramElement[] pictogramElements)
          Sets the pictogram elements which should be selected after the container refresh.
 void updateDirtyState()
          Updates the UI of the container to correctly reflect the dirty state.
 
Methods inherited from class org.eclipse.graphiti.ui.editor.GraphicalComposite
commandStackChanged, createActions, createControl, firePropertyChange, getActionRegistry, getCommandStack, getEditDomain, getGraphicalViewer, getPropertyActions, getSelectionActions, getSelectionSynchronizer, getStackActions, hookGraphicalViewer, init, initializeActionRegistry, selectionChanged, setActionRegistry, setEditDomain, setGraphicalViewer, updateActions
 
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.ui.editor.IDiagramContainerUI
commandStackChanged, getActionRegistry, getEditDomain, getGraphicalViewer, getSelectionActions, hookGraphicalViewer, setEditDomain, setGraphicalViewer
 

Field Detail

diagramBehavior

private DiagramBehavior diagramBehavior

ownedPart

private IWorkbenchPart ownedPart
Constructor Detail

DiagramComposite

public DiagramComposite(IWorkbenchPart ownedPart,
                        Composite parent,
                        int style)

DiagramComposite

public DiagramComposite(Composite parent,
                        int style)
Method Detail

createDiagramBehavior

protected DiagramBehavior createDiagramBehavior()

setInput

public void setInput(IDiagramEditorInput input)

setInput

public void setInput(TransactionalEditingDomain editingDomain,
                     IDiagramEditorInput input)

initializeGraphicalViewer

public void initializeGraphicalViewer()
Description copied from class: GraphicalComposite
Override to set the contents of the GraphicalViewer after it has been created.

Overrides:
initializeGraphicalViewer in class GraphicalComposite
See Also:
#createGraphicalViewer(Composite)

createGraphicalViewer

protected void createGraphicalViewer()
Description copied from class: GraphicalComposite
Creates the GraphicalViewer on the specified Composite.

Overrides:
createGraphicalViewer in class GraphicalComposite

configureGraphicalViewer

protected void configureGraphicalViewer()
Description copied from class: GraphicalComposite
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.

Overrides:
configureGraphicalViewer in class GraphicalComposite

refreshTitle

public void refreshTitle()
Description copied from interface: IDiagramContainer
Refreshes the title text of this container. It depends on the container type what and if anything is refreshed, for an editor e.g. the part tab will be refreshed.

Specified by:
refreshTitle in interface IDiagramContainer
Specified by:
refreshTitle in interface IDiagramEditor

refreshTitleToolTip

public void refreshTitleToolTip()
Description copied from interface: IDiagramContainer
Refreshes the title tool tip text of this part. It depends on the container type what and if anything is refreshed, for an editor e.g. the part tab tooltip will be refreshed.

Specified by:
refreshTitleToolTip in interface IDiagramContainer
Specified by:
refreshTitleToolTip in interface IDiagramEditor

updateDirtyState

public void updateDirtyState()
Description copied from interface: IDiagramContainer
Updates the UI of the container to correctly reflect the dirty state. What (and if anything) happens depends on the container type. The default implementation in the editor e.g. does this by firing a IEditorPart#PROP_DIRTY property change.

Specified by:
updateDirtyState in interface IDiagramContainer

getWorkbenchPart

public IWorkbenchPart getWorkbenchPart()
Description copied from interface: IDiagramContainerUI
Returns the instance of the Eclipse IWorkbenchPart that displays this container. E.g. for an editor this will be the editor itself.

Specified by:
getWorkbenchPart in interface IDiagramContainerUI
Specified by:
getWorkbenchPart in class GraphicalComposite
Returns:
The IWorkbenchPart that is displaying the diagram.

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

getAdapter

public Object getAdapter(Class type)
Description copied from class: GraphicalComposite
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.

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

dispose

public void dispose()
Overrides:
dispose in class GraphicalComposite
See Also:
org.eclipse.ui.IWorkbenchPart#dispose()

setFocus

public boolean 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().

Overrides:
setFocus in class GraphicalComposite

getUpdateBehavior

public final DefaultUpdateBehavior getUpdateBehavior()

getRefreshBehavior

public final DefaultRefreshBehavior getRefreshBehavior()

editingDomainInitialized

public void editingDomainInitialized()

disableAdapters

public void disableAdapters()

enableAdapters

public void enableAdapters()

isDirty

public boolean isDirty()
Description copied from class: GraphicalComposite
Returns true if the command stack is dirty

Specified by:
isDirty in interface IDiagramContainer
Specified by:
isDirty in interface IDiagramEditor
Overrides:
isDirty in class GraphicalComposite
Returns:
true, if container is dirty, false otherwise
See Also:
org.eclipse.ui.ISaveablePart#isDirty()

createPaletteViewerProvider

protected final PaletteViewerProvider createPaletteViewerProvider()

getPalettePreferences

protected final FlyoutPreferences getPalettePreferences()

getPaletteRoot

protected final PaletteRoot getPaletteRoot()

getSelectedPictogramElements

public PictogramElement[] getSelectedPictogramElements()
Description copied from interface: IDiagramContainer
Gets all pictogram elements that are currently selected.

Specified by:
getSelectedPictogramElements in interface IDiagramContainer
Specified by:
getSelectedPictogramElements in interface IDiagramEditor
Returns:
all selected pictogram elements

selectPictogramElements

public void selectPictogramElements(PictogramElement[] pictogramElements)
Description copied from interface: IDiagramContainer
Selects all the given pictogram elements in the container.

Specified by:
selectPictogramElements in interface IDiagramContainer
Specified by:
selectPictogramElements in interface IDiagramEditor
Parameters:
pictogramElements - The pictogram elements to select

setPictogramElementForSelection

public void setPictogramElementForSelection(PictogramElement pictogramElement)
Description copied from interface: IDiagramContainer
Sets the pictogram element which should be selected after the container refresh.

Specified by:
setPictogramElementForSelection in interface IDiagramContainer
Specified by:
setPictogramElementForSelection in interface IDiagramEditor
Parameters:
pictogramElement - The pictogram element to select

setPictogramElementsForSelection

public void setPictogramElementsForSelection(PictogramElement[] pictogramElements)
Description copied from interface: IDiagramContainer
Sets the pictogram elements which should be selected after the container refresh.

Specified by:
setPictogramElementsForSelection in interface IDiagramContainer
Specified by:
setPictogramElementsForSelection in interface IDiagramEditor
Parameters:
pictogramElements - The pictogram elements to select

getDiagramTypeProvider

public IDiagramTypeProvider getDiagramTypeProvider()
Description copied from interface: IDiagramContainer
Gets the diagram type provider.

Specified by:
getDiagramTypeProvider in interface IDiagramContainer
Specified by:
getDiagramTypeProvider in interface IDiagramEditor
Returns:
The diagram type provider

getEditPartForPictogramElement

public GraphicalEditPart getEditPartForPictogramElement(PictogramElement pe)

getZoomLevel

public double getZoomLevel()

isAlive

public boolean isAlive()

isDirectEditingActive

public boolean isDirectEditingActive()

setDirectEditingActive

public void setDirectEditingActive(boolean directEditingActive)

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

getSite

public IWorkbenchPartSite getSite()
Description copied from interface: IDiagramContainerUI
Returns the IWorkbenchPartSite of the Eclipse IWorkbenchPart that displays this container. E.g. for an editor this will be the editor site.

Specified by:
getSite in interface IDiagramContainerUI
Returns:
The site for the IWorkbenchPart that is displaying the diagram.

getTitle

public String getTitle()
Description copied from interface: IDiagramContainer
Gets the title for the container that is displaying the diagram.

Specified by:
getTitle in interface IDiagramContainer
Returns:
The title as a String

getTitleToolTip

public String getTitleToolTip()
Description copied from interface: IDiagramContainer
Returns the tooltip for the container. For an editor that would e.g. be the string that is displayed when hovering over the editor title tab.

Specified by:
getTitleToolTip in interface IDiagramContainer
Returns:
The tooltip as a String

doSave

public void doSave(IProgressMonitor monitor)
Description copied from interface: IDiagramContainer
Triggers that the diagram model is persisted.

Specified by:
doSave in interface IDiagramContainer

getDiagramBehavior

public DiagramBehavior getDiagramBehavior()
Description copied from interface: IDiagramContainerUI
Returns the DiagramBehavior instance associated with this container.

Specified by:
getDiagramBehavior in interface IDiagramContainer
Specified by:
getDiagramBehavior in interface IDiagramContainerUI
Returns:
The associated DiagramBehavior instance


Copyright (c) SAP AG 2005, 2012.