1 package org.simantics.modeling.ui.componentTypeEditor;
\r
3 import org.eclipse.jface.resource.ImageDescriptor;
\r
4 import org.eclipse.ui.PartInitException;
\r
5 import org.eclipse.ui.PlatformUI;
\r
6 import org.simantics.Simantics;
\r
7 import org.simantics.db.ReadGraph;
\r
8 import org.simantics.db.Resource;
\r
9 import org.simantics.db.common.request.ReadRequest;
\r
10 import org.simantics.db.exception.DatabaseException;
\r
11 import org.simantics.modeling.ModelingResources;
\r
12 import org.simantics.modeling.ui.Activator;
\r
13 import org.simantics.structural.stubs.StructuralResource2;
\r
14 import org.simantics.ui.workbench.ResourceEditorInput;
\r
15 import org.simantics.ui.workbench.editor.AbstractResourceEditorAdapter;
\r
17 public class ProceduralComponentInstanceViewerEditorAdapter extends
\r
18 AbstractResourceEditorAdapter {
\r
20 public static final ImageDescriptor ICON = ImageDescriptor.createFromURL(Activator.getDefault().getBundle()
\r
21 .getResource("icons/shape_3d_gray.png"));
\r
22 public static final String EDITOR_ID = "org.simantics.modeling.ui.proceduralComponentInstanceViewer";
\r
24 public ProceduralComponentInstanceViewerEditorAdapter() {
\r
25 super("Procedural Component Instance Viewer", ICON, -10);
\r
28 private static Resource browseComponent(ReadGraph graph, Resource input) throws DatabaseException {
\r
29 ModelingResources MOD = ModelingResources.getInstance(graph);
\r
31 Resource temp = graph.getPossibleObject(input, MOD.ElementToComponent);
\r
39 protected boolean canHandle(ReadGraph graph, Resource input)
\r
40 throws DatabaseException {
\r
41 input = browseComponent(graph, input);
\r
42 StructuralResource2 STR = StructuralResource2.getInstance(graph);
\r
43 Resource type = graph.getPossibleType(input, STR.Component);
\r
46 return graph.isInstanceOf(type, STR.ProceduralComponentType);
\r
50 protected void openEditor(final Resource input) throws Exception {
\r
51 Simantics.getSession().asyncRequest(new ReadRequest() {
\r
53 public void run(ReadGraph graph) throws DatabaseException {
\r
54 final Resource actualInput = browseComponent(graph, input);
\r
55 PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
\r
59 openEditorWithId(EDITOR_ID, new ResourceEditorInput(EDITOR_ID, actualInput));
\r
60 } catch (PartInitException e) {
\r
61 e.printStackTrace();
\r