Eclipse GEF
2.1

org.eclipse.gef.editpolicies
Class BendpointEditPolicy

java.lang.Object
  |
  +--org.eclipse.gef.editpolicies.AbstractEditPolicy
        |
        +--org.eclipse.gef.editpolicies.GraphicalEditPolicy
              |
              +--org.eclipse.gef.editpolicies.SelectionEditPolicy
                    |
                    +--org.eclipse.gef.editpolicies.SelectionHandlesEditPolicy
                          |
                          +--org.eclipse.gef.editpolicies.BendpointEditPolicy
All Implemented Interfaces:
EditPolicy, EventListener, IAdaptable, PropertyChangeListener, RequestConstants

public abstract class BendpointEditPolicy
extends SelectionHandlesEditPolicy
implements PropertyChangeListener

Used to add bendpoint handles on a ConnectionEditPart.

BendpointEditPolicy will automatically observe the Connection figure. If the number of bends in the Connection changes, the handles will be updated.


Field Summary
 
Fields inherited from class org.eclipse.gef.editpolicies.SelectionHandlesEditPolicy
handles
 
Fields inherited from interface org.eclipse.gef.EditPolicy
COMPONENT_ROLE, CONNECTION_BENDPOINTS_ROLE, CONNECTION_ENDPOINTS_ROLE, CONNECTION_ROLE, CONTAINER_ROLE, DIRECT_EDIT_ROLE, GRAPHICAL_NODE_ROLE, LAYOUT_ROLE, NODE_ROLE, PRIMARY_DRAG_ROLE, SELECTION_FEEDBACK_ROLE, TREE_CONTAINER_ROLE
 
Fields inherited from interface org.eclipse.gef.RequestConstants
REQ_ADD, REQ_ALIGN, REQ_ALIGN_CHILDREN, REQ_CONNECTION_END, REQ_CONNECTION_START, REQ_CREATE, REQ_CREATE_BENDPOINT, REQ_DELETE, REQ_DELETE_DEPENDANT, REQ_DIRECT_EDIT, REQ_MOVE, REQ_MOVE_BENDPOINT, REQ_MOVE_CHILDREN, REQ_OPEN, REQ_ORPHAN, REQ_ORPHAN_CHILDREN, REQ_RECONNECT_SOURCE, REQ_RECONNECT_TARGET, REQ_RESIZE, REQ_RESIZE_CHILDREN, REQ_SELECTION, REQ_SELECTION_HOVER
 
Constructor Summary
BendpointEditPolicy()
           
 
Method Summary
 void activate()
          activate() is extended to add a listener to the Connection figure.
protected  List createSelectionHandles()
          Creates selection handles for the bendpoints.
 void deactivate()
          deactivate() is extended to remove the property change listener on the Connection figure.
protected  void eraseConnectionFeedback(BendpointRequest request)
          Erases all bendpoint feedback.
 void eraseSourceFeedback(Request request)
          Does nothing by default.
 Command getCommand(Request request)
          Factors the Request into either a MOVE, a DELETE, or a CREATE of a bendpoint.
protected  Connection getConnection()
          Convenience method for obtaining the host's Connection figure.
protected abstract  Command getCreateBendpointCommand(BendpointRequest request)
          Implement this method to return a Command that will create a bendpoint.
protected abstract  Command getDeleteBendpointCommand(BendpointRequest request)
          Implement this method to return a Command that will delete a bendpoint.
protected abstract  Command getMoveBendpointCommand(BendpointRequest request)
          Implement this method to return a Command that will move a bendpoint.
 void propertyChange(PropertyChangeEvent evt)
          If the number of bendpoints changes, handles are updated.
protected  void restoreOriginalConstraint()
          Restores the original constraint that was saved before feedback began to show.
protected  void saveOriginalConstraint()
          Since the original figure is used for feedback, this method saves the original constraint, so that is can be restored when the feedback is erased.
protected  void showCreateBendpointFeedback(BendpointRequest request)
          Shows feedback when a bendpoint is being created.
protected  void showDeleteBendpointFeedback(BendpointRequest request)
          Shows feedback when a bendpoint is being deleted.
protected  void showMoveBendpointFeedback(BendpointRequest request)
          Shows feedback when a bendpoint is being moved.
 void showSourceFeedback(Request request)
          Shows feedback when appropriate.
 
Methods inherited from class org.eclipse.gef.editpolicies.SelectionHandlesEditPolicy
addSelectionHandles, getAdapter, hideSelection, removeSelectionHandles, showSelection
 
Methods inherited from class org.eclipse.gef.editpolicies.SelectionEditPolicy
addSelectionListener, getTargetEditPart, hideFocus, removeSelectionListener, setFocus, setSelectedState, showFocus, showPrimarySelection
 
Methods inherited from class org.eclipse.gef.editpolicies.GraphicalEditPolicy
addFeedback, getHostFigure, getLayer, removeFeedback
 
Methods inherited from class org.eclipse.gef.editpolicies.AbstractEditPolicy
debugFeedback, eraseTargetFeedback, getHost, setHost, showTargetFeedback, toString, understandsRequest
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

