1 package org.simantics.district.region.ui;
5 import javax.annotation.PostConstruct;
6 import javax.annotation.PreDestroy;
7 import javax.inject.Inject;
9 import org.eclipse.e4.ui.di.Focus;
10 import org.eclipse.e4.ui.model.application.MApplication;
11 import org.eclipse.e4.ui.model.application.ui.basic.MPart;
12 import org.eclipse.e4.ui.model.application.ui.menu.MHandledToolItem;
13 import org.eclipse.e4.ui.model.application.ui.menu.MMenuContribution;
14 import org.eclipse.e4.ui.model.application.ui.menu.MMenuFactory;
15 import org.eclipse.e4.ui.model.application.ui.menu.MPopupMenu;
16 import org.eclipse.e4.ui.model.application.ui.menu.MToolBar;
17 import org.eclipse.e4.ui.services.EMenuService;
18 import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
19 import org.eclipse.swt.widgets.Composite;
22 * @author Jani Simomaa
24 public class DiagramRegionsTableView {
26 DiagramRegionsTableUI ui;
30 * http://www.vogella.com/tutorials/EclipsePlugin/article.html#adding-eclipse-4-x-parts-to-eclipse-3-x-applications-via-the-code-org-eclipse-ui-views-code-extension-point
32 * Cannot contribute toolbar items via fragment at this point
35 public void init(MPart part, MApplication app) {
36 MHandledToolItem createHandledToolItem = MMenuFactory.INSTANCE.createHandledToolItem();
37 // Command is contributed via fragment
38 createHandledToolItem.setCommand(app.getCommand("org.simantics.district.region.ui.command.createRegionFromSelection"));
39 createHandledToolItem.setLabel("Create Region From Selection");
40 createHandledToolItem.setIconURI("platform:/plugin/com.famfamfam.silk/icons/table_add.png");
41 MToolBar toolBar = MMenuFactory.INSTANCE.createToolBar();
42 toolBar.setToBeRendered(true);
43 toolBar.getChildren().add(createHandledToolItem);
44 part.setToolbar(toolBar);
47 MPopupMenu createPopupMenu = MMenuFactory.INSTANCE.createPopupMenu();
48 createPopupMenu.setElementId(POPUP_ID);
49 createHandledToolItem.setContributorURI("org.simantics.district.region.ui.contextMenu");
51 List<MMenuContribution> menuContributions = app.getMenuContributions();
52 for (MMenuContribution menuContribution : menuContributions) {
53 if ("org.simantics.district.region.ui.contextMenu".equals(menuContribution.getParentId())) {
55 createPopupMenu.getChildren().addAll(menuContribution.getChildren());
59 part.getMenus().add(createPopupMenu);
62 public static final String POPUP_ID = "org.simantics.district.region.ui.popup";
65 public void postConstruct(ESelectionService selectionService, Composite parent, EMenuService menuService) {
66 // System.out.println("construct MPTV");
67 this.ui = new DiagramRegionsTableUI(selectionService, parent, 0);
68 menuService.registerContextMenu(this.ui.getTree(), POPUP_ID);
72 public void dispose() {
73 // System.out.println("dispose MPTV");
79 public void onFocus() {