Eclipse GEF
2.1

org.eclipse.gef.editpolicies
Class OrderedLayoutEditPolicy

java.lang.Object
  |
  +--org.eclipse.gef.editpolicies.AbstractEditPolicy
        |
        +--org.eclipse.gef.editpolicies.GraphicalEditPolicy
              |
              +--org.eclipse.gef.editpolicies.LayoutEditPolicy
                    |
                    +--org.eclipse.gef.editpolicies.OrderedLayoutEditPolicy
All Implemented Interfaces:
EditPolicy, RequestConstants
Direct Known Subclasses:
FlowLayoutEditPolicy

public abstract class OrderedLayoutEditPolicy
extends LayoutEditPolicy

A LayoutEditPolicy for use with LayoutManagers that take no constraints. Such layout managers typically position children in coordinates based on their order in IFigure.getChildren(). Therefore, this EditPolicy must perform the inverse mapping. Given a mouse location from the User, the policy must determine the index at which the child[ren] should be added/created.

Since:
2.0

Field Summary
 
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
OrderedLayoutEditPolicy()
           
 
Method Summary
protected abstract  Command createAddCommand(EditPart child, EditPart after)
          Returns the Command to add the specified child after a reference EditPart.
protected  EditPolicy createChildEditPolicy(EditPart child)
          Since Ordered layouts generally don't use constraints, a NonResizableEditPolicy is used by default for children.
protected abstract  Command createMoveChildCommand(EditPart child, EditPart after)
          Returns the Command to move the specified child after a reference EditPart.
protected  Command getAddCommand(Request req)
          This method is overridden from the superclass to calculate the index at which the children should be added.
protected abstract  EditPart getInsertionReference(Request request)
          Calculates a reference EditPart using the specified Request.
protected  Command getMoveChildrenCommand(Request request)
          A move is interpreted here as a change in order of the children.
 
Methods inherited from class org.eclipse.gef.editpolicies.LayoutEditPolicy
activate, createListener, deactivate, decorateChild, decorateChildren, eraseDragTargetFeedback, eraseLayoutTargetFeedback, eraseSizeOnDropFeedback, eraseTargetFeedback, getCommand, getCreateCommand, getDeleteDependantCommand, getLayoutContainer, getOrphanChildrenCommand, getSizeOnDropFeedback, getTargetEditPart, setListener, showDragTargetFeedback, showLayoutTargetFeedback, showSizeOnDropFeedback, showTargetFeedback
 
Methods inherited from class org.eclipse.gef.editpolicies.GraphicalEditPolicy
addFeedback, getHostFigure, getLayer, removeFeedback
 
Methods inherited from class org.eclipse.gef.editpolicies.AbstractEditPolicy
debugFeedback, eraseSourceFeedback, getHost, setHost, showSourceFeedback, toString, understandsRequest
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

OrderedLayoutEditPolicy

public OrderedLayoutEditPolicy()
Method Detail

createAddCommand

protected abstract Command createAddCommand(EditPart child,
                                            EditPart after)
Returns the Command to add the specified child after a reference EditPart. If the reference is null, the child should be added as the first child.

Parameters:
child - the child being added
after - null or a reference EditPart
Returns:
a Command to add the child

createChildEditPolicy

protected EditPolicy createChildEditPolicy(EditPart child)
Since Ordered layouts generally don't use constraints, a NonResizableEditPolicy is used by default for children. Subclasses may override this method to supply a different EditPolicy.

Specified by:
createChildEditPolicy in class LayoutEditPolicy
Parameters:
child - the child EditPart
Returns:
an EditPolicy to be installed as the EditPolicy.PRIMARY_DRAG_ROLE
See Also:
LayoutEditPolicy.createChildEditPolicy(EditPart)

createMoveChildCommand

protected abstract Command createMoveChildCommand(EditPart child,
                                                  EditPart after)
Returns the Command to move the specified child after a reference EditPart. If the reference is null, the child should be moved in front of all children.

A move is a change in the order of the children, which indirectly causes a change in location on the screen.

Parameters:
child - the child being moved
after - null or a reference EditPart
Returns:
a Command to move the child

getAddCommand

protected Command getAddCommand(Request req)
This method is overridden from the superclass to calculate the index at which the children should be added. The index is determined by finding a reference EditPart, and adding the new child[ren] after that reference part. null is used to indicate that the child[ren] should be added at the beginning.

Subclasses must override createAddCommand(EditPart, EditPart), and should not override this method.

Overrides:
getAddCommand in class LayoutEditPolicy
Parameters:
req - the ADD Request
Returns:
A command to perform the ADD.
See Also:
LayoutEditPolicy.getAddCommand(Request)

getInsertionReference

protected abstract EditPart getInsertionReference(Request request)
Calculates a reference EditPart using the specified Request. The EditPart returned is used to mark the index coming after that EditPart. null is used to indicate the index that comes after no EditPart, that is, it indicates the very first index.

Parameters:
request - the Request
Returns:
null or a reference EditPart

getMoveChildrenCommand

protected Command getMoveChildrenCommand(Request request)
A move is interpreted here as a change in order of the children. This method obtains the proper index, and then calls createMoveChildCommand(EditPart, EditPart), which subclasses must implement. Subclasses should not override this method.

Specified by:
getMoveChildrenCommand in class LayoutEditPolicy
Parameters:
request - the Request
Returns:
the Command to perform the move
See Also:
LayoutEditPolicy.getMoveChildrenCommand(Request)

Eclipse GEF
2.1

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