package org.activiti.designer.features;
import org.activiti.bpmn.model.EventSubProcess;
import org.activiti.bpmn.model.Lane;
import org.activiti.bpmn.model.SubProcess;
import org.activiti.designer.PluginImage;
import org.eclipse.graphiti.features.IFeatureProvider;
import org.eclipse.graphiti.features.context.ICreateContext;
import org.eclipse.graphiti.mm.pictograms.Diagram;
public class CreateEventSubProcessFeature extends AbstractCreateBPMNFeature {
public static final String FEATURE_ID_KEY = "eventsubprocess";
public CreateEventSubProcessFeature(IFeatureProvider fp) {
super(fp, "EventSubProcess", "Add event sub process");
}
@Override
public boolean canCreate(ICreateContext context) {
Object parentObject = getBusinessObjectForPictogramElement(context.getTargetContainer());
return (context.getTargetContainer() instanceof Diagram ||
parentObject instanceof SubProcess || parentObject instanceof Lane);
}
@Override
public Object[] create(ICreateContext context) {
EventSubProcess newSubProcess = new EventSubProcess();
addObjectToContainer(context, newSubProcess, "Event sub Process");
// return newly created business object(s)
return new Object[] { newSubProcess };
}
@Override
public String getCreateImageId() {
return PluginImage.IMG_EVENT_SUBPROCESS.getImageKey();
}
@Override
protected String getFeatureIdKey() {
return FEATURE_ID_KEY;
}
}