import org.eclipse.e4.ui.di.Focus;
import org.eclipse.e4.ui.model.application.MApplication;
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.menu.MHandledToolItem;
import org.eclipse.e4.ui.model.application.ui.menu.MMenuContribution;
import org.eclipse.e4.ui.model.application.ui.menu.MMenuFactory;
import org.eclipse.e4.ui.model.application.ui.menu.MPopupMenu;
+import org.eclipse.e4.ui.model.application.ui.menu.MToolBar;
+import org.eclipse.e4.ui.services.EMenuService;
import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
import org.eclipse.swt.widgets.Composite;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* @author Tuukka Lehtonen
*/
public class RouteView {
+ private static final Logger LOGGER = LoggerFactory.getLogger(RouteView.class);
+
private static final String POPUP_CONTRIBUTION_ID = "org.simantics.district.route.ui.contextMenu";
public static final String POPUP_ELEMENT_ID = "org.simantics.district.route.ui.popup";
}
}
part.getMenus().add(popupMenu);
+
+ /**
+ * See
+ * 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
+ *
+ * Cannot contribute toolbar items via fragment at this point
+ */
+ MToolBar toolBar = MMenuFactory.INSTANCE.createToolBar();
+ toolBar.setToBeRendered(true);
+ toolBar.getChildren().add(createActivateRouteToolItem(app));
+ toolBar.getChildren().add(createDeactivateRouteToolItem(app));
+ part.setToolbar(toolBar);
+ }
+
+
+ private static MHandledToolItem createActivateRouteToolItem(MApplication app) {
+ MHandledToolItem createHandledToolItem = MMenuFactory.INSTANCE.createHandledToolItem();
+ createHandledToolItem.setCommand(app.getCommand("org.simantics.district.route.ui.command.activatecreateroute")); // Command is contributed via fragment //$NON-NLS-1$
+ createHandledToolItem.setLabel("Activate create route");
+ createHandledToolItem.setIconURI("platform:/plugin/com.famfamfam.silk/icons/table_add.png"); //$NON-NLS-1$
+ createHandledToolItem.setEnabled(true);
+ return createHandledToolItem;
+ }
+
+ private static MHandledToolItem createDeactivateRouteToolItem(MApplication app) {
+ MHandledToolItem createHandledToolItem = MMenuFactory.INSTANCE.createHandledToolItem();
+ createHandledToolItem.setCommand(app.getCommand("org.simantics.district.route.ui.command.deactivatecreateroute")); // Command is contributed via fragment //$NON-NLS-1$
+ createHandledToolItem.setLabel("Deactivate create route");
+ createHandledToolItem.setIconURI("platform:/plugin/com.famfamfam.silk/icons/table_edit.png"); //$NON-NLS-1$
+ createHandledToolItem.setEnabled(true);
+ return createHandledToolItem;
}
@PostConstruct
- public void postConstruct(Composite parent) {
+ public void postConstruct(Composite parent, EMenuService menuService) {
this.ui = new RouteTree(parent, 0, selectionService);
+ if (!(menuService.registerContextMenu(this.ui.getTree(), POPUP_ELEMENT_ID)))
+ LOGGER.warn("Could not register context menu {}", POPUP_ELEMENT_ID);
}
@PreDestroy
ui.setFocus();
}
+ public void editCurrentSelection() {
+ ui.editCurrentSelection();
+ }
+
}
\ No newline at end of file