package org.eclipse.uml2.diagram.sequence.edit.policies; import org.eclipse.gef.commands.Command; import org.eclipse.gef.requests.ChangeBoundsRequest; import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart; import org.eclipse.uml2.diagram.sequence.edit.create.CreateSDElementRequest; /** * @author Michael Golubev */ public class TieFrameRequest extends ChangeBoundsRequest { static final String REQ_TYPE = "tie frame"; //$NON-NLS-1$ public TieFrameRequest(ExpandFrameDragTracker tracker) { super(REQ_TYPE); myTracker = tracker; } /* * Allows TieFrameTargetEditPolicy to use * FrameResizeEditPolicy.ExpandFrameDragTracker to evaluate * tie command and not to do the same job once again. */ Command getCurrentCommandByTool() { return myTracker.getCommand(); } private final ExpandFrameDragTracker myTracker; public static class Completed extends CreateSDElementRequest { private final GraphicalEditPart mySubjectFrameEP; private final TieFrameRequest myOriginalTieRequest; public Completed(TieFrameRequest originalTieRequest, GraphicalEditPart subjectFrameEP){ super(subjectFrameEP.getDiagramPreferencesHint()); myOriginalTieRequest = originalTieRequest; mySubjectFrameEP = subjectFrameEP; setLocation(originalTieRequest.getLocation()); setExtendedData(originalTieRequest.getExtendedData()); } public GraphicalEditPart getSubjectFrameEditPart() { return mySubjectFrameEP; } public TieFrameRequest getOriginalTieRequest() { return myOriginalTieRequest; } } }