org.eclipse.graphiti.ui.editor

## Class DiagramComposite

- java.lang.Object
- - org.eclipse.swt.widgets.Widget
  - - org.eclipse.swt.widgets.Control
    - - org.eclipse.swt.widgets.Scrollable
      - - org.eclipse.swt.widgets.Composite
        - - org.eclipse.graphiti.ui.editor.GraphicalComposite
          - - org.eclipse.graphiti.ui.editor.DiagramComposite

All Implemented Interfaces:
  EventListener, IAdaptable, org.eclipse.gef.commands.CommandStackListener, IDiagramContainer, IDiagramContainerUI, Drawable, ISelectionListener

    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

### Fields inherited from class org.eclipse.swt.widgets.Composite

`embeddedHandle`

### Fields inherited from class org.eclipse.swt.widgets.Widget

`handle`

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

`DIAGRAM_CONTEXT_ID`

### Constructor Summary

Constructors
Constructor and Description
`DiagramComposite(Composite parent, int style)`
`DiagramComposite(IWorkbenchPart ownedPart, Composite parent, int style)`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `close()` Notify the container that it should shut down or clear it's state.
`void` `configureGraphicalViewer()` Called to configure the graphical viewer before it receives its contents.
`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.
`org.eclipse.gef.GraphicalEditPart` `getEditPartForPictogramElement(PictogramElement pe)`
`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(org.eclipse.emf.transaction.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, createControl, getActionRegistry, getEditDomain, getGraphicalViewer, getSelectionActions, hookGraphicalViewer, selectionChanged, setEditDomain, setGraphicalViewer`

### Methods inherited from class org.eclipse.swt.widgets.Composite

`changed, drawBackground, getBackgroundMode, getChildren, getLayout, getLayoutDeferred, getTabList, isLayoutDeferred, layout, layout, layout, layout, layout, setBackgroundMode, setLayout, setLayoutDeferred, setTabList`

### Methods inherited from class org.eclipse.swt.widgets.Scrollable

`computeTrim, getClientArea, getHorizontalBar, getScrollbarsMode, getVerticalBar`

### Methods inherited from class org.eclipse.swt.widgets.Control

`addControlListener, addDragDetectListener, addFocusListener, addGestureListener, addHelpListener, addKeyListener, addMenuDetectListener, addMouseListener, addMouseMoveListener, addMouseTrackListener, addMouseWheelListener, addPaintListener, addTouchListener, addTraverseListener, computeSize, computeSize, dragDetect, dragDetect, forceFocus, getAccessible, getBackground, getBackgroundImage, getBorderWidth, getBounds, getCursor, getDragDetect, getEnabled, getFont, getForeground, getLayoutData, getLocation, getMenu, getMonitor, getOrientation, getParent, getRegion, getShell, getSize, getTextDirection, getToolTipText, getTouchEnabled, getVisible, internal_dispose_GC, internal_new_GC, isEnabled, isFocusControl, isReparentable, isVisible, moveAbove, moveBelow, pack, pack, print, redraw, redraw, removeControlListener, removeDragDetectListener, removeFocusListener, removeGestureListener, removeHelpListener, removeKeyListener, removeMenuDetectListener, removeMouseListener, removeMouseMoveListener, removeMouseTrackListener, removeMouseWheelListener, removePaintListener, removeTouchListener, removeTraverseListener, requestLayout, setBackground, setBackgroundImage, setBounds, setBounds, setCapture, setCursor, setDragDetect, setEnabled, setFont, setForeground, setLayoutData, setLocation, setLocation, setMenu, setOrientation, setParent, setRedraw, setRegion, setSize, setSize, setTextDirection, setToolTipText, setTouchEnabled, setVisible, toControl, toControl, toDisplay, toDisplay, traverse, traverse, traverse, update`

### Methods inherited from class org.eclipse.swt.widgets.Widget

`addDisposeListener, addListener, getData, getData, getDisplay, getListeners, getStyle, isAutoDirection, isDisposed, isListening, notifyListeners, removeDisposeListener, removeListener, reskin, setData, setData, toString`

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

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

`commandStackChanged, getActionRegistry, getEditDomain, getGraphicalViewer, getSelectionActions, hookGraphicalViewer, setEditDomain, setGraphicalViewer`

### Methods inherited from interface org.eclipse.swt.graphics.Drawable

`isAutoScalable`

### Constructor Detail

#### DiagramComposite

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

#### DiagramComposite

    public DiagramComposite(Composite parent,
                            int style)

### Method Detail

#### setInput

    public void setInput(IDiagramEditorInput input)

#### setInput

    public void setInput(org.eclipse.emf.transaction.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.

Specified by:
  `initializeGraphicalViewer` in interface `IDiagramContainerUI`
See Also:
  `#createGraphicalViewer(Composite)`

#### configureGraphicalViewer

    public 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.

Specified by:
  `configureGraphicalViewer` in interface `IDiagramContainerUI`
Since:
  0.12

#### 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`

#### 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`

#### 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`
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.

Specified by:
  `getAdapter` in interface `IAdaptable`
Overrides:
  `getAdapter` in class `GraphicalComposite`
See Also:
  `IAdaptable.getAdapter(java.lang.Class)`

#### dispose

    public void dispose()

Overrides:
  `dispose` in class `GraphicalComposite`
See Also:
  `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`
Overrides:
  `isDirty` in class `GraphicalComposite`
Returns:
  `true`, if container is dirty, `false` otherwise
See Also:
  `ISaveablePart.isDirty()`

#### getSelectedPictogramElements

    public PictogramElement[] getSelectedPictogramElements()

Description copied from interface: `IDiagramContainer`
Gets all pictogram elements that are currently selected.

Specified by:
  `getSelectedPictogramElements` in interface `IDiagramContainer`
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`
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`
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`
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`
Returns:
  The diagram type provider

#### getEditPartForPictogramElement

    public org.eclipse.gef.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