X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.modeling.ui%2Fsrc%2Forg%2Fsimantics%2Fmodeling%2Fui%2Factions%2FCompilePGraphs.java;h=4272b9de7f28e9277c94c29328c7546afdcbddf6;hp=c13f3cb430f8bdefd525c93f9b3329338a61308a;hb=6b0f2d47b9137d0f92e30b50175195ee878485bc;hpb=0ae2b770234dfc3cbb18bd38f324125cf0faca07 diff --git a/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/actions/CompilePGraphs.java b/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/actions/CompilePGraphs.java index c13f3cb43..4272b9de7 100644 --- a/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/actions/CompilePGraphs.java +++ b/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/actions/CompilePGraphs.java @@ -35,6 +35,7 @@ import org.simantics.databoard.Bindings; import org.simantics.db.ReadGraph; import org.simantics.db.Resource; import org.simantics.db.WriteGraph; +import org.simantics.db.common.request.IndexRoot; import org.simantics.db.common.request.ObjectsWithType; import org.simantics.db.common.request.ReadRequest; import org.simantics.db.common.request.UniqueRead; @@ -58,6 +59,7 @@ import org.simantics.db.layer0.util.SimanticsKeys; import org.simantics.db.layer0.util.TransferableGraphConfiguration2; import org.simantics.db.service.SerialisationSupport; import org.simantics.graph.compiler.CompilationResult; +import org.simantics.graph.compiler.ExternalFileLoader; import org.simantics.graph.compiler.GraphCompiler; import org.simantics.graph.compiler.GraphCompilerPreferences; import org.simantics.graph.compiler.ValidationMode; @@ -68,6 +70,7 @@ import org.simantics.graph.diff.TransferableGraphDelta1; import org.simantics.graph.representation.Identity; import org.simantics.graph.representation.Root; import org.simantics.graph.representation.TransferableGraph1; +import org.simantics.graphfile.ontology.GraphFileResource; import org.simantics.layer0.Layer0; import org.simantics.ltk.ISource; import org.simantics.ltk.Problem; @@ -270,7 +273,33 @@ public class CompilePGraphs implements ActionFactory { prefs.validate = true; prefs.validateRelationRestrictions = ValidationMode.ERROR; prefs.validateResourceHasType = ValidationMode.IGNORE; - final CompilationResult result = GraphCompiler.compile("1.1", sources, dependencies, null, prefs); + + final CompilationResult result = Simantics.sync(new UniqueRead() { + + @Override + public CompilationResult perform(ReadGraph graph) throws DatabaseException { + + final Resource root = graph.syncRequest(new IndexRoot(r)); + final String baseURI = graph.getURI(root); + + ExternalFileLoader fileLoader = new ExternalFileLoader() { + @Override + public byte[] load(String fileName) throws IOException { + try { + GraphFileResource GF = GraphFileResource.getInstance(graph); + Resource file = graph.getResource(baseURI + "/" + fileName); + return graph.getRelatedValue(file, GF.HasFiledata, Bindings.BYTE_ARRAY); + } catch (DatabaseException e) { + throw new IOException(e); + } + } + }; + + return GraphCompiler.compile("1.1", sources, dependencies, fileLoader, prefs); + + } + + }); for(Problem problem : result.getErrors()) errorStringBuilder.append(problem.getLocation() + ": " + problem.getDescription() + "\n");