uk.ac.kcl.cch.jb.pliny.actions
Class MakeConnectionAction

java.lang.Object
  extended byorg.eclipse.core.commands.common.EventManager
      extended byorg.eclipse.jface.action.AbstractAction
          extended byorg.eclipse.jface.action.Action
              extended byuk.ac.kcl.cch.jb.pliny.actions.MakeConnectionAction
All Implemented Interfaces:
org.eclipse.gef.requests.CreationFactory, org.eclipse.jface.action.IAction

public class MakeConnectionAction
extends org.eclipse.jface.action.Action
implements org.eclipse.gef.requests.CreationFactory

This action tells GEF to use its Creation tool to allow the user to create a new Link. To this end, it is also a creation factory for Link objects.

The actual creation of an Anchor happens when the user draws out an area on the screen, and is handled as a part of the GEF policy LOLinkEditPolicy.getConnectionCreateCommand(org.eclipse.gef.requests.CreateConnectionRequest).

Author:
John Bradley

Field Summary
 
Fields inherited from interface org.eclipse.jface.action.IAction
AS_CHECK_BOX, AS_DROP_DOWN_MENU, AS_PUSH_BUTTON, AS_RADIO_BUTTON, AS_UNSPECIFIED, CHECKED, DESCRIPTION, ENABLED, HANDLED, IMAGE, RESULT, TEXT, TOOL_TIP_TEXT
 
Constructor Summary
MakeConnectionAction()
          constructor for this action.
MakeConnectionAction(org.eclipse.gef.EditDomain editDomain)
          constructor for this action.
 
Method Summary
 Object getNewObject()
          creates a new Link object.
 Object getObjectType()
          returns the Link class.
 void run()
          creates a new CreationTool with this as a factory for Links and gives the tool to the editDomain.
 void setEditDomain(org.eclipse.gef.EditDomain editDomain)
          stores the editDomain to which the creation tool will be given.
 
Methods inherited from class org.eclipse.jface.action.Action
convertAccelerator, convertAccelerator, findKeyCode, findKeyString, findModifier, findModifierString, getAccelerator, getActionDefinitionId, getDescription, getDisabledImageDescriptor, getHelpListener, getHoverImageDescriptor, getId, getImageDescriptor, getMenuCreator, getStyle, getText, getToolTipText, isChecked, isEnabled, isHandled, notifyResult, removeAcceleratorText, removeMnemonics, runWithEvent, setAccelerator, setActionDefinitionId, setChecked, setDescription, setDisabledImageDescriptor, setEnabled, setHelpListener, setHoverImageDescriptor, setId, setImageDescriptor, setMenuCreator, setText, setToolTipText
 
Methods inherited from class org.eclipse.jface.action.AbstractAction
addPropertyChangeListener, firePropertyChange, firePropertyChange, removePropertyChangeListener
 
Methods inherited from class org.eclipse.core.commands.common.EventManager
addListenerObject, clearListeners, getListeners, isListenerAttached, removeListenerObject
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.eclipse.jface.action.IAction
addPropertyChangeListener, removePropertyChangeListener
 

Constructor Detail

MakeConnectionAction

public MakeConnectionAction()
constructor for this action. It will require a GEF editDomain to which the tool can be given before it can be used, which can be specified through setEditDomain().


MakeConnectionAction

public MakeConnectionAction(org.eclipse.gef.EditDomain editDomain)
constructor for this action. The editDomain is the one to which the CreateTool is to be given.

Parameters:
editDomain - EditDomain
Method Detail

setEditDomain

public void setEditDomain(org.eclipse.gef.EditDomain editDomain)
stores the editDomain to which the creation tool will be given.

Parameters:
editDomain - EditDomain

run

public void run()
creates a new CreationTool with this as a factory for Links and gives the tool to the editDomain.

The connection tool used is MyConnectionDragCreationTool rather than the normal ConnectionDragCreationTool.

Specified by:
run in interface org.eclipse.jface.action.IAction

getNewObject

public Object getNewObject()
creates a new Link object. Part of the CreationFactory interface.

Note that the Link object is created in such a way that it is not immediately added to the backing DB. This putting in the DB will be done if the user completes the connection.

Specified by:
getNewObject in interface org.eclipse.gef.requests.CreationFactory

getObjectType

public Object getObjectType()
returns the Link class. Part of the CreationFactory interface.

Specified by:
getObjectType in interface org.eclipse.gef.requests.CreationFactory