From adab7c46dbfbcda72c1929a01b17cdeeddeb899a Mon Sep 17 00:00:00 2001
From: Patrick Plitzner
Date: Thu, 18 Aug 2016 14:07:33 +0200
Subject: [PATCH] Fix potential NPE
---
.../taxeditor/view/CdmViewerContextMenu.java | 56 ++++++++++---------
1 file changed, 30 insertions(+), 26 deletions(-)
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerContextMenu.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerContextMenu.java
index 1adc65286..e8372443e 100644
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerContextMenu.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerContextMenu.java
@@ -17,6 +17,7 @@ import org.eclipse.swt.events.SelectionAdapter;
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;
@@ -42,35 +43,38 @@ public class CdmViewerContextMenu extends 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 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 enabledCommands = CdmViewerUtil.getAvailableViewers(firstElement);
- //check if only one or multiple viewers/commands are available
- if(enabledCommands.size()==1){
- Entry 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 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 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 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)) ;
+ }
+ }
+ }
}
}
--
2.34.1