package org.eclipse.uml2.diagram.sequence.edit.policies; import org.eclipse.draw2d.IFigure; import org.eclipse.gef.EditPart; import org.eclipse.gef.Request; import org.eclipse.gef.commands.Command; import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart; public class ExpandFrameDragTracker extends org.eclipse.gef.tools.DragEditPartsTracker { private final IFigure myHandle; private final int myExpandDirection; public ExpandFrameDragTracker(GraphicalEditPart owner, int expandDirection, IFigure handle) { super(owner); myHandle = handle; myExpandDirection = expandDirection; } public void activate() { super.activate(); myHandle.setVisible(false); } public void deactivate() { myHandle.setVisible(true); super.deactivate(); } protected Request createTargetRequest() { TieFrameRequest request = new TieFrameRequest(this); request.setResizeDirection(myExpandDirection); return request; } protected String getCommandName() { return TieFrameRequest.REQ_TYPE; } protected Command getCommand() { EditPart editPart = getTargetEditPart(); if (editPart == getSourceEditPart()) { return null; } if (!(editPart instanceof GraphicalEditPart)) { return null; } TieFrameRequest.Completed completedRequest = new TieFrameRequest.Completed((TieFrameRequest) getTargetRequest(), (GraphicalEditPart) getSourceEditPart()); Command command = editPart.getCommand(completedRequest); return command; } @Override protected void setTargetEditPart(EditPart editpart) { super.setTargetEditPart(editpart); } }