BendpointEditPolicy

public BendpointEditPolicy()
Method Detail

activate

public void activate()
activate() is extended to add a listener to the Connection figure.

Specified by:
activate in interface EditPolicy
Overrides:
activate in class SelectionEditPolicy
See Also:
EditPolicy.activate()

createSelectionHandles

protected List createSelectionHandles()
Creates selection handles for the bendpoints. Explicit (user-defined) bendpoints will have BendpointMoveHandles on them with a single BendpointCreationHandle between 2 consecutive explicit bendpoints. If implicit bendpoints (such as those created by the AutomaticRouter) are used, one BendpointCreationHandle is placed in the middle of the Connection.

Specified by:
createSelectionHandles in class SelectionHandlesEditPolicy
Returns:
List
See Also:
SelectionHandlesEditPolicy.createSelectionHandles()

deactivate

public void deactivate()
deactivate() is extended to remove the property change listener on the Connection figure.

Specified by:
deactivate in interface EditPolicy
Overrides:
deactivate in class SelectionEditPolicy
See Also:
EditPolicy.deactivate()

eraseConnectionFeedback

protected void eraseConnectionFeedback(BendpointRequest request)
Erases all bendpoint feedback. Since the original Connection figure is used for feedback, we just restore the original constraint that was saved before feedback started to show.

Parameters:
request - the BendpointRequest

eraseSourceFeedback

public void eraseSourceFeedback(Request request)
Description copied from class: AbstractEditPolicy
Does nothing by default.

Specified by:
eraseSourceFeedback in interface EditPolicy
Overrides:
eraseSourceFeedback in class AbstractEditPolicy
See Also:
EditPolicy.eraseSourceFeedback(Request)

getCommand

public Command getCommand(Request request)
Factors the Request into either a MOVE, a DELETE, or a CREATE of a bendpoint.

Specified by:
getCommand in interface EditPolicy
Overrides:
getCommand in class AbstractEditPolicy
See Also:
EditPolicy.getCommand(Request)

getConnection

protected Connection getConnection()
Convenience method for obtaining the host's Connection figure.

Returns:
the Connection figure

getCreateBendpointCommand

protected abstract Command getCreateBendpointCommand(BendpointRequest request)
Implement this method to return a Command that will create a bendpoint.

Parameters:
request - the BendpointRequest
Returns:
a Command to create a bendpoint

getDeleteBendpointCommand

protected abstract Command getDeleteBendpointCommand(BendpointRequest request)
Implement this method to return a Command that will delete a bendpoint.

Parameters:
request - the BendpointRequest
Returns:
a Command to delete a bendpoint

getMoveBendpointCommand

protected abstract Command getMoveBendpointCommand(BendpointRequest request)
Implement this method to return a Command that will move a bendpoint.

Parameters:
request - the BendpointRequest
Returns:
a Command to move a bendpoint

propertyChange

public void propertyChange(PropertyChangeEvent evt)
If the number of bendpoints changes, handles are updated.

Specified by:
propertyChange in interface PropertyChangeListener
See Also:
PropertyChangeListener.propertyChange(PropertyChangeEvent)

restoreOriginalConstraint

protected void restoreOriginalConstraint()
Restores the original constraint that was saved before feedback began to show.


saveOriginalConstraint

protected void saveOriginalConstraint()
Since the original figure is used for feedback, this method saves the original constraint, so that is can be restored when the feedback is erased.


showCreateBendpointFeedback

protected void showCreateBendpointFeedback(BendpointRequest request)
Shows feedback when a bendpoint is being created. The original figure is used for feedback and the original constraint is saved, so that it can be restored when feedback is erased.

Parameters:
request - the BendpointRequest

showDeleteBendpointFeedback

protected void showDeleteBendpointFeedback(BendpointRequest request)
Shows feedback when a bendpoint is being deleted. This method is only called once when the bendpoint is first deleted, not every mouse move. The original figure is used for feedback and the original constraint is saved, so that it can be restored when feedback is erased.

Parameters:
request - the BendpointRequest

showMoveBendpointFeedback

protected void showMoveBendpointFeedback(BendpointRequest request)
Shows feedback when a bendpoint is being moved. Also checks to see if the bendpoint should be deleted and then calls showDeleteBendpointFeedback(BendpointRequest) if needed. The original figure is used for feedback and the original constraint is saved, so that it can be restored when feedback is erased.

Parameters:
request - the BendpointRequest

showSourceFeedback

public void showSourceFeedback(Request request)
Shows feedback when appropriate. Calls a different method depending on the request type.

Specified by:
showSourceFeedback in interface EditPolicy
Overrides:
showSourceFeedback in class AbstractEditPolicy
Parameters:
request - the Request
See Also:
showCreateBendpointFeedback(BendpointRequest), showMoveBendpointFeedback(BendpointRequest)

Eclipse GEF
2.1

Copyright (c) IBM Corp. and others 2000, 2003. All Rights Reserved.