Class BendpointEditPolicyFixed

  • All Implemented Interfaces:
    java.beans.PropertyChangeListener, java.util.EventListener, org.eclipse.core.runtime.IAdaptable, org.eclipse.gef.EditPolicy, org.eclipse.gef.RequestConstants
    Direct Known Subclasses:
    ConnectionBendpointEditPolicy

    public abstract class BendpointEditPolicyFixed
    extends org.eclipse.gef.editpolicies.SelectionHandlesEditPolicy
    implements java.beans.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 
      Modifier and Type Field Description
      protected boolean isDeleting  
      protected static java.util.List<org.eclipse.draw2d.Bendpoint> NULL_CONSTRAINT  
      protected java.util.List<?> originalConstraint  
      protected static org.eclipse.draw2d.geometry.Point ref1  
      protected static org.eclipse.draw2d.geometry.Point ref2  
      • 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_CLONE, 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
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      void activate()
      activate() is extended to add a listener to the Connection figure.
      protected java.util.List<org.eclipse.gef.handles.BendpointHandle> createHandlesForAutomaticBendpoints()  
      protected java.util.List<org.eclipse.gef.handles.BendpointHandle> createHandlesForUserBendpoints()  
      protected java.util.List<org.eclipse.gef.handles.BendpointHandle> 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​(org.eclipse.gef.requests.BendpointRequest request)
      Erases all bendpoint feedback.
      void eraseSourceFeedback​(org.eclipse.gef.Request request)  
      org.eclipse.gef.commands.Command getCommand​(org.eclipse.gef.Request request)
      Factors the Request into either a MOVE, a DELETE, or a CREATE of a bendpoint.
      protected IConfigurationProviderInternal getConfigurationProvider()  
      protected org.eclipse.draw2d.Connection getConnection()
      Convenience method for obtaining the host's Connection figure.
      protected java.util.List<org.eclipse.draw2d.Bendpoint> getConnectionRoutingConstraint()  
      protected abstract org.eclipse.gef.commands.Command getCreateBendpointCommand​(org.eclipse.gef.requests.BendpointRequest request)
      Implement this method to return a Command that will create a bendpoint.
      protected abstract org.eclipse.gef.commands.Command getDeleteBendpointCommand​(org.eclipse.gef.requests.BendpointRequest request)
      Implement this method to return a Command that will delete a bendpoint.
      protected IFeatureProvider getFeatureProvider()  
      protected abstract org.eclipse.gef.commands.Command getMoveBendpointCommand​(org.eclipse.gef.requests.BendpointRequest request)
      Implement this method to return a Command that will move a bendpoint.
      protected boolean isAutomaticallyBending()  
      protected boolean lineContainsPoint​(org.eclipse.draw2d.geometry.Point p1, org.eclipse.draw2d.geometry.Point p2, org.eclipse.draw2d.geometry.Point p)  
      void propertyChange​(java.beans.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 setReferencePoints​(org.eclipse.gef.requests.BendpointRequest request)  
      protected void showCreateBendpointFeedback​(org.eclipse.gef.requests.BendpointRequest request)
      Shows feedback when a bendpoint is being created.
      protected void showDeleteBendpointFeedback​(org.eclipse.gef.requests.BendpointRequest request)
      Shows feedback when a bendpoint is being deleted.
      protected void showMoveBendpointFeedback​(org.eclipse.gef.requests.BendpointRequest request)
      Shows feedback when a bendpoint is being moved.
      void showSourceFeedback​(org.eclipse.gef.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, getFeedbackLayer, 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
    • Field Detail

      • NULL_CONSTRAINT

        protected static final java.util.List<org.eclipse.draw2d.Bendpoint> NULL_CONSTRAINT
      • originalConstraint

        protected java.util.List<?> originalConstraint
      • isDeleting

        protected boolean isDeleting
      • ref1

        protected static final org.eclipse.draw2d.geometry.Point ref1
      • ref2

        protected static final org.eclipse.draw2d.geometry.Point ref2
    • Method Detail

      • activate

        public void activate()
        activate() is extended to add a listener to the Connection figure.
        Specified by:
        activate in interface org.eclipse.gef.EditPolicy
        Overrides:
        activate in class org.eclipse.gef.editpolicies.SelectionEditPolicy
        See Also:
        EditPolicy.activate()
      • createHandlesForAutomaticBendpoints

        protected java.util.List<org.eclipse.gef.handles.BendpointHandle> createHandlesForAutomaticBendpoints()
      • createHandlesForUserBendpoints

        protected java.util.List<org.eclipse.gef.handles.BendpointHandle> createHandlesForUserBendpoints()
      • createSelectionHandles

        protected java.util.List<org.eclipse.gef.handles.BendpointHandle> 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 org.eclipse.gef.editpolicies.SelectionHandlesEditPolicy
        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 org.eclipse.gef.EditPolicy
        Overrides:
        deactivate in class org.eclipse.gef.editpolicies.SelectionEditPolicy
        See Also:
        EditPolicy.deactivate()
      • eraseConnectionFeedback

        protected void eraseConnectionFeedback​(org.eclipse.gef.requests.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​(org.eclipse.gef.Request request)
        Specified by:
        eraseSourceFeedback in interface org.eclipse.gef.EditPolicy
        Overrides:
        eraseSourceFeedback in class org.eclipse.gef.editpolicies.AbstractEditPolicy
        See Also:
        EditPolicy.eraseSourceFeedback(Request)
      • getCommand

        public org.eclipse.gef.commands.Command getCommand​(org.eclipse.gef.Request request)
        Factors the Request into either a MOVE, a DELETE, or a CREATE of a bendpoint.
        Specified by:
        getCommand in interface org.eclipse.gef.EditPolicy
        Overrides:
        getCommand in class org.eclipse.gef.editpolicies.AbstractEditPolicy
        See Also:
        EditPolicy.getCommand(Request)
      • getConnection

        protected org.eclipse.draw2d.Connection getConnection()
        Convenience method for obtaining the host's Connection figure.
        Returns:
        the Connection figure
      • getCreateBendpointCommand

        protected abstract org.eclipse.gef.commands.Command getCreateBendpointCommand​(org.eclipse.gef.requests.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 org.eclipse.gef.commands.Command getDeleteBendpointCommand​(org.eclipse.gef.requests.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 org.eclipse.gef.commands.Command getMoveBendpointCommand​(org.eclipse.gef.requests.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
      • isAutomaticallyBending

        protected boolean isAutomaticallyBending()
      • lineContainsPoint

        protected boolean lineContainsPoint​(org.eclipse.draw2d.geometry.Point p1,
                                            org.eclipse.draw2d.geometry.Point p2,
                                            org.eclipse.draw2d.geometry.Point p)
      • propertyChange

        public void propertyChange​(java.beans.PropertyChangeEvent evt)
        If the number of bendpoints changes, handles are updated.
        Specified by:
        propertyChange in interface java.beans.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.
      • setReferencePoints

        protected void setReferencePoints​(org.eclipse.gef.requests.BendpointRequest request)
      • showCreateBendpointFeedback

        protected void showCreateBendpointFeedback​(org.eclipse.gef.requests.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​(org.eclipse.gef.requests.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​(org.eclipse.gef.requests.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​(org.eclipse.gef.Request request)
        Shows feedback when appropriate. Calls a different method depending on the request type.
        Specified by:
        showSourceFeedback in interface org.eclipse.gef.EditPolicy
        Overrides:
        showSourceFeedback in class org.eclipse.gef.editpolicies.AbstractEditPolicy
        Parameters:
        request - the Request
        See Also:
        showCreateBendpointFeedback(BendpointRequest), showMoveBendpointFeedback(BendpointRequest)
      • getConnectionRoutingConstraint

        protected java.util.List<org.eclipse.draw2d.Bendpoint> getConnectionRoutingConstraint()