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