X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=bundles%2Forg.simantics.scenegraph.profile%2Fsrc%2Forg%2Fsimantics%2Fscenegraph%2Fprofile%2Frequest%2FRuntimeProfileActiveEntryResources.java;h=5c438533d8c84f818bb14172c478a12e64a60b6f;hb=d0f755ad31c06641f8e9a9010a79356f483340c5;hp=762ee12bdd0cbf7c10c5db51fda81c7953a64e03;hpb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scenegraph.profile/src/org/simantics/scenegraph/profile/request/RuntimeProfileActiveEntryResources.java b/bundles/org.simantics.scenegraph.profile/src/org/simantics/scenegraph/profile/request/RuntimeProfileActiveEntryResources.java index 762ee12bd..5c438533d 100644 --- a/bundles/org.simantics.scenegraph.profile/src/org/simantics/scenegraph/profile/request/RuntimeProfileActiveEntryResources.java +++ b/bundles/org.simantics.scenegraph.profile/src/org/simantics/scenegraph/profile/request/RuntimeProfileActiveEntryResources.java @@ -13,9 +13,11 @@ package org.simantics.scenegraph.profile.request; import java.util.ArrayList; import java.util.Collection; +import java.util.List; import org.simantics.db.ReadGraph; import org.simantics.db.Resource; +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; @@ -34,15 +36,26 @@ public class RuntimeProfileActiveEntryResources extends ResourceRead result = new ArrayList(); - Resource activeProfile = graph.getPossibleObject(resource, DIA.RuntimeDiagram_HasRuntimeProfile); - if (activeProfile == null) - return result; + + result.addAll(graph.syncRequest(new ProfileEntryContributions(resource))); + Resource activeProfile = graph.getPossibleObject(resource, DIA.RuntimeDiagram_HasRuntimeProfile); + if (activeProfile == null) { + + List available = graph.syncRequest(new AvailableProfiles(resource)); + if(available.size() != 1) return result; + + activeProfile = available.iterator().next().getResource(); + + } + Resource rootEntries = graph.getPossibleObject(activeProfile, DIA.HasEntries); if (rootEntries == null) return result; - return graph.syncRequest(new ProfileActiveEntryResources(activeProfile, rootEntries)); + result.addAll(graph.syncRequest(new ProfileActiveEntryResources(activeProfile, rootEntries))); + + return result; }