]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scenegraph.profile/src/org/simantics/scenegraph/profile/request/RuntimeProfileActiveEntryResources.java
Better support for ontological profiles
[simantics/platform.git] / bundles / org.simantics.scenegraph.profile / src / org / simantics / scenegraph / profile / request / RuntimeProfileActiveEntryResources.java
index 5c438533d8c84f818bb14172c478a12e64a60b6f..f59c1d71a0978addc151df7c0705e23543ffbeb2 100644 (file)
@@ -21,6 +21,7 @@ import org.simantics.db.common.NamedResource;
 import org.simantics.db.common.request.ResourceRead;
 import org.simantics.db.exception.DatabaseException;
 import org.simantics.diagram.stubs.DiagramResource;
+import org.simantics.scenegraph.profile.ProfileUtils;
 
 /**
  * @author Antti Villberg
@@ -53,7 +54,14 @@ public class RuntimeProfileActiveEntryResources extends ResourceRead<Collection<
         if (rootEntries == null)
             return result;
         
-        result.addAll(graph.syncRequest(new ProfileActiveEntryResources(activeProfile, rootEntries)));
+        if(graph.isImmutable(activeProfile)) {
+               Resource activationState = ProfileUtils.getPossibleProfileActivationState(graph, resource, activeProfile);
+               if(activationState != null) {
+                       result.addAll(graph.syncRequest(new ProfileActiveEntryResources(activationState, rootEntries)));
+               }
+        } else {
+               result.addAll(graph.syncRequest(new ProfileActiveEntryResources(activeProfile, rootEntries)));
+        }
         
         return result;