]> gerrit.simantics Code Review - simantics/platform.git/commitdiff
Avoid duplicate evaluation of procedural component type requests 11/3411/2
authorReino Ruusu <reino.ruusu@semantum.fi>
Fri, 25 Oct 2019 09:00:36 +0000 (12:00 +0300)
committerReino Ruusu <reino.ruusu@semantum.fi>
Tue, 29 Oct 2019 09:51:21 +0000 (11:51 +0200)
gitlab #408

Change-Id: I331016fcae55434cc612c6301b74189a47142e90

bundles/org.simantics.structural2/src/org/simantics/structural2/Functions.java

index e43007637ac5ca616a89f33b3cc3f62247ad8fea..8bf4e3df68b6ac62dc30b2575ddb3eb75b1b9bf2 100644 (file)
@@ -50,6 +50,7 @@ import org.simantics.db.layer0.variable.Variable;
 import org.simantics.db.layer0.variable.VariableMap;
 import org.simantics.db.layer0.variable.VariableMapImpl;
 import org.simantics.db.layer0.variable.VariableNode;
 import org.simantics.db.layer0.variable.VariableMap;
 import org.simantics.db.layer0.variable.VariableMapImpl;
 import org.simantics.db.layer0.variable.VariableNode;
+import org.simantics.db.layer0.variable.Variables;
 import org.simantics.db.service.CollectionSupport;
 import org.simantics.issues.common.IssueUtils;
 import org.simantics.layer0.Layer0;
 import org.simantics.db.service.CollectionSupport;
 import org.simantics.issues.common.IssueUtils;
 import org.simantics.layer0.Layer0;
@@ -332,10 +333,11 @@ public class Functions {
 
     public static List<SubstructureElement> getProceduralDesc(ReadGraph graph, final Variable context) throws DatabaseException {
         StructuralResource2 STR = StructuralResource2.getInstance(graph);
 
     public static List<SubstructureElement> getProceduralDesc(ReadGraph graph, final Variable context) throws DatabaseException {
         StructuralResource2 STR = StructuralResource2.getInstance(graph);
-        final Resource type = context.getPossibleType(graph);
+        Variable config = Variables.getConfigurationVariable(graph, context);
+        final Resource type = config.getPossibleType(graph);
         if(type != null) {
             if(graph.isInstanceOf(type, STR.ProceduralComponentType)) {
         if(type != null) {
             if(graph.isInstanceOf(type, STR.ProceduralComponentType)) {
-                return graph.syncRequest(new SubstructureRequest(context));
+                return graph.syncRequest(new SubstructureRequest(config));
             }
         }
         return null;
             }
         }
         return null;