View Javadoc
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  }