package org.simantics.processeditor.views; import java.util.Collection; import org.eclipse.swt.widgets.Display; import org.simantics.db.Graph; import org.simantics.db.Resource; import org.simantics.db.management.ISessionContext; import org.simantics.processeditor.ProcessResource; import org.simantics.processeditor.tools.NozzleContribution; import org.simantics.proconf.g3d.base.ThreeDimensionalEditorBase; import org.simantics.proconf.g3d.base.ThreeDimensionalEditorPart; import org.simantics.proconf.g3d.shapeeditor.views.ShapeEditorBase; public class EquipmentEditorPart extends ThreeDimensionalEditorPart { @Override protected ThreeDimensionalEditorBase createEditor(ISessionContext session) { ShapeEditorBase base = new ShapeEditorBase(session); base.addEditorContribution(new NozzleContribution(base)); return base; } @Override public void reload(Graph g) { Resource inputResource = getInputResource(); Collection model = g.getObjects(inputResource, ProcessResource.plant3Dresource.HasGraphics); if (model.size() != 1) throw new RuntimeException("Cannot find model for equipment " + inputResource); Resource modelResource = model.iterator().next(); if (modelResource != null) { editor.reload(g,modelResource); } else { Display d = getSite().getShell().getDisplay(); d.asyncExec(new Runnable() { public void run() { editor.showMessage("Failed to load model."); getSite().getPage().closeEditor(EquipmentEditorPart.this,false); } }); } } }