Package org.eclipse.gef.editpolicies
Class ConstrainedLayoutEditPolicy
java.lang.Object
org.eclipse.gef.editpolicies.AbstractEditPolicy
org.eclipse.gef.editpolicies.GraphicalEditPolicy
org.eclipse.gef.editpolicies.LayoutEditPolicy
org.eclipse.gef.editpolicies.ConstrainedLayoutEditPolicy
- All Implemented Interfaces:
- EditPolicy,- RequestConstants
- Direct Known Subclasses:
- XYLayoutEditPolicy
For use with 
LayoutManager that require a constraint.
 ConstrainedLayoutEditPolicy understands
 RequestConstants.REQ_ALIGN_CHILDREN in addition to the Requests
 handled in the superclass.- Since:
- 2.0
- 
Field SummaryFieldsModifier and TypeFieldDescriptionprotected static final DimensionConstant being used to indicate that upon creation (or during move) a size was not specified.Fields inherited from interface org.eclipse.gef.EditPolicyCOMPONENT_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_ROLEFields inherited from interface org.eclipse.gef.RequestConstantsREQ_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 SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionprotected CommandcreateAddCommand(EditPart child, Object constraint) Deprecated.protected CommandcreateAddCommand(ChangeBoundsRequest request, EditPart child, Object constraint) Returns theCommandto perform an Add with the specified child and constraint.protected CommandcreateChangeConstraintCommand(EditPart child, Object constraint) Deprecated.protected CommandcreateChangeConstraintCommand(ChangeBoundsRequest request, EditPart child, Object constraint) The request is now made available when creating the change constraint command.protected EditPolicycreateChildEditPolicy(EditPart child) AResizableEditPolicyis used by default for children.protected CommandgetAddCommand(Request generic) OverridesgetAddCommand()to generate the proper constraint for each child being added.protected CommandgetAlignChildrenCommand(AlignmentRequest request) Returns the command to align a group of children.protected CommandReturns theCommandfor changing bounds for a group of children.getCommand(Request request) Factors out RESIZE and ALIGN requests, otherwise callssuper.protected abstract ObjectgetConstraintFor(Point point) Generates a draw2d constraint given aPoint.protected abstract ObjectgetConstraintFor(Rectangle rect) Generates a draw2d constraint given aRectangle.protected ObjectgetConstraintFor(Request request, GraphicalEditPart child, Rectangle rectangle) Responsible of generating a draw2d constraint for the given Rectangle, which represents the already transformed (layout-relative) position and size of the given Request.protected ObjectgetConstraintFor(ChangeBoundsRequest request, GraphicalEditPart child) Generates a draw2d constraint object for the givenChangeBoundsRequestand child EditPart by delegating togetConstraintFor(Request, GraphicalEditPart, Rectangle).protected ObjectgetConstraintFor(CreateRequest request) Generates a draw2d constraint for the givenCreateRequestby delegating togetConstraintFor(Request, GraphicalEditPart, Rectangle).protected ObjectgetConstraintForClone(GraphicalEditPart part, ChangeBoundsRequest request) Deprecated.protected CommandgetMoveChildrenCommand(Request request) Returns theCommandto move a group of children.protected CommandReturns theCommandto resize a group of children.protected ObjecttranslateToModelConstraint(Object figureConstraint) Converts a constraint from the format used by LayoutManagers, to the form stored in the model.Methods inherited from class org.eclipse.gef.editpolicies.LayoutEditPolicyactivate, createListener, createSizeOnDropFeedback, deactivate, decorateChild, decorateChildren, eraseLayoutTargetFeedback, eraseSizeOnDropFeedback, eraseTargetFeedback, getCloneCommand, getCreateCommand, getCreationFeedbackOffset, getDeleteDependantCommand, getLayoutContainer, getLayoutOrigin, getOrphanChildrenCommand, getSizeOnDropFeedback, getSizeOnDropFeedback, getTargetEditPart, setListener, showLayoutTargetFeedback, showSizeOnDropFeedback, showTargetFeedback, translateFromAbsoluteToLayoutRelative, translateFromLayoutRelativeToAbsolute, undecorateChild, undecorateChildrenMethods inherited from class org.eclipse.gef.editpolicies.GraphicalEditPolicyaddFeedback, getFeedbackLayer, getHost, getHostFigure, getLayer, removeFeedbackMethods inherited from class org.eclipse.gef.editpolicies.AbstractEditPolicydebugFeedback, eraseSourceFeedback, setHost, showSourceFeedback, toString, understandsRequest
- 
Field Details- 
UNSPECIFIED_SIZEConstant being used to indicate that upon creation (or during move) a size was not specified.- Since:
- 3.7
 
 
- 
- 
Constructor Details- 
ConstrainedLayoutEditPolicypublic ConstrainedLayoutEditPolicy()
 
- 
- 
Method Details- 
createAddCommandReturns theCommandto perform an Add with the specified child and constraint. The constraint has been converted from a draw2d constraint to an object suitable for the model by callingtranslateToModelConstraint(Object).- Parameters:
- request- the ChangeBoundsRequest
- child- the EditPart of the child being added
- constraint- the model constraint, after being- translated
- Returns:
- the Command to add the child
- Since:
- 3.7
 
- 
createAddCommandDeprecated.Returns theCommandto perform an Add with the specified child and constraint. The constraint has been converted from a draw2d constraint to an object suitable for the model by callingtranslateToModelConstraint(Object).- Parameters:
- child- the EditPart of the child being added
- constraint- the model constraint, after being- translated
- Returns:
- the Command to add the child
- @nooverride
- Overwrite
             createAddCommand(ChangeBoundsRequest, EditPart, Object)instead.
- @noreference
- Use
              createAddCommand(ChangeBoundsRequest, EditPart, Object)instead.
 
- 
createChangeConstraintCommandprotected Command createChangeConstraintCommand(ChangeBoundsRequest request, EditPart child, Object constraint) The request is now made available when creating the change constraint command. By default, this method invokes the oldmethod.- Parameters:
- request- the ChangeBoundsRequest
- child- the EditPart of the child being changed
- constraint- the new constraint, after being- translated
- Returns:
- A Command to change the constraints of the given child as specified in the given request
- Since:
- 3.0
- See Also:
 
- 
createChangeConstraintCommandDeprecated.Returns theCommandto change the specified child's constraint. The constraint has been converted from a draw2d constraint to an object suitable for the model. Clients should overwritecreateChangeConstraintCommand(ChangeBoundsRequest, EditPart, Object)instead.- Parameters:
- child- the EditPart of the child being changed
- constraint- the new constraint, after being- translated
- Returns:
- Command
- See Also:
- @nooverride
- Overwrite
             createChangeConstraintCommand(ChangeBoundsRequest, EditPart, Object)instead.
- @noreference
- Use
              createChangeConstraintCommand(ChangeBoundsRequest, EditPart, Object)instead.
 
- 
createChildEditPolicyAResizableEditPolicyis used by default for children. Subclasses may override this method to supply a different EditPolicy.- Specified by:
- createChildEditPolicyin class- LayoutEditPolicy
- Parameters:
- child- the child EditPart
- Returns:
- an EditPolicy to be installed as the
         EditPolicy.PRIMARY_DRAG_ROLE
- See Also:
 
- 
getAddCommandOverridesgetAddCommand()to generate the proper constraint for each child being added. Once the constraint is calculated,createAddCommand(EditPart,Object)is called. Subclasses must implement this method.- Overrides:
- getAddCommandin class- LayoutEditPolicy
- Parameters:
- generic- the ADD Request
- Returns:
- A command to perform the ADD.
- See Also:
 
- 
getAlignChildrenCommandReturns the command to align a group of children. By default, this is treated the same as a resize, andgetResizeChildrenCommand(ChangeBoundsRequest)is returned.- Parameters:
- request- the AligmentRequest
- Returns:
- the command to perform alignment
 
- 
getCommandFactors out RESIZE and ALIGN requests, otherwise callssuper.- Specified by:
- getCommandin interface- EditPolicy
- Overrides:
- getCommandin class- LayoutEditPolicy
- Parameters:
- request- the Request
- Returns:
- nullor a Command contribution
- See Also:
 
- 
getConstraintForGenerates a draw2d constraint object for the givenChangeBoundsRequestand child EditPart by delegating togetConstraintFor(Request, GraphicalEditPart, Rectangle). The rectangle being passed over togetConstraintFor(Request, GraphicalEditPart, Rectangle)is calculated based on the child figure's current bounds and the ChangeBoundsRequest's move and resize deltas. It is made layout-relative by usingLayoutEditPolicy.translateFromAbsoluteToLayoutRelative(Translatable)before callinggetConstraintFor(Request, GraphicalEditPart, Rectangle).- Parameters:
- request- the ChangeBoundsRequest
- child- the child EditPart for which the constraint should be generated
- Returns:
- the draw2d constraint
 
- 
getConstraintForResponsible of generating a draw2d constraint for the given Rectangle, which represents the already transformed (layout-relative) position and size of the given Request. By default, this method delegates togetConstraintFor(Point)orgetConstraintFor(Rectangle), dependent on whether the size of the rectangle is anUNSPECIFIED_SIZEor not. Subclasses may overwrite this method in case they need the request or the edit part (which will of course not be set during creation) to calculate a layout constraint for the request.- Parameters:
- rectangle- the Rectangle relative to the- layout origin
- Returns:
- the constraint
- Since:
- 3.7
 
- 
getConstraintForGenerates a draw2d constraint given aPoint. This method is called during creation, when only a mouse location is available, as well as during move, in case no resizing is involved.- Parameters:
- point- the Point relative to the- layout origin
- Returns:
- the constraint
 
- 
getConstraintForGenerates a draw2d constraint given aRectangle. This method is called during most operations.- Parameters:
- rect- the Rectangle relative to the- layout origin
- Returns:
- the constraint
 
- 
getConstraintForGenerates a draw2d constraint for the givenCreateRequestby delegating togetConstraintFor(Request, GraphicalEditPart, Rectangle). If the CreateRequest has a size, is used during size-on-drop creation, a Rectangle of the request's location and size is passed with the delegation. Otherwise, a rectangle with the request's location and an empty size (0,0) is passed over.The CreateRequest's location is relative to the Viewer. The location is made layout-relative by using LayoutEditPolicy.translateFromAbsoluteToLayoutRelative(Translatable)before callinggetConstraintFor(Request, GraphicalEditPart, Rectangle).- Parameters:
- request- the CreateRequest
- Returns:
- a draw2d constraint
 
- 
getConstraintForClone@Deprecated protected Object getConstraintForClone(GraphicalEditPart part, ChangeBoundsRequest request) Deprecated.Returns the correct rectangle bounds for the new clone's location.- Parameters:
- part- the graphical edit part representing the object to be cloned.
- request- the ChangeBoundsRequest that knows where to place the new object.
- Returns:
- the bounds that will be used for the new object.
- @nooverride
- This method is not intended to be re-implemented or extended by clients.
- @noreference
- This method is not intended to be referenced by clients.
 
- 
translateToModelConstraintConverts a constraint from the format used by LayoutManagers, to the form stored in the model.- Parameters:
- figureConstraint- the draw2d constraint
- Returns:
- the model constraint
 
- 
getResizeChildrenCommandReturns theCommandto resize a group of children.- Parameters:
- request- the ChangeBoundsRequest
- Returns:
- the Command
 
- 
getChangeConstraintCommandReturns theCommandfor changing bounds for a group of children.- Parameters:
- request- the ChangeBoundsRequest
- Returns:
- the Command
- Since:
- 3.7
 
- 
getMoveChildrenCommandReturns theCommandto move a group of children. By default, move is treated the same as a resize.- Specified by:
- getMoveChildrenCommandin class- LayoutEditPolicy
- Parameters:
- request- the Request
- Returns:
- the Command to perform the move
- See Also:
 
 
- 
createAddCommand(ChangeBoundsRequest, EditPart, Object)instead.