Eclipse GEF 3.2

## 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 <x,y> coordinates 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
`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 before the given 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, createSizeOnDropFeedback, deactivate, decorateChild, decorateChildren, eraseLayoutTargetFeedback, eraseSizeOnDropFeedback, eraseTargetFeedback, getCloneCommand, getCommand, getCreateCommand, getCreationFeedbackOffset, getDeleteDependantCommand, getLayoutContainer, getOrphanChildrenCommand, getSizeOnDropFeedback, getSizeOnDropFeedback, getTargetEditPart, setListener, showLayoutTargetFeedback, showSizeOnDropFeedback, showTargetFeedback, 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`

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 before the given 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 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 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 3.2

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