]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/controlpoint/ControlPointFactory.java
Enable model loading using an existing transaction.
[simantics/3d.git] / org.simantics.plant3d / src / org / simantics / plant3d / scenegraph / controlpoint / ControlPointFactory.java
index ff49b93a74404adf1b5164e7bcbfb2a54ba00518..441d1276477c08c1c1b710ea456a210b27eefed4 100644 (file)
@@ -6,6 +6,7 @@ import java.util.Map;
 
 import org.simantics.Simantics;
 import org.simantics.db.ReadGraph;
+import org.simantics.db.RequestProcessor;
 import org.simantics.db.Resource;
 import org.simantics.db.exception.DatabaseException;
 import org.simantics.db.request.Read;
@@ -20,14 +21,14 @@ public class ControlPointFactory {
        private static Map<String,Instruction> cache = new HashMap<String, Instruction>();
        
        
-       public static void preloadCache(String libUri) throws Exception {
-               List<Item> items = P3DUtil.getEnds(libUri);
-               items.addAll(P3DUtil.getInlines(libUri));
-               items.addAll(P3DUtil.getNozzles(libUri));
-               items.addAll(P3DUtil.getTurns(libUri));
+       public static void preloadCache(RequestProcessor session, String libUri) throws Exception {
+               List<Item> items = P3DUtil.getEnds(session, libUri);
+               items.addAll(P3DUtil.getInlines(session, libUri));
+               items.addAll(P3DUtil.getNozzles(session, libUri));
+               items.addAll(P3DUtil.getTurns(session, libUri));
                
                for (Item item : items) {
-                       Instruction inst = createInstruction(item.getUri());
+                       Instruction inst = createInstruction(session, item.getUri());
                        cache.put(item.getUri(), inst);
                }
        }
@@ -35,7 +36,7 @@ public class ControlPointFactory {
        public static PipeControlPoint create(PipelineComponent component) throws Exception {
                Instruction inst = cache.get(component.getType());
                if (inst == null) {
-                       inst = createInstruction(component.getType());
+                       inst = createInstruction(Simantics.getSession(), component.getType());
                        cache.put(component.getType(), inst);
                }
                if (inst == null) {
@@ -88,8 +89,8 @@ public class ControlPointFactory {
                
        }
        
-       private static Instruction createInstruction(final String type) throws Exception {
-               return Simantics.getSession().syncRequest(new Read<Instruction>() {
+       private static Instruction createInstruction(RequestProcessor session, final String type) throws Exception {
+               return session.syncRequest(new Read<Instruction>() {
                        @Override
                        public Instruction perform(ReadGraph graph) throws DatabaseException {
                                Resource res = graph.getResource(type);