Package 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 withLayoutManagers
that take no constraints. Such layout managers typically position children incoordinates based on their order in 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_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
-
-
Constructor Summary
Constructors Constructor Description OrderedLayoutEditPolicy()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract Command
createAddCommand(EditPart child, EditPart after)
Returns theCommand
to add the specified child after a referenceEditPart
.protected EditPolicy
createChildEditPolicy(EditPart child)
Since Ordered layouts generally don't use constraints, aNonResizableEditPolicy
is used by default for children.protected abstract Command
createMoveChildCommand(EditPart child, EditPart after)
Returns theCommand
to move the specified child before the given referenceEditPart
.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 referenceEditPart
using the specifiedRequest
.protected Command
getMoveChildrenCommand(Request request)
A move is interpreted here as a change in order of the children.protected boolean
isLayoutHorizontal()
Returns whether the layout container's layout manager has a horizontal orientation or not.-
Methods inherited from class org.eclipse.gef.editpolicies.LayoutEditPolicy
activate, createListener, createSizeOnDropFeedback, deactivate, decorateChild, decorateChildren, eraseLayoutTargetFeedback, eraseSizeOnDropFeedback, eraseTargetFeedback, getCloneCommand, getCommand, getCreateCommand, getCreationFeedbackOffset, getDeleteDependantCommand, getLayoutContainer, getLayoutOrigin, getOrphanChildrenCommand, getSizeOnDropFeedback, getSizeOnDropFeedback, getTargetEditPart, setListener, showLayoutTargetFeedback, showSizeOnDropFeedback, showTargetFeedback, translateFromAbsoluteToLayoutRelative, translateFromLayoutRelativeToAbsolute, undecorateChild, undecorateChildren
-
Methods inherited from class org.eclipse.gef.editpolicies.GraphicalEditPolicy
addFeedback, getFeedbackLayer, getHostFigure, getLayer, removeFeedback
-
Methods inherited from class org.eclipse.gef.editpolicies.AbstractEditPolicy
debugFeedback, eraseSourceFeedback, getHost, setHost, showSourceFeedback, toString, understandsRequest
-
-
-
-
Method Detail
-
createAddCommand
protected abstract Command createAddCommand(EditPart child, EditPart after)
Returns theCommand
to add the specified child after a referenceEditPart
. If the reference isnull
, the child should be added as the first child.- Parameters:
child
- the child being addedafter
-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, aNonResizableEditPolicy
is used by default for children. Subclasses may override this method to supply a different EditPolicy.- Specified by:
createChildEditPolicy
in classLayoutEditPolicy
- 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 theCommand
to move the specified child before the given referenceEditPart
. If the reference isnull
, 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 movedafter
-null
or the EditPart that should be after (or to the right of) the child being moved- 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 classLayoutEditPolicy
- 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 referenceEditPart
using the specifiedRequest
. 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 last 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 callscreateMoveChildCommand(EditPart, EditPart)
, which subclasses must implement. Subclasses should not override this method.- Specified by:
getMoveChildrenCommand
in classLayoutEditPolicy
- Parameters:
request
- the Request- Returns:
- the Command to perform the move
- See Also:
LayoutEditPolicy.getMoveChildrenCommand(Request)
-
isLayoutHorizontal
protected boolean isLayoutHorizontal()
Returns whether the layout container's layout manager has a horizontal orientation or not.- Returns:
true
if the layout container's layout manager has a horizontal orientation,false
otherwise- Since:
- 3.7
-
-