X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=org.simantics.processeditor%2Fsrc%2Forg%2Fsimantics%2Fprocesseditor%2Factions%2FInsertNozzleAction.java;fp=org.simantics.processeditor%2Fsrc%2Forg%2Fsimantics%2Fprocesseditor%2Factions%2FInsertNozzleAction.java;h=0000000000000000000000000000000000000000;hb=6b6fcff5d6c326feef07ccf8401f97911778fffe;hp=355c2a5215a2d29c161622ab7bd4715f03f7be7e;hpb=504c111db40d78f4913badddd126b283b5504dbb;p=simantics%2F3d.git diff --git a/org.simantics.processeditor/src/org/simantics/processeditor/actions/InsertNozzleAction.java b/org.simantics.processeditor/src/org/simantics/processeditor/actions/InsertNozzleAction.java deleted file mode 100644 index 355c2a52..00000000 --- a/org.simantics.processeditor/src/org/simantics/processeditor/actions/InsertNozzleAction.java +++ /dev/null @@ -1,139 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007- VTT Technical Research Centre of Finland. - * 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 org.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.processeditor.Activator; -import org.simantics.processeditor.ProcessResource; -import org.simantics.processeditor.common.PipingTools2; -import org.simantics.processeditor.dialogs.NozzleDialog; -import org.simantics.processeditor.stubs.Equipment; -import org.simantics.processeditor.stubs.Nozzle; -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; - - - - -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(); - } - }); - } -}