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;
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<Item> getEquipments() throws DatabaseException {
- return getEquipments(Plant3D.URIs.Builtin);
+ return getEquipments(SCLUtil.getRequestProcessor());
}
+ public static List<Item> getEquipments(RequestProcessor session) throws DatabaseException {
+ return getEquipments(session, Plant3D.URIs.Builtin);
+ }
+
public static List<Item> getEquipments(final String libUri) throws DatabaseException {
- return Simantics.getSession().syncRequest(new Read<List<Item>>() {
+ return getEquipments(SCLUtil.getRequestProcessor(), libUri);
+ }
+
+ public static List<Item> getEquipments(RequestProcessor session, final String libUri) throws DatabaseException {
+ return session.syncRequest(new Read<List<Item>>() {
@Override
public List<Item> perform(ReadGraph graph) throws DatabaseException {
Plant3D p3d = Plant3D.getInstance(graph);
}
public static List<Item> getNozzles(String libUri) throws DatabaseException {
- return Simantics.getSession().syncRequest(new Read<List<Item>>() {
+ return getNozzles(SCLUtil.getRequestProcessor(), libUri);
+ }
+
+ public static List<Item> getNozzles(RequestProcessor session, String libUri) throws DatabaseException {
+ return session.syncRequest(new Read<List<Item>>() {
@Override
public List<Item> perform(ReadGraph graph) throws DatabaseException {
Plant3D p3d = Plant3D.getInstance(graph);
@Override
public List<Item> perform(ReadGraph graph) throws DatabaseException {
- Resource project = Simantics.getProject().get();
+// Resource project = Simantics.getProject().get();
Resource builtins = graph.getResource(libUri);
List<Item> actions = new ArrayList<>();
// actions.addAll(getItems(graph, project,type));
return type.hashCode() + libUri.hashCode();
}
}
-
+
public static List<Item> getEnds(String libUri) throws DatabaseException {
- return Simantics.getSession().syncRequest(new Read<List<Item>>() {
+ return getEnds(SCLUtil.getRequestProcessor(), libUri);
+ }
+
+ public static List<Item> getEnds(RequestProcessor session, String libUri) throws DatabaseException {
+ return session.syncRequest(new Read<List<Item>>() {
@Override
public List<Item> perform(ReadGraph graph) throws DatabaseException {
Plant3D p3d = Plant3D.getInstance(graph);
}
});
}
-
+
public static List<Item> getTurns(String libUri) throws DatabaseException {
- return Simantics.getSession().syncRequest(new Read<List<Item>>() {
+ return getTurns(SCLUtil.getRequestProcessor(), libUri);
+ }
+
+ public static List<Item> getTurns(RequestProcessor session, String libUri) throws DatabaseException {
+ return session.syncRequest(new Read<List<Item>>() {
@Override
public List<Item> perform(ReadGraph graph) throws DatabaseException {
Plant3D p3d = Plant3D.getInstance(graph);
}
});
}
-
+
public static List<Item> getInlines(String libUri) throws DatabaseException {
- return Simantics.getSession().syncRequest(new Read<List<Item>>() {
+ return getInlines(SCLUtil.getRequestProcessor(), libUri);
+ }
+
+ public static List<Item> getInlines(RequestProcessor session, String libUri) throws DatabaseException {
+ return session.syncRequest(new Read<List<Item>>() {
@Override
public List<Item> perform(ReadGraph graph) throws DatabaseException {
Plant3D p3d = Plant3D.getInstance(graph);
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))
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;
}
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();
+ }
}
}
}
}
- 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();
+ }
}