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
DiagramResource DIA = DiagramResource.getInstance(graph);
ArrayList<Resource> result = new ArrayList<Resource>();
+
+ result.addAll(graph.syncRequest(new ProfileEntryContributions(resource)));
+
Resource activeProfile = graph.getPossibleObject(resource, DIA.RuntimeDiagram_HasRuntimeProfile);
if (activeProfile == null) {
activeProfile = available.iterator().next().getResource();
}
-
+
Resource rootEntries = graph.getPossibleObject(activeProfile, DIA.HasEntries);
if (rootEntries == null)
return result;
- return 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;
}