1 package io.github.magwas.inez.ui.tree;
2
3 import org.eclipse.jface.action.Action;
4 import org.eclipse.jface.viewers.IStructuredSelection;
5 import org.eclipse.ui.IWorkbench;
6 import org.eclipse.ui.IWorkbenchPage;
7 import org.eclipse.ui.PartInitException;
8 import org.eclipse.ui.PlatformUI;
9
10 import io.github.magwas.inez.element.BridiElement;
11 import io.github.magwas.inez.element.ElementConstants;
12 import io.github.magwas.inez.ui.editor.ModelEditorView;
13 import jakarta.inject.Inject;
14 import jakarta.inject.Singleton;
15
16 @Singleton
17 public class NewDiagramAction extends Action {
18
19 @Inject
20 IWorkbench workbench;
21
22 IStructuredSelection selection;
23
24 String applicableType = "CONTAINER";
25
26 NewDiagramAction() {
27 super("New model");
28 }
29
30 void setSelection(IStructuredSelection selection) {
31 this.selection = selection;
32 }
33
34 @Override
35 public void run() {
36 BridiElement selectedElement = (BridiElement) selection.getFirstElement();
37 if (!selectedElement.isInstance(BridiElement.CONTAINER_ID))
38 selectedElement = selectedElement.getParent();
39 BridiElement model = selectedElement.create(selectedElement.id,
40 ElementConstants.DIAGRAM_ID,
41 "DiagramModel of " + selectedElement.getRepresentation());
42 System.out.println("action on " + selectedElement);
43 System.out.println("model:" + model);
44 IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow()
45 .getActivePage();
46 MyEditorInput input = new MyEditorInput(model);
47 try {
48 page.openEditor(input, ModelEditorView.ID);
49 } catch (PartInitException e) {
50 throw new Error(e);
51 }
52
53 }
54
55 }