1 package org.simantics.district.route.ui;
5 import javax.annotation.PostConstruct;
6 import javax.annotation.PreDestroy;
7 import javax.inject.Inject;
9 import org.eclipse.e4.core.services.events.IEventBroker;
10 import org.eclipse.e4.ui.di.Focus;
11 import org.eclipse.e4.ui.model.application.MApplication;
12 import org.eclipse.e4.ui.model.application.ui.basic.MPart;
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.workbench.modeling.ESelectionService;
17 import org.eclipse.swt.widgets.Composite;
20 * @author Tuukka Lehtonen
23 public class RouteView {
25 private static final String POPUP_CONTRIBUTION_ID = "org.simantics.district.route.ui.contextMenu";
26 public static final String POPUP_ELEMENT_ID = "org.simantics.district.route.ui.popup";
28 @Inject ESelectionService selectionService;
29 @Inject IEventBroker broker;
34 * 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
36 * Cannot contribute context menu via fragment at this point
39 public void init(MPart part, MApplication app) {
40 MPopupMenu popupMenu = MMenuFactory.INSTANCE.createPopupMenu();
41 popupMenu.setElementId(POPUP_ELEMENT_ID);
42 List<MMenuContribution> menuContributions = app.getMenuContributions();
43 for (MMenuContribution menuContribution : menuContributions) {
44 if (POPUP_CONTRIBUTION_ID.equals(menuContribution.getParentId())) {
46 popupMenu.getChildren().addAll(menuContribution.getChildren());
49 part.getMenus().add(popupMenu);
53 public void postConstruct(Composite parent) {
54 this.ui = new RouteTree(parent, 0, selectionService);
58 public void dispose() {
63 public void onFocus() {