blob: ab62d78611411c2728509e98d9f386f1b9ee373d [file] [log] [blame]
/**
*
*/
package org.eclipse.epf.diagramming.base.commands;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.gmf.runtime.emf.type.core.commands.CreateRelationshipCommand;
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
import org.eclipse.uml2.uml.ActivityNode;
import org.eclipse.uml2.uml.ControlFlow;
import org.eclipse.uml2.uml.UMLPackage;
/**
* @author Shashidhar Kannoori
*
*/
public class CreateIncomingControlFlowCommand extends CreateRelationshipCommand {
/**
*
* @param request
* @param element
*/
public CreateIncomingControlFlowCommand(CreateRelationshipRequest request,
EObject element) {
super(request);
setElementToEdit(element);
}
/**
* @param request
*/
public CreateIncomingControlFlowCommand(CreateRelationshipRequest request) {
super(request);
// TODO Auto-generated constructor stub
}
protected EClass getEClassToEdit() {
return UMLPackage.eINSTANCE.getActivity();
}
public boolean canExecute() {
// if(getSource() == null)
// return false;
//
// if (getEClassToEdit() == null) {
// return false;
// }
//
// if (getContainmentFeature() != null) {
// EClassifier eClassifier = getContainmentFeature().getEType();
// boolean result = true;
//
// if (eClassifier instanceof EClass) {
// result = ((EClass) eClassifier).isSuperTypeOf(getElementType()
// .getEClass());
// }
//
// result = result
// && PackageUtil.canReference(getEClassToEdit(),
// getContainmentFeature(), getElementType()
// .getEClass());
//
// return result;
// }
// return false;
return super.canExecute();
}
protected EObject doDefaultElementCreation() {
ControlFlow newElement = (ControlFlow) super.doDefaultElementCreation();
if (newElement != null) {
newElement.setTarget((ActivityNode) getTarget());
newElement.setSource((ActivityNode) getSource());
}
return newElement;
}
}