Eclipse GEF 3.2

## org.eclipse.gef.editpolicies
Class LayoutEditPolicy

    java.lang.Object
      org.eclipse.gef.editpolicies.AbstractEditPolicy
          org.eclipse.gef.editpolicies.GraphicalEditPolicy
              org.eclipse.gef.editpolicies.LayoutEditPolicy

All Implemented Interfaces:
  EditPolicy, RequestConstants

Direct Known Subclasses:
  ConstrainedLayoutEditPolicy, OrderedLayoutEditPolicy

public abstract class LayoutEditPolicy
extends GraphicalEditPolicy

Provides support for interacting with children `GraphicalEditParts` with the host figure's current `LayoutManager`.

LayoutEditPolicies are responsible for moving, resizing, reparenting, and creating children. The should provide `Commands` for all of these operations. Feedback on the container can also be useful for some layouts like grids.

LayoutEditPolicies will decorate the host's children with "satellite" EditPolicies. These policies are installed using the `EditPolicy.PRIMARY_DRAG_ROLE`. Simple layouts will use either `ResizableEditPolicy` or `NonResizableEditPolicy`, depending on how the LayoutManager works, and/or attributes of the child EditPart.

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
`LayoutEditPolicy()`

Method Summary
`void` `activate()` Extends activate() to allow proper decoration of children.
`protected abstract EditPolicy` `createChildEditPolicy(EditPart child)` Returns the "satellite" EditPolicy used to decorate the child.
`protected EditPartListener` `createListener()` creates the EditPartListener for observing when children are added to the host.
`protected IFigure` `createSizeOnDropFeedback(CreateRequest createRequest)` Override to provide custom feedback figure for the given create request.
`void` `deactivate()` Overrides deactivate to remove the EditPartListener.
`protected void` `decorateChild(EditPart child)` Decorates the child with a `EditPolicy.PRIMARY_DRAG_ROLE` such as `ResizableEditPolicy`.
`protected void` `decorateChildren()` Decorates all existing children.
`protected void` `eraseLayoutTargetFeedback(Request request)` Erases target layout feedback.
`protected void` `eraseSizeOnDropFeedback(Request request)` Erases size-on-drop feedback used during creation.
`void` `eraseTargetFeedback(Request request)` Calls two more specific methods depending on the Request.
`protected Command` `getAddCommand(Request request)` Override to return the `Command` to perform an `ADD`.
`protected Command` `getCloneCommand(ChangeBoundsRequest request)` Override to contribute to clone requests.
`Command` `getCommand(Request request)` Factors incoming requests into various specific methods.
`protected abstract Command` `getCreateCommand(CreateRequest request)` Returns the `Command` to perform a create.
`protected Insets` `getCreationFeedbackOffset(CreateRequest request)` Returns any insets that need to be applied to the creation feedback's bounds.
`protected Command` `getDeleteDependantCommand(Request request)` Returns the `Command` to delete a child.
`protected IFigure` `getLayoutContainer()` Returns the host's `contentPane`.
`protected abstract Command` `getMoveChildrenCommand(Request request)` Returns the `Command` to move a group of children.
`protected Command` `getOrphanChildrenCommand(Request request)` Returns the `Command` to orphan a group of children.
`protected IFigure` `getSizeOnDropFeedback()` Lazily creates and returns the Figure to use for size-on-drop feedback.
`protected IFigure` `getSizeOnDropFeedback(CreateRequest createRequest)` Lazily creates and returns the Figure to use for size-on-drop feedback.
`EditPart` `getTargetEditPart(Request request)` Returns the host if the Request is an ADD, MOVE, or CREATE.
`protected void` `setListener(EditPartListener listener)` Sets the EditPartListener used to decorate new children.
`protected void` `showLayoutTargetFeedback(Request request)` Shows target layout feedback.
`protected void` `showSizeOnDropFeedback(CreateRequest request)` Shows size-on-drop feedback during creation.
`void` `showTargetFeedback(Request request)` Factors feedback requests into two more specific methods.
`protected void` `undecorateChild(EditPart child)` Removes the decoration added in `decorateChild(EditPart)`.
`protected void` `undecorateChildren()` Removes all decorations added by `decorateChildren()`.

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

### LayoutEditPolicy

    public LayoutEditPolicy()

Method Detail

### activate

    public void activate()

  Extends activate() to allow proper decoration of children.

  Specified by:
    `activate` in interface `EditPolicy`
  Overrides:
    `activate` in class `AbstractEditPolicy`
  See Also:
    `EditPolicy.activate()`

### createChildEditPolicy

    protected abstract EditPolicy createChildEditPolicy(EditPart child)

  Returns the "satellite" EditPolicy used to decorate the child.

  Parameters:
    `child` - the child EditPart
  Returns:
    an EditPolicy to be installed as the `EditPolicy.PRIMARY_DRAG_ROLE`

### createListener

    protected EditPartListener createListener()

  creates the EditPartListener for observing when children are added to the host.

  Returns:
    EditPartListener

### createSizeOnDropFeedback

    protected IFigure createSizeOnDropFeedback(CreateRequest createRequest)

  Override to provide custom feedback figure for the given create request.

  Parameters:
    `createRequest` - the create request
  Returns:
    custom feedback figure

### deactivate

    public void deactivate()

  Overrides deactivate to remove the EditPartListener.

  Specified by:
    `deactivate` in interface `EditPolicy`
  Overrides:
    `deactivate` in class `AbstractEditPolicy`
  See Also:
    `EditPolicy.deactivate()`

### decorateChild

    protected void decorateChild(EditPart child)

  Decorates the child with a `EditPolicy.PRIMARY_DRAG_ROLE` such as `ResizableEditPolicy`.

  Parameters:
    `child` - the child EditPart being decorated

### decorateChildren

    protected void decorateChildren()

  Decorates all existing children. This method is called on activation.

### eraseLayoutTargetFeedback

    protected void eraseLayoutTargetFeedback(Request request)

  Erases target layout feedback. This method is the inverse of `showLayoutTargetFeedback(Request)`.

  Parameters:
    `request` - the Request

### eraseSizeOnDropFeedback

    protected void eraseSizeOnDropFeedback(Request request)

  Erases size-on-drop feedback used during creation.

  Parameters:
    `request` - the Request

### eraseTargetFeedback

    public void eraseTargetFeedback(Request request)

  Calls two more specific methods depending on the Request.

  Specified by:
    `eraseTargetFeedback` in interface `EditPolicy`
  Overrides:
    `eraseTargetFeedback` in class `AbstractEditPolicy`
  See Also:
    `EditPolicy.eraseTargetFeedback(Request)`

### getAddCommand

    protected Command getAddCommand(Request request)

  Override to return the `Command` to perform an `ADD`. By default, `null` is returned.

  Parameters:
    `request` - the ADD Request
  Returns:
    A command to perform the ADD.

### getCloneCommand

    protected Command getCloneCommand(ChangeBoundsRequest request)

  Override to contribute to clone requests.

  Parameters:
    `request` - the clone request
  Returns:
    the command contribution to the clone

### getCommand

    public Command getCommand(Request request)

  Factors incoming requests into various specific methods.

  Specified by:
    `getCommand` in interface `EditPolicy`
  Overrides:
    `getCommand` in class `AbstractEditPolicy`
  See Also:
    `EditPolicy.getCommand(Request)`

### getCreateCommand

    protected abstract Command getCreateCommand(CreateRequest request)

  Returns the `Command` to perform a create.

  Parameters:
    `request` - the CreateRequest
  Returns:
    a Command to perform a create

### getCreationFeedbackOffset

    protected Insets getCreationFeedbackOffset(CreateRequest request)

  Returns any insets that need to be applied to the creation feedback's bounds.

  Parameters:
    `request` - the create request
  Returns:
    insets, if necessary

### getDeleteDependantCommand

    protected Command getDeleteDependantCommand(Request request)

  Returns the `Command` to delete a child. This method does not get called unless the child forwards an additional request to the container editpart.

  Parameters:
    `request` - the Request
  Returns:
    the Command to delete the child

### getLayoutContainer

    protected IFigure getLayoutContainer()

  Returns the host's `contentPane`. The contentPane is the Figure which parents the childrens' figures. It is also the figure which has the LayoutManager that corresponds to this EditPolicy. All operations should be interpreted with respect to this figure.

  Returns:
    the Figure that owns the corresponding `LayoutManager`

### getMoveChildrenCommand

    protected abstract Command getMoveChildrenCommand(Request request)

  Returns the `Command` to move a group of children.

  Parameters:
    `request` - the Request
  Returns:
    the Command to perform the move

### getOrphanChildrenCommand

    protected Command getOrphanChildrenCommand(Request request)

  Returns the `Command` to orphan a group of children. The contribution to orphan might contain two parts, both of which are optional. The first part is to actually remove the children from their existing parent. Some application models will perform an orphan implicitly when the children are added to their new parent. The second part is to perform some adjustments on the remaining children. For example, a Table layout might simplify itself by collapsing any unused columns and rows.

  Parameters:
    `request` - the Request
  Returns:
    `null` or a Command to perform an orphan

### getSizeOnDropFeedback

    protected IFigure getSizeOnDropFeedback(CreateRequest createRequest)

  Lazily creates and returns the Figure to use for size-on-drop feedback.

  Parameters:
    `createRequest` - the createRequest
  Returns:
    the size-on-drop feedback figure

### getSizeOnDropFeedback

    protected IFigure getSizeOnDropFeedback()

  Lazily creates and returns the Figure to use for size-on-drop feedback.

  Returns:
    the size-on-drop feedback figure

### getTargetEditPart

    public EditPart getTargetEditPart(Request request)

  Returns the host if the Request is an ADD, MOVE, or CREATE.

  Specified by:
    `getTargetEditPart` in interface `EditPolicy`
  Overrides:
    `getTargetEditPart` in class `AbstractEditPolicy`
  See Also:
    `EditPolicy.getTargetEditPart(Request)`

### setListener

    protected void setListener(EditPartListener listener)

  Sets the EditPartListener used to decorate new children. If the listener is currently set, it will be unhooked. If the new value is not `null`, it will be hooked.

  The listener must be remembered in case this EditPolicy is removed from the host and replaced with another LayoutEditPolicy.

  Parameters:
    `listener` - `null` or the listener.

### showLayoutTargetFeedback

    protected void showLayoutTargetFeedback(Request request)

  Shows target layout feedback. During moves, reparents, and creation, this method is called to allow the LayoutEditPolicy to temporarily show features of its layout that will help the User understand what will happen if the operation is performed in the current location.

  By default, no feedback is shown.

  Parameters:
    `request` - the Request
  See Also:
    `eraseLayoutTargetFeedback(Request)`

### showSizeOnDropFeedback

    protected void showSizeOnDropFeedback(CreateRequest request)

  Shows size-on-drop feedback during creation.

  Parameters:
    `request` - the CreateRequest

### showTargetFeedback

    public void showTargetFeedback(Request request)

  Factors feedback requests into two more specific methods.

  Specified by:
    `showTargetFeedback` in interface `EditPolicy`
  Overrides:
    `showTargetFeedback` in class `AbstractEditPolicy`
  See Also:
    `EditPolicy.showTargetFeedback(Request)`

### undecorateChild

    protected void undecorateChild(EditPart child)

  Removes the decoration added in `decorateChild(EditPart)`.

  Parameters:
    `child` - the child whose decoration is being removed.

### undecorateChildren

    protected void undecorateChildren()

  Removes all decorations added by `decorateChildren()`.

Eclipse GEF 3.2

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