package $packageName$.features;
import org.eclipse.graphiti.features.ICreateConnectionFeature;
import org.eclipse.graphiti.features.IFeatureProvider;
import org.eclipse.graphiti.features.context.ICreateConnectionContext;
import org.eclipse.graphiti.features.context.impl.AddConnectionContext;
import org.eclipse.graphiti.features.impl.AbstractCreateConnectionFeature;
import org.eclipse.graphiti.mm.pictograms.Connection;
import org.eclipse.graphiti.mm.pictograms.PictogramElement;
public class Create$connectionDomainObjectClassNameShort$ConnectionFeature extends AbstractCreateConnectionFeature
implements ICreateConnectionFeature {
public Create$connectionDomainObjectClassNameShort$ConnectionFeature(IFeatureProvider fp) {
super(fp, "$connectionDomainObjectClassNameShort$", "Creates a new $connectionDomainObjectClassNameShort$ between two $shapeDomainObjectClassNameShort$s");
}
@Override
public boolean canStartConnection(ICreateConnectionContext context) {
// TODO: check for right domain object instance below
// return getBusinessObjectForPictogramElement(context.getSourcePictogramElement()) instanceof <DomainObject>;
return true;
}
@Override
public boolean canCreate(ICreateConnectionContext context) {
PictogramElement sourcePictogramElement = context.getSourcePictogramElement();
PictogramElement targetPictogramElement = context.getTargetPictogramElement();
// TODO: check for right domain object instance below
// if (getBusinessObjectForPictogramElement(sourcePictogramElement) instanceof <DomainObject> && getBusinessObjectForPictogramElement(targetPictogramElement) instanceof <DomainObject>) {
// return true;
// }
return sourcePictogramElement != null && targetPictogramElement != null;
}
@Override
public Connection create(ICreateConnectionContext context) {
Connection newConnection = null;
// TODO: create the domain object connection here
Object newDomainObjectConnetion = null;
AddConnectionContext addContext = new AddConnectionContext(context.getSourceAnchor(), context.getTargetAnchor());
addContext.setNewObject(newDomainObjectConnetion);
newConnection = (Connection) getFeatureProvider().addIfPossible(addContext);
return newConnection;
}
}