X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.plant3d%2Fsrc%2Forg%2Fsimantics%2Fplant3d%2Factions%2FAddEquipmentAction.java;h=d41dba44cec095c27447165578b7f05f8eede6f5;hb=0493ab7d61ff3049d9e22fba9c062c3983028143;hp=6c66909a845f6fae241885f8f14c56ea98767581;hpb=22bb24d2a7e26c70b0dd4c57080f2c25ac3d40a8;p=simantics%2F3d.git diff --git a/org.simantics.plant3d/src/org/simantics/plant3d/actions/AddEquipmentAction.java b/org.simantics.plant3d/src/org/simantics/plant3d/actions/AddEquipmentAction.java index 6c66909a..d41dba44 100644 --- a/org.simantics.plant3d/src/org/simantics/plant3d/actions/AddEquipmentAction.java +++ b/org.simantics.plant3d/src/org/simantics/plant3d/actions/AddEquipmentAction.java @@ -1,31 +1,48 @@ package org.simantics.plant3d.actions; import org.eclipse.jface.action.Action; +import org.eclipse.swt.widgets.Display; +import org.simantics.plant3d.dialog.EquipmentSelectionDialog; import org.simantics.plant3d.scenegraph.Equipment; import org.simantics.plant3d.scenegraph.P3DRootNode; +import org.simantics.plant3d.utils.ComponentUtils; import org.simantics.plant3d.utils.Item; import org.simantics.utils.ui.ExceptionUtils; +/** + * Action that allows user to choose added Equipment with a dialog. + * + * @author luukkainen + * + */ public class AddEquipmentAction extends Action { P3DRootNode root; - private Item item; - public AddEquipmentAction(P3DRootNode root, Item item) { + private String libUri; + + public AddEquipmentAction(P3DRootNode root, String libUri) { this.root = root; - this.item = item; - setText("Add " + item.getName()); + this.libUri = libUri; + setText("Add equipment"); } @Override public void run() { + EquipmentSelectionDialog dialog = new EquipmentSelectionDialog(Display.getCurrent().getActiveShell(), root, libUri); + if (dialog.open() == EquipmentSelectionDialog.CANCEL) + return; + Item item = dialog.getSelected(); + if (item == null) + return; + Item selectedNozzle = dialog.getSelectedNozzle(); try { - Equipment equipment = root.createEquipment(); - equipment.setType(item.getUri()); - String n = root.getUniqueName(item.getName()); - equipment.setName(n); - root.addChild(equipment); - root.getNodeMap().commit(); + Equipment equipment = null; + if (selectedNozzle == null) + equipment = ComponentUtils.createEquipment(root, item); + else + equipment = ComponentUtils.createEquipmentWithNozzles(root, item, selectedNozzle); + root.getNodeMap().commit("Add equipment " + equipment.getName()); } catch (Exception e) { ExceptionUtils.logAndShowError("Cannot create equipment",e); }