package org.eclipse.uml2.diagram.sequence.edit.policies;
import org.eclipse.gef.EditPart;
import org.eclipse.gef.Request;
import org.eclipse.gef.commands.Command;
import org.eclipse.gef.editpolicies.GraphicalEditPolicy;
public class TieFrameTargetEditPolicy extends GraphicalEditPolicy {
public static final String ROLE = "TieFrameTargetEditPolicy"; //$NON-NLS-1$
public TieFrameTargetEditPolicy () {
myTargetFeedbackHelper = new TargetFeedbackHelper(this);
}
public Command getCommand(Request request) {
if (request instanceof TieFrameRequest) {
TieFrameRequest r = (TieFrameRequest)request;
return r.getCurrentCommandByTool();
}
return null;
}
public void showTargetFeedback(Request request) {
if (request instanceof TieFrameRequest) {
myTargetFeedbackHelper.showFeedback(request);
}
}
public void eraseTargetFeedback(Request request) {
if (request instanceof TieFrameRequest) {
myTargetFeedbackHelper.eraseFeedback();
}
}
@Override
public EditPart getTargetEditPart(Request request) {
if (understandsRequest(request)){
return getHost();
}
return super.getTargetEditPart(request);
}
public boolean understandsRequest(Request req) {
return (req instanceof TieFrameRequest);
}
private final TargetFeedbackHelper myTargetFeedbackHelper;
}