]> gerrit.simantics Code Review - simantics/3d.git/blob - org.simantics.plant3d/src/org/simantics/plant3d/actions/AddNozzleAction.java
Mark undo pints when committing changes to the graph
[simantics/3d.git] / org.simantics.plant3d / src / org / simantics / plant3d / actions / AddNozzleAction.java
1 package org.simantics.plant3d.actions;
2
3 import org.eclipse.jface.action.Action;
4 import org.simantics.plant3d.Activator;
5 import org.simantics.plant3d.scenegraph.Equipment;
6 import org.simantics.plant3d.scenegraph.Nozzle;
7 import org.simantics.plant3d.scenegraph.P3DRootNode;
8 import org.simantics.plant3d.scenegraph.PipeRun;
9 import org.simantics.plant3d.utils.Item;
10 import org.simantics.utils.ui.ExceptionUtils;
11
12 public class AddNozzleAction extends Action {
13
14         P3DRootNode root;
15         private Item item;
16         private Equipment equipment;
17         
18         public AddNozzleAction(P3DRootNode root, Item item) {
19                 this.root = root;
20                 this.item = item;
21                 setText("Add " + item.getName());
22                 setImageDescriptor(Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/Nozzle.png"));
23         }
24         
25         public void setEquipment(Equipment equipment) {
26                 this.equipment = equipment;
27         }
28         
29         @Override
30         public void run() {
31                 try {
32                         Nozzle nozzle = root.createNozzle();
33                         nozzle.setType(item.getUri());
34                         String n = root.getUniqueName(item.getName());
35                         nozzle.setName(n);
36                         PipeRun pipeRun = new PipeRun();
37                         n = root.getUniqueName("PipeRun");
38                         pipeRun.setName(n);
39                         nozzle.setPipeRun(pipeRun);
40                         
41                         equipment.addChild(nozzle);
42                         //root.addChild(nozzle);
43                         root.addChild(pipeRun);
44                         root.getNodeMap().commit("Add nozzle " + n);
45                 } catch (Exception e) {
46                         ExceptionUtils.logAndShowError("Cannot create equipment",e);
47                 }
48         }
49 }