]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.plant3d/src/org/simantics/plant3d/actions/AddNozzleAction.java
Add units to ComponentSelectionDialog
[simantics/3d.git] / org.simantics.plant3d / src / org / simantics / plant3d / actions / AddNozzleAction.java
index 34069d95492c54f781ee3dfdd74bcfc27b89017a..c7cc4722ea4a94a68c8012326e6ebe81fba56ddf 100644 (file)
@@ -5,7 +5,7 @@ import org.simantics.plant3d.Activator;
 import org.simantics.plant3d.scenegraph.Equipment;
 import org.simantics.plant3d.scenegraph.Nozzle;
 import org.simantics.plant3d.scenegraph.P3DRootNode;
-import org.simantics.plant3d.scenegraph.PipeRun;
+import org.simantics.plant3d.utils.ComponentUtils;
 import org.simantics.plant3d.utils.Item;
 import org.simantics.utils.ui.ExceptionUtils;
 
@@ -24,24 +24,20 @@ public class AddNozzleAction extends Action {
        
        public void setEquipment(Equipment equipment) {
                this.equipment = equipment;
+               int fixedNozzles = equipment.numberOfFixedNozzles();
+               if (fixedNozzles > 0) {
+                       int currentNozzles = equipment.getNodes().size();
+                       setEnabled(currentNozzles < fixedNozzles);
+               } else {
+                       setEnabled(true);
+               }
        }
        
        @Override
        public void run() {
                try {
-                       Nozzle nozzle = root.createNozzle();
-                       nozzle.setType(item.getUri());
-                       String n = root.getUniqueName(item.getName());
-                       nozzle.setName(n);
-                       PipeRun pipeRun = new PipeRun();
-                       n = root.getUniqueName("PipeRun");
-                       pipeRun.setName(n);
-                       nozzle.setPipeRun(pipeRun);
-                       
-                       equipment.addChild(nozzle);
-                       //root.addChild(nozzle);
-                       root.addChild(pipeRun);
-                       root.getNodeMap().commit("Add nozzle " + n);
+                       Nozzle nozzle = ComponentUtils.createNozzle(root, equipment, item);
+                       root.getNodeMap().commit("Add nozzle " + nozzle.getName());
                } catch (Exception e) {
                        ExceptionUtils.logAndShowError("Cannot create equipment",e);
                }