X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.structural2%2Fsrc%2Forg%2Fsimantics%2Fstructural2%2Fvariables%2FConnectionBrowser.java;h=4a40723ef70110071c47447f57d952110738c02d;hp=7f43f59d171bb0177c855d869026457a256cffa6;hb=4b2ffb1be3b95a8d7b87fc9267e2b3921643a9b3;hpb=8d9659a857fb83a9fdb5c9c8663302765fddd3e8 diff --git a/bundles/org.simantics.structural2/src/org/simantics/structural2/variables/ConnectionBrowser.java b/bundles/org.simantics.structural2/src/org/simantics/structural2/variables/ConnectionBrowser.java index 7f43f59d1..4a40723ef 100644 --- a/bundles/org.simantics.structural2/src/org/simantics/structural2/variables/ConnectionBrowser.java +++ b/bundles/org.simantics.structural2/src/org/simantics/structural2/variables/ConnectionBrowser.java @@ -81,7 +81,7 @@ public class ConnectionBrowser { Resource relation = graph.getInverse(stat.getPredicate()); //System.out.println(NameUtils.getSafeName(graph, component) + "." + NameUtils.getSafeName(graph, relation)); Resource boundConnection = graph.getPossibleObject(relation, STR.IsBoundBy); - Resource type = StructuralUtils.getComponentType(graph, configuration, component); + Resource type = StructuralUtils.getPossibleComponentType(graph, configuration, component); Resource def = type != null ? graph.getPossibleObject(type, STR.IsDefinedBy) : null; if(boundConnection != null && def != null) { // The connection point is bound in component type @@ -456,9 +456,19 @@ public class ConnectionBrowser { String componentName = graph.getRelatedValue(component, L0.HasName, Bindings.STRING); Variable possibleChild = parameter.getPossibleChild(graph, componentName); if(possibleChild != null) { - result.add(new ActualConnectionDescriptor(parameter, component, possibleChild.getType(graph), connectionPoint)); + Resource type = possibleChild.getPossibleType(graph, STR.Component); + if(type != null) { + result.add(new ActualConnectionDescriptor(parameter, component, possibleChild.getType(graph), connectionPoint)); + } else { + throw new DatabaseException("Child does not have a structural type: " + possibleChild.getURI(graph)); + } } else { - throw new DatabaseException("No child with name " + componentName + " could be resolved for variable " + parameter.getURI(graph)); + Resource type = graph.getPossibleType(component, STR.Component); + if(type != null) { + result.add(new ActualConnectionDescriptor(parameter, component, type, connectionPoint)); + } else { + throw new DatabaseException("Child with name " + componentName + " does not have a structural type: " + parameter.getURI(graph)); + } } } }