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;
DiagramResource DIA = DiagramResource.getInstance(graph);
ArrayList<Resource> result = new ArrayList<Resource>();
- 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<NamedResource> 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;
}