]> gerrit.simantics Code Review - simantics/platform.git/commitdiff
(refs #7456) Automatic activation of model after import 96/896/2
authorHannu Niemistö <hannu.niemisto@semantum.fi>
Thu, 31 Aug 2017 07:33:52 +0000 (10:33 +0300)
committerTuukka Lehtonen <tuukka.lehtonen@semantum.fi>
Thu, 31 Aug 2017 10:32:56 +0000 (13:32 +0300)
Change-Id: I8b70618c5c4d46f141f2dcec39fbf73ac0d730fc

bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/migration/MigrationUtils.java

index 5f20036a54e1ea75638fba8699a1f7044e8cb26c..36671d18b457bc48c21b0f65b16b504b31558417 100644 (file)
@@ -63,6 +63,8 @@ import org.simantics.graph.representation.Root;
 import org.simantics.graph.representation.TransferableGraph1;
 import org.simantics.graph.representation.TransferableGraphUtils;
 import org.simantics.layer0.Layer0;
+import org.simantics.operation.Layer0X;
+import org.simantics.simulation.ontology.SimulationResource;
 import org.simantics.utils.datastructures.Pair;
 import org.simantics.utils.datastructures.collections.CollectionUtils;
 
@@ -100,6 +102,16 @@ public class MigrationUtils {
         });
     }
 
+    /**
+     * Activate the imported resource, if there are no other active models and the resource is a Model. 
+     */
+    private static void activateIfNoActiveModel(WriteGraph graph, Resource root, Resource parent) throws DatabaseException {
+        Layer0X L0X = Layer0X.getInstance(graph);
+        SimulationResource SIMU = SimulationResource.getInstance(graph);
+        if(!graph.hasStatement(parent, L0X.Activates) && graph.isInstanceOf(root, SIMU.Model))
+            graph.claim(parent, L0X.Activates, root);
+    }
+
     public static Collection<Resource> importTo(IProgressMonitor monitor, Session session, MigrationState state, final Resource parent, final IImportAdvisor advisor) throws DatabaseException, TransferableGraphException {
         final Resource resource = getResource(monitor, session, state);
         final ArrayList<Resource> result = new ArrayList<Resource>();
@@ -130,6 +142,8 @@ public class MigrationUtils {
 
                            graph.deny(root, L0.PartOf);
                            graph.claim(root, L0.PartOf, parent);
+                           
+                           activateIfNoActiveModel(graph, root, parent);
 
                            CommentMetadata cm = graph.getMetadata(CommentMetadata.class);
                            graph.addMetadata(cm.add("Imported " + graph.getURI(root) + ", resource " + root));