private void hookContextMenu() { activeTaskSelectionProvider = new SelectionProviderAdapter(); actionGroup = new RepositoryElementActionGroup(); actionGroup.setSelectionProvider(activeTaskSelectionProvider); menuManager = new MenuManager("#PopupMenu"); // $NON-NLS-1$ menuManager.setRemoveAllWhenShown(true); menuManager.addMenuListener( new IMenuListener() { public void menuAboutToShow(IMenuManager manager) { actionGroup.fillContextMenu(manager); // trims do not have a workbench part so there is no simple way of registering the // context menu ObjectActionContributorManager.getManager() .contributeObjectActions(null, manager, activeTaskSelectionProvider); } }); }
@Override public void dispose() { if (composite != null && !composite.isDisposed()) { composite.dispose(); } composite = null; if (menuManager != null) { menuManager.removeAll(); menuManager.dispose(); } menuManager = null; if (menu != null && !menu.isDisposed()) { menu.dispose(); } menu = null; actionGroup.setSelectionProvider(null); TasksUi.getTaskActivityManager().removeActivationListener(taskActivationListener); TasksUiPlugin.getTaskList().removeChangeListener(taskListListener); }