X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=dev%2Forg.simantics.proconf.processeditor%2Fsrc%2Ffi%2Fvtt%2Fsimantics%2Fprocesseditor%2Factions%2FInsertNozzleAction.java;fp=dev%2Forg.simantics.proconf.processeditor%2Fsrc%2Ffi%2Fvtt%2Fsimantics%2Fprocesseditor%2Factions%2FInsertNozzleAction.java;h=0000000000000000000000000000000000000000;hb=34ca2a15526fd19014b66de48717dd7a469ec222;hp=91733ab0b4c1408acad4d0503828ff9d85eb9898;hpb=9b0a862f752c8d55da47c8d0265bcc135b38cede;p=simantics%2F3d.git diff --git a/dev/org.simantics.proconf.processeditor/src/fi/vtt/simantics/processeditor/actions/InsertNozzleAction.java b/dev/org.simantics.proconf.processeditor/src/fi/vtt/simantics/processeditor/actions/InsertNozzleAction.java deleted file mode 100644 index 91733ab0..00000000 --- a/dev/org.simantics.proconf.processeditor/src/fi/vtt/simantics/processeditor/actions/InsertNozzleAction.java +++ /dev/null @@ -1,139 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007 VTT Technical Research Centre of Finland and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * VTT Technical Research Centre of Finland - initial API and implementation - *******************************************************************************/ -package fi.vtt.simantics.processeditor.actions; - -import java.util.List; - -import org.simantics.db.Graph; -import org.simantics.db.GraphRequestAdapter; -import org.simantics.db.GraphRequestStatus; -import org.simantics.db.GraphRequestWithResult; -import org.simantics.db.Resource; -import org.simantics.layer0.utils.EntityFactory; -import org.simantics.layer0.utils.IEntity; -import org.simantics.layer0.utils.instantiation.Instance; -import org.simantics.layer0.utils.instantiation.InstanceFactory; -import org.simantics.proconf.g3d.actions.WriteAction; -import org.simantics.proconf.g3d.base.G3DAPI; -import org.simantics.proconf.g3d.base.G3DTools; -import org.simantics.proconf.g3d.base.ThreeDimensionalEditorBase; -import org.simantics.proconf.g3d.common.StructuredResourceSelection; -import org.simantics.proconf.g3d.dnd.DropListener; - -import fi.vtt.simantics.processeditor.Activator; -import fi.vtt.simantics.processeditor.ProcessResource; -import fi.vtt.simantics.processeditor.common.PipingTools2; -import fi.vtt.simantics.processeditor.dialogs.NozzleDialog; -import fi.vtt.simantics.processeditor.stubs.Equipment; -import fi.vtt.simantics.processeditor.stubs.Nozzle; - - - -public class InsertNozzleAction extends WriteAction implements DropListener { - - Resource equipmentResource = null; - Resource nozzleType = null; - - public InsertNozzleAction(ThreeDimensionalEditorBase parent) { - super(parent,false); - } - - @Override - public boolean canActivate() { - NozzleDialog dialog = new NozzleDialog(parent.getRenderingComposite().getShell(),"Select a nozzle", parent.getSession()); - if (dialog.open() == NozzleDialog.CANCEL) { - equipmentResource = null; - return false; - } - Resource type = dialog.getComboValue(); - if (type == null) { - equipmentResource = null; - return false; - } - nozzleType = type; - return true; - } - - @Override - public GraphRequestStatus doChanges(Graph graph) throws Exception { - createNozzle(graph); - return GraphRequestStatus.transactionComplete(); - } - - private void createNozzle(Graph graph) { - assert(nozzleType != null); - assert(equipmentResource != null); - - Nozzle n = PipingTools2.instantiateNozzle(graph, nozzleType); - - Equipment equipment = new Equipment(graph, equipmentResource); - - G3DAPI.addNodeLocal(equipment,ProcessResource.plant3Dresource.HasNozzle, n); - //parent.getSelectionAdapter().updateSelection(new StructuredResourceSelection(n.getResource())); - equipment = null; - } - - public boolean usable(Graph graph, List resources) { - if (resources.size() != 1) { - return false; - } - Resource r = resources.iterator().next(); - IEntity t = EntityFactory.create(graph,r); - if (t.isInstanceOf(ProcessResource.plant3Dresource.Equipment)) { - equipmentResource = r; - return true; - } - return false; - } - - @Override - public void init() { - setText("Insert Nozzle"); - this.setImageDescriptor(Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/Nozzle.png")); - } - - public boolean acceptDrop(StructuredResourceSelection s, Resource[] ids) { - if(s.size() != 1) - return false; - if (ids == null) - return false; - if (ids.length != 1) - return false; - final Resource r = ids[0]; - final Resource selectedResource = s.iterator().next(); - GraphRequestWithResult query = new GraphRequestWithResult() { - @Override - public Boolean performWithResult(Graph g) throws Exception { - IEntity t = EntityFactory.create(g,r); - if (!t.isInheritedFrom(ProcessResource.plant3Dresource.Nozzle)) - return false; - t = EntityFactory.create(g,selectedResource); - if (t.isInstanceOf(ProcessResource.plant3Dresource.Equipment)) { - return true; - } - return false; - } - }; - parent.getSession().syncRead(query); - return query.getResult(); - } - - public void doDrop(StructuredResourceSelection s, Resource[] ids) { - equipmentResource = s.iterator().next(); - parent.getSession().asyncWrite(new GraphRequestAdapter() { - @Override - public GraphRequestStatus perform(Graph g) throws Exception { - createNozzle(g); - return GraphRequestStatus.transactionComplete(); - } - }); - } -}