Class GraphicalComposite

  • All Implemented Interfaces:
    java.util.EventListener, org.eclipse.gef.commands.CommandStackEventListener, org.eclipse.gef.commands.CommandStackListener, org.eclipse.swt.graphics.Drawable, org.eclipse.ui.ISelectionListener
    Direct Known Subclasses:
    DiagramComposite

    public abstract class GraphicalComposite
    extends org.eclipse.swt.widgets.Composite
    implements org.eclipse.gef.commands.CommandStackListener, org.eclipse.gef.commands.CommandStackEventListener, org.eclipse.ui.ISelectionListener
    Based on the original GEF GraphicalEditor class, this is a composite that supports graphical editing.
    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
    • Constructor Summary

      Constructors 
      Constructor Description
      GraphicalComposite​(org.eclipse.swt.widgets.Composite parent, int style)
      Constructs the editor part
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      void commandStackChanged​(java.util.EventObject event)
      Deprecated.
      Replaced by stackChanged(CommandStackEvent) because the class CommandStackListener is deprecated by GEF
      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)  
      org.eclipse.gef.ui.actions.ActionRegistry getActionRegistry()
      Lazily creates and returns the action registry.
      java.lang.Object getAdapter​(java.lang.Class type)
      Returns the adapter for the specified key.
      protected org.eclipse.gef.commands.CommandStack getCommandStack()
      Returns the command stack.
      org.eclipse.gef.DefaultEditDomain getEditDomain()
      Returns the edit domain.
      org.eclipse.gef.GraphicalViewer getGraphicalViewer()
      Returns the graphical viewer.
      protected java.util.List getPropertyActions()
      Returns the list of IActions dependant on property changes in the Editor.
      java.util.List getSelectionActions()
      Returns the list of IDs of Actions that are dependant on changes in the workbench's ISelectionService.
      protected org.eclipse.gef.ui.parts.SelectionSynchronizer getSelectionSynchronizer()
      Returns the selection syncronizer object.
      protected java.util.List getStackActions()
      Returns the list of IDs of Actions that are dependant on the CommmandStack's state.
      protected abstract org.eclipse.ui.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​(org.eclipse.ui.IWorkbenchPart part, org.eclipse.jface.viewers.ISelection selection)  
      protected void setActionRegistry​(org.eclipse.gef.ui.actions.ActionRegistry registry)
      Sets the ActionRegistry for this EditorPart.
      void setEditDomain​(org.eclipse.gef.DefaultEditDomain editDomain)
      Sets the EditDomain for this EditorPart.
      boolean setFocus()  
      void setGraphicalViewer​(org.eclipse.gef.GraphicalViewer viewer)
      Sets the graphicalViewer for this EditorPart.
      void stackChanged​(org.eclipse.gef.commands.CommandStackEvent event)
      When the command stack changes, the actions interested in the command stack are updated.
      protected void updateActions​(java.util.List actionIds)
      A convenience method for updating a set of actions defined by the given List of action IDs.
      • Methods inherited from class org.eclipse.swt.widgets.Composite

        changed, checkSubclass, drawBackground, getBackgroundMode, getChildren, getLayout, getLayoutDeferred, getTabList, isLayoutDeferred, layout, layout, layout, layout, layout, setBackgroundMode, setLayout, setLayoutDeferred, setTabList, toString
      • 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, isAutoScalable, 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, checkWidget, getData, getData, getDisplay, getListeners, getStyle, isAutoDirection, isDisposed, isListening, notifyListeners, removeDisposeListener, removeListener, removeListener, reskin, setData, setData
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • GraphicalComposite

        public GraphicalComposite​(org.eclipse.swt.widgets.Composite parent,
                                  int style)
        Constructs the editor part
    • Method Detail

      • stackChanged

        public void stackChanged​(org.eclipse.gef.commands.CommandStackEvent event)
        When the command stack changes, the actions interested in the command stack are updated.
        Specified by:
        stackChanged in interface org.eclipse.gef.commands.CommandStackEventListener
        Parameters:
        event - the change event
        Since:
        0.15
      • commandStackChanged

        public void commandStackChanged​(java.util.EventObject event)
        Deprecated.
        Replaced by stackChanged(CommandStackEvent) because the class CommandStackListener is deprecated by GEF
        When the command stack changes, the actions interested in the command stack are updated.
        Specified by:
        commandStackChanged in interface org.eclipse.gef.commands.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()
        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()
        Overrides:
        dispose in class org.eclipse.swt.widgets.Widget
        See Also:
        IWorkbenchPart.dispose()
      • firePropertyChange

        protected void firePropertyChange​(int property)
        See Also:
        WorkbenchPart.firePropertyChange(int)
      • getActionRegistry

        public org.eclipse.gef.ui.actions.ActionRegistry getActionRegistry()
        Lazily creates and returns the action registry.
        Returns:
        the action registry
      • getAdapter

        public java.lang.Object getAdapter​(java.lang.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:
        IAdaptable.getAdapter(java.lang.Class)
      • getCommandStack

        protected org.eclipse.gef.commands.CommandStack getCommandStack()
        Returns the command stack.
        Returns:
        the command stack
      • getEditDomain

        public org.eclipse.gef.DefaultEditDomain getEditDomain()
        Returns the edit domain.
        Returns:
        the edit domain
      • getGraphicalViewer

        public org.eclipse.gef.GraphicalViewer getGraphicalViewer()
        Returns the graphical viewer.
        Returns:
        the graphical viewer
      • getPropertyActions

        protected java.util.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 java.util.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 org.eclipse.gef.ui.parts.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 java.util.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:
        ISaveablePart.isDirty()
      • selectionChanged

        public void selectionChanged​(org.eclipse.ui.IWorkbenchPart part,
                                     org.eclipse.jface.viewers.ISelection selection)
        Specified by:
        selectionChanged in interface org.eclipse.ui.ISelectionListener
        See Also:
        ISelectionListener.selectionChanged(IWorkbenchPart, ISelection)
      • setActionRegistry

        protected void setActionRegistry​(org.eclipse.gef.ui.actions.ActionRegistry registry)
        Sets the ActionRegistry for this EditorPart.
        Parameters:
        registry - the registry
      • setEditDomain

        public void setEditDomain​(org.eclipse.gef.DefaultEditDomain editDomain)
        Sets the EditDomain for this EditorPart.
        Parameters:
        ed - the domain
      • setFocus

        public boolean setFocus()
        Overrides:
        setFocus in class org.eclipse.swt.widgets.Composite
      • setGraphicalViewer

        public void setGraphicalViewer​(org.eclipse.gef.GraphicalViewer viewer)
        Sets the graphicalViewer for this EditorPart.
        Parameters:
        viewer - the graphical viewer
      • updateActions

        protected void updateActions​(java.util.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 org.eclipse.ui.IWorkbenchPart getWorkbenchPart()