Class 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
  • Constructor Details

    • OrderedLayoutEditPolicy

      public OrderedLayoutEditPolicy()
  • Method Details

    • 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:
    • 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:
    • 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 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 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:
    • 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