import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.actions.CompoundContributionItem;
@Override
public void fill(Menu menu, int index) {
final IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- final ISelection selection = window.getActivePage().getSelection();
- if(selection instanceof IStructuredSelection){
- Object firstElement = ((IStructuredSelection) selection).getFirstElement();
- Map<Command, String> enabledCommands = CdmViewerUtil.getAvailableViewers(firstElement);
+ IWorkbenchPage activePage = window.getActivePage();
+ if(activePage!=null){
+ final ISelection selection = activePage.getSelection();
+ if(selection instanceof IStructuredSelection){
+ Object firstElement = ((IStructuredSelection) selection).getFirstElement();
+ Map<Command, String> enabledCommands = CdmViewerUtil.getAvailableViewers(firstElement);
- //check if only one or multiple viewers/commands are available
- if(enabledCommands.size()==1){
- Entry<Command, String> entry = enabledCommands.entrySet().iterator().next();
- final Command command = entry.getKey();
- String viewerName = entry.getValue();
+ //check if only one or multiple viewers/commands are available
+ if(enabledCommands.size()==1){
+ Entry<Command, String> entry = enabledCommands.entrySet().iterator().next();
+ final Command command = entry.getKey();
+ String viewerName = entry.getValue();
- MenuItem addItem = new MenuItem(menu, SWT.CASCADE);
- addItem.setText(String.format(Messages.CdmViewerContextMenu_OPEN, viewerName));
- addItem.addSelectionListener(new CommandInvoker(command, firstElement)) ;
- }
- else if(enabledCommands.size()>1){
- MenuItem addItem = new MenuItem(menu, SWT.CASCADE);
- addItem.setText(Messages.CdmViewerContextMenu_OPEN_IN);
- Menu addMenu = new Menu(menu);
- addItem.setMenu(addMenu);
- for(Entry<Command, String> entry:enabledCommands.entrySet()){
- final Command command = entry.getKey();
- String viewerName = entry.getValue();
+ MenuItem addItem = new MenuItem(menu, SWT.CASCADE);
+ addItem.setText(String.format(Messages.CdmViewerContextMenu_OPEN, viewerName));
+ addItem.addSelectionListener(new CommandInvoker(command, firstElement)) ;
+ }
+ else if(enabledCommands.size()>1){
+ MenuItem addItem = new MenuItem(menu, SWT.CASCADE);
+ addItem.setText(Messages.CdmViewerContextMenu_OPEN_IN);
+ Menu addMenu = new Menu(menu);
+ addItem.setMenu(addMenu);
+ for(Entry<Command, String> entry:enabledCommands.entrySet()){
+ final Command command = entry.getKey();
+ String viewerName = entry.getValue();
- MenuItem menuItem = new MenuItem(addMenu, SWT.NONE);
- menuItem.setText(viewerName);
- menuItem.addSelectionListener(new CommandInvoker(command, firstElement)) ;
- }
- }
+ MenuItem menuItem = new MenuItem(addMenu, SWT.NONE);
+ menuItem.setText(viewerName);
+ menuItem.addSelectionListener(new CommandInvoker(command, firstElement)) ;
+ }
+ }
+ }
}
}