]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.plant3d/src/org/simantics/plant3d/actions/ReversePipeRunAction.java
PipeRun reverse action
[simantics/3d.git] / org.simantics.plant3d / src / org / simantics / plant3d / actions / ReversePipeRunAction.java
diff --git a/org.simantics.plant3d/src/org/simantics/plant3d/actions/ReversePipeRunAction.java b/org.simantics.plant3d/src/org/simantics/plant3d/actions/ReversePipeRunAction.java
new file mode 100644 (file)
index 0000000..f1c08d6
--- /dev/null
@@ -0,0 +1,37 @@
+package org.simantics.plant3d.actions;
+
+import org.eclipse.jface.action.Action;
+import org.simantics.g3d.scenegraph.base.INode;
+import org.simantics.g3d.vtk.common.VTKNodeMap;
+import org.simantics.plant3d.Activator;
+import org.simantics.plant3d.scenegraph.PipeRun;
+import org.simantics.plant3d.scenegraph.controlpoint.PipingRules;
+
+public class ReversePipeRunAction extends Action{
+    
+    private VTKNodeMap<?, ? extends INode> nodeMap;
+    PipeRun run;
+    
+    public ReversePipeRunAction(VTKNodeMap<?, ? extends INode> nodeMap) {
+        setText("Reverse");
+        setImageDescriptor(Activator.imageDescriptorFromPlugin("com.famfamfam.silk", "icons/arrow_refresh.png"));
+        this.nodeMap = nodeMap;
+    }
+    
+    public void setNode(INode node) {
+        if (node instanceof PipeRun) {
+            run = (PipeRun)node;
+            setEnabled(true);
+        } else {
+            setEnabled(false);
+        }
+           
+    }
+    
+    @Override
+    public void run() {
+        PipingRules.reverse(run);
+        nodeMap.commit("Reverse run " + run.getName());
+    }
+
+}