@Override public void init(ICommonActionExtensionSite aConfig) { if (aConfig.getViewSite() instanceof ICommonViewerWorkbenchSite) { viewSite = (ICommonViewerWorkbenchSite) aConfig.getViewSite(); openFileAction = new OpenFileAction(viewSite.getPage()); contribute = true; } }
private void addOpenWithMenu(IMenuManager aMenu) { IStructuredSelection ss = (IStructuredSelection) getContext() .getSelection(); if (ss == null || ss.size() != 1) { return; } Object o = ss.getFirstElement(); // first try IResource IAdaptable openable = Adapters.adapt(o, IResource.class); // otherwise try ResourceMapping if (openable == null) { openable = Adapters.adapt(o, ResourceMapping.class); } else if (((IResource) openable).getType() != IResource.FILE) { openable = null; } if (openable != null) { // Create a menu flyout. IMenuManager submenu = new MenuManager( WorkbenchNavigatorMessages.OpenActionProvider_OpenWithMenu_label, ICommonMenuConstants.GROUP_OPEN_WITH); submenu.add(new GroupMarker(ICommonMenuConstants.GROUP_TOP)); submenu.add(new OpenWithMenu(viewSite.getPage(), openable)); submenu.add(new GroupMarker(ICommonMenuConstants.GROUP_ADDITIONS)); // Add the submenu. if (submenu.getItems().length > 2 && submenu.isEnabled()) { aMenu.appendToGroup(ICommonMenuConstants.GROUP_OPEN_WITH, submenu); } } }