@Override
public StandardDiagramConnectionPart createNewDiagramConnection(DiagramNodePart srcNode,
DiagramNodePart targetNode)
{
Element srcNodeModel = srcNode.getLocalModelElement();
PropertyDef modelProperty = this.nodeTemplate.getModelProperty();
boolean found = false;
if (modelProperty instanceof ListProperty)
{
ListProperty listProperty = (ListProperty)modelProperty;
ElementList<?> list = getModelElement().property(listProperty);
for (Element listEntryModelElement : list)
{
if (listEntryModelElement == srcNodeModel)
{
found = true;
break;
}
}
}
else if (modelProperty instanceof ElementProperty)
{
ElementProperty elementProperty = (ElementProperty)modelProperty;
if (getModelElement().property(elementProperty) != null)
{
Element localModelElement = getModelElement().property(elementProperty).content();
if (localModelElement == srcNodeModel)
{
found = true;
}
}
}
if (!found)
{
throw new RuntimeException( "Cannot locate the source node element");
}
PropertyDef connProp = srcNodeModel.property(this.propertyName).definition();
Element newEndpoint = null;
if (connProp instanceof ListProperty)
{
ListProperty listProperty = (ListProperty)connProp;
ElementList<?> list = srcNodeModel.property(listProperty);