X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.plant3d%2Fsrc%2Forg%2Fsimantics%2Fplant3d%2Futils%2FP3DUtil.java;h=42a3b9a0f5277c3ee5aff8d8e09d4790c840cd0f;hb=d515401dd50a89bb6f0f5c8d75e045a96db39f51;hp=cb46546ed1371a133eb866fb527036cf035dc001;hpb=ebfe6b0245b5cf9231cecedf0aaacd891eb5d344;p=simantics%2F3d.git diff --git a/org.simantics.plant3d/src/org/simantics/plant3d/utils/P3DUtil.java b/org.simantics.plant3d/src/org/simantics/plant3d/utils/P3DUtil.java index cb46546e..42a3b9a0 100644 --- a/org.simantics.plant3d/src/org/simantics/plant3d/utils/P3DUtil.java +++ b/org.simantics.plant3d/src/org/simantics/plant3d/utils/P3DUtil.java @@ -11,6 +11,7 @@ import java.util.Set; import org.simantics.Simantics; import org.simantics.db.ReadGraph; +import org.simantics.db.RequestProcessor; import org.simantics.db.Resource; import org.simantics.db.WriteGraph; import org.simantics.db.exception.DatabaseException; @@ -24,16 +25,24 @@ import org.simantics.plant3d.scenegraph.PipeRun; import org.simantics.plant3d.scenegraph.PipelineComponent; import org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint; import org.simantics.plant3d.scenegraph.controlpoint.PipingRules; +import org.simantics.plant3d.scl.SCLUtil; import org.simantics.plant3d.utils.Item.Type; public class P3DUtil { - public static List getEquipments() throws DatabaseException { - return getEquipments(Plant3D.URIs.Builtin); + return getEquipments(SCLUtil.getRequestProcessor()); } + public static List getEquipments(RequestProcessor session) throws DatabaseException { + return getEquipments(session, Plant3D.URIs.Builtin); + } + public static List getEquipments(final String libUri) throws DatabaseException { - return Simantics.getSession().syncRequest(new Read>() { + return getEquipments(SCLUtil.getRequestProcessor(), libUri); + } + + public static List getEquipments(RequestProcessor session, final String libUri) throws DatabaseException { + return session.syncRequest(new Read>() { @Override public List perform(ReadGraph graph) throws DatabaseException { Plant3D p3d = Plant3D.getInstance(graph); @@ -49,7 +58,11 @@ public class P3DUtil { } public static List getNozzles(String libUri) throws DatabaseException { - return Simantics.getSession().syncRequest(new Read>() { + return getNozzles(SCLUtil.getRequestProcessor(), libUri); + } + + public static List getNozzles(RequestProcessor session, String libUri) throws DatabaseException { + return session.syncRequest(new Read>() { @Override public List perform(ReadGraph graph) throws DatabaseException { Plant3D p3d = Plant3D.getInstance(graph); @@ -92,9 +105,13 @@ public class P3DUtil { return type.hashCode() + libUri.hashCode(); } } - + public static List getEnds(String libUri) throws DatabaseException { - return Simantics.getSession().syncRequest(new Read>() { + return getEnds(SCLUtil.getRequestProcessor(), libUri); + } + + public static List getEnds(RequestProcessor session, String libUri) throws DatabaseException { + return session.syncRequest(new Read>() { @Override public List perform(ReadGraph graph) throws DatabaseException { Plant3D p3d = Plant3D.getInstance(graph); @@ -103,9 +120,13 @@ public class P3DUtil { } }); } - + public static List getTurns(String libUri) throws DatabaseException { - return Simantics.getSession().syncRequest(new Read>() { + return getTurns(SCLUtil.getRequestProcessor(), libUri); + } + + public static List getTurns(RequestProcessor session, String libUri) throws DatabaseException { + return session.syncRequest(new Read>() { @Override public List perform(ReadGraph graph) throws DatabaseException { Plant3D p3d = Plant3D.getInstance(graph); @@ -114,9 +135,13 @@ public class P3DUtil { } }); } - + public static List getInlines(String libUri) throws DatabaseException { - return Simantics.getSession().syncRequest(new Read>() { + return getInlines(SCLUtil.getRequestProcessor(), libUri); + } + + public static List getInlines(RequestProcessor session, String libUri) throws DatabaseException { + return session.syncRequest(new Read>() { @Override public List perform(ReadGraph graph) throws DatabaseException { Plant3D p3d = Plant3D.getInstance(graph); @@ -188,7 +213,8 @@ public class P3DUtil { Plant3D p3d = Plant3D.getInstance(graph); String name = graph.getRelatedValue(r, l0.HasName); String uri = graph.getURI(r); - Item item = new Item(uri, name); + String label = graph.getPossibleRelatedValue(r, l0.HasLabel); + Item item = new Item(uri, name, label); if (graph.isInstanceOf(r, p3d.Equipment)) item.setType(Type.EQUIPMENT); else if (graph.isInstanceOf(r, p3d.InlineComponent)) @@ -207,8 +233,12 @@ public class P3DUtil { if (graph.hasStatement(r, p3d.VariableAngleTurnComponent) || graph.hasStatement(r, p3d.VariableLengthInlineComponent)) item.setVariable(true); + if (graph.hasStatement(r, p3d.AdjustableLengthInlineComponent)) + item.setModifiable(true); if (graph.hasStatement(r, p3d.SizeChangeComponent)) item.setSizeChange(true); + if (graph.hasStatement(r, p3d.RotateComponent)) + item.setRotated(true); return item; } @@ -225,11 +255,15 @@ public class P3DUtil { public static void finalizeDBLoad(P3DRootNode rootNode) throws Exception{ for (INode node : rootNode.getChild()) { if (node instanceof PipeRun) { - for (PipelineComponent pc : ((PipeRun) node).getChild()) + for (PipelineComponent pc : ((PipeRun) node).getChild()) { pc.sync(); + pc.updateParameters(); + } } else if (node instanceof Equipment) { - for (PipelineComponent pc : ((Equipment) node).getChild()) + for (PipelineComponent pc : ((Equipment) node).getChild()) { pc.sync(); + pc.updateParameters(); + } } } @@ -249,16 +283,17 @@ public class P3DUtil { } } - public static void finalizeDBLoad2(P3DRootNode rootNode) throws Exception{ - PipingRules.setEnabled(true); + public static void finalizeDBLoad2(P3DRootNode rootNode) throws Exception { + PipingRules.setEnabled(true); for (INode node : rootNode.getChild()) { if (node instanceof PipeRun) { - PipeRun run = (PipeRun)node; + PipeRun run = (PipeRun) node; for (PipeControlPoint pcp : run.getControlPoints()) - PipingRules.positionUpdate(pcp); - //PipingRules.requestUpdate(pcp); + if (pcp.asPathLegEnd()) + PipingRules.requestUpdate(pcp); } } - } + PipingRules.update(); + } }