package $packageName$.diagram; import org.eclipse.graphiti.dt.IDiagramTypeProvider; import org.eclipse.graphiti.features.IAddFeature; import org.eclipse.graphiti.features.ICreateConnectionFeature; import org.eclipse.graphiti.features.context.IAddConnectionContext; import org.eclipse.graphiti.features.context.IAddContext; import org.eclipse.graphiti.pattern.DefaultFeatureProviderWithPatterns; import $packageName$.features.Add$connectionDomainObjectClassNameShort$ConnectionFeature; import $packageName$.features.Create$connectionDomainObjectClassNameShort$ConnectionFeature; import $packageName$.patterns.$shapeDomainObjectClassNameShort$Pattern; public class $featureProviderClassName$ extends DefaultFeatureProviderWithPatterns { public $featureProviderClassName$(IDiagramTypeProvider dtp) { super(dtp); addPattern(new $shapeDomainObjectClassNameShort$Pattern()); } @Override public ICreateConnectionFeature[] getCreateConnectionFeatures() { return new ICreateConnectionFeature[] {new Create$connectionDomainObjectClassNameShort$ConnectionFeature(this)}; } @Override public IAddFeature getAddFeature(IAddContext context) { // TODO: check for right domain object instances below if (context instanceof IAddConnectionContext /* && context.getNewObject() instanceof $connectionDomainObjectClassNameShort$ */) { return new Add$connectionDomainObjectClassNameShort$ConnectionFeature(this); } return super.getAddFeature(context); } }