/** * */ package org.jboss.tools.smooks.gef.tree.editpolicy; import org.eclipse.draw2d.geometry.Point; import org.eclipse.draw2d.geometry.Rectangle; import org.eclipse.gef.EditPart; import org.eclipse.gef.EditPolicy; import org.eclipse.gef.Request; import org.eclipse.gef.commands.Command; import org.eclipse.gef.editpolicies.LayoutEditPolicy; import org.eclipse.gef.editpolicies.NonResizableEditPolicy; import org.eclipse.gef.requests.ChangeBoundsRequest; import org.eclipse.gef.requests.CreateRequest; import org.jboss.tools.smooks.gef.tree.editparts.ChangeConstraintCommand; import org.jboss.tools.smooks.gef.tree.figures.IMoveableModel; /** * @author DartPeng * */ public class RootPanelXYLayoutEditPolicy extends LayoutEditPolicy { // /* // * (non-Javadoc) // * // * @seeorg.eclipse.gef.editpolicies.ConstrainedLayoutEditPolicy# // * createChangeConstraintCommand(org.eclipse.gef.EditPart, java.lang.Object) // */ // @Override // protected Command createChangeConstraintCommand(EditPart child, // Object constraint) { // // } /* * (non-Javadoc) * * @see * org.eclipse.gef.editpolicies.LayoutEditPolicy#getCreateCommand(org.eclipse * .gef.requests.CreateRequest) */ @Override protected Command getCreateCommand(CreateRequest request) { return null; } @Override protected EditPolicy createChildEditPolicy(EditPart child) { return new NonResizableEditPolicy(){ @Override protected Command getMoveCommand(ChangeBoundsRequest request) { Object model = getHost().getModel(); if (request instanceof ChangeBoundsRequest && model instanceof IMoveableModel) { Point delta = ((ChangeBoundsRequest)request).getMoveDelta(); Rectangle rect = ((IMoveableModel) model).getBounds(); rect.setLocation(rect.x+delta.x, rect.y + delta.y); ChangeConstraintCommand command = new ChangeConstraintCommand( (Rectangle) rect, (IMoveableModel) model); return command; } return null; } }; } @Override protected Command getMoveChildrenCommand(Request request) { return null; } }