X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.plant3d%2Fsrc%2Forg%2Fsimantics%2Fplant3d%2Fscl%2FSCLUtil.java;h=e892106d08bd891ba88fdd1e5146dc7f3abf880e;hb=31fd8b586a816e12d85f361b3fe2f6ebd52e427b;hp=cdbf6626b197548c624f65e57b6f2d7b58cbdff1;hpb=5750b207d04063d1b2f0128eb5296d22ffec302e;p=simantics%2F3d.git diff --git a/org.simantics.plant3d/src/org/simantics/plant3d/scl/SCLUtil.java b/org.simantics.plant3d/src/org/simantics/plant3d/scl/SCLUtil.java index cdbf6626..e892106d 100644 --- a/org.simantics.plant3d/src/org/simantics/plant3d/scl/SCLUtil.java +++ b/org.simantics.plant3d/src/org/simantics/plant3d/scl/SCLUtil.java @@ -5,6 +5,7 @@ import org.simantics.db.ReadGraph; import org.simantics.db.Resource; import org.simantics.db.exception.DatabaseException; import org.simantics.db.request.Read; +import org.simantics.g3d.scenegraph.base.INode; import org.simantics.objmap.graph.IMapping; import org.simantics.objmap.graph.Mappings; import org.simantics.objmap.graph.schema.IMappingSchema; @@ -19,11 +20,11 @@ import org.simantics.plant3d.utils.P3DUtil; public class SCLUtil { public static interface SchemaProvider { - IMappingSchema get(ReadGraph graph) throws DatabaseException; + IMappingSchema get(ReadGraph graph) throws DatabaseException; } public static interface NodeMapProvider { - P3DScriptNodeMap get(IMapping mapping, P3DRootNode rootNode); + P3DScriptNodeMap get(IMapping mapping, P3DRootNode rootNode); } public static P3DScriptNodeMap load(final Resource root) throws DatabaseException { @@ -55,9 +56,10 @@ public class SCLUtil { @Override public NodeMap perform(ReadGraph graph) throws DatabaseException { PipingRules.setEnabled(false); - IMappingSchema schema = schemaProvider.get(graph); - IMapping mapping = Mappings.createWithListening(schema); + IMappingSchema schema = schemaProvider.get(graph); + IMapping mapping = Mappings.createWithListening(schema); P3DRootNode rootNode = (P3DRootNode) mapping.map(graph, root); + rootNode.setMapping(mapping); try { P3DUtil.finalizeDBLoad(rootNode); // FIXME: Something needs to be done here... @@ -79,16 +81,18 @@ public class SCLUtil { @Override public Root perform(ReadGraph graph) throws DatabaseException { PipingRules.setEnabled(false); - IMappingSchema schema = schemaProvider.get(graph); - IMapping mapping = Mappings.createWithoutListening(schema); + IMappingSchema schema = schemaProvider.get(graph); + IMapping mapping = Mappings.createWithoutListening(schema); @SuppressWarnings("unchecked") Root rootNode = (Root) mapping.map(graph, root); + rootNode.setMapping(mapping); try { P3DUtil.finalizeDBLoad(rootNode); P3DUtil.finalizeDBLoad2(rootNode); } catch (Exception e) { throw new DatabaseException(e); } + return rootNode; } });