Project

General

Profile

« Previous | Next » 

Revision adab7c46

Added by Patrick Plitzner over 7 years ago

Fix potential NPE

View differences:

eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerContextMenu.java
17 17
import org.eclipse.swt.events.SelectionEvent;
18 18
import org.eclipse.swt.widgets.Menu;
19 19
import org.eclipse.swt.widgets.MenuItem;
20
import org.eclipse.ui.IWorkbenchPage;
20 21
import org.eclipse.ui.IWorkbenchWindow;
21 22
import org.eclipse.ui.PlatformUI;
22 23
import org.eclipse.ui.actions.CompoundContributionItem;
......
42 43
                    @Override
43 44
                    public void fill(Menu menu, int index) {
44 45
                        final IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
45
                        final ISelection selection = window.getActivePage().getSelection();
46
                        if(selection instanceof IStructuredSelection){
47
                            Object firstElement = ((IStructuredSelection) selection).getFirstElement();
48
                            Map<Command, String> enabledCommands = CdmViewerUtil.getAvailableViewers(firstElement);
46
                        IWorkbenchPage activePage = window.getActivePage();
47
                        if(activePage!=null){
48
                        	final ISelection selection = activePage.getSelection();
49
                        	if(selection instanceof IStructuredSelection){
50
                        		Object firstElement = ((IStructuredSelection) selection).getFirstElement();
51
                        		Map<Command, String> enabledCommands = CdmViewerUtil.getAvailableViewers(firstElement);
49 52

  
50
                            //check if only one or multiple viewers/commands are available
51
                            if(enabledCommands.size()==1){
52
                                Entry<Command, String> entry = enabledCommands.entrySet().iterator().next();
53
                                final Command command = entry.getKey();
54
                                String viewerName = entry.getValue();
53
                        		//check if only one or multiple viewers/commands are available
54
                        		if(enabledCommands.size()==1){
55
                        			Entry<Command, String> entry = enabledCommands.entrySet().iterator().next();
56
                        			final Command command = entry.getKey();
57
                        			String viewerName = entry.getValue();
55 58

  
56
                                MenuItem addItem = new MenuItem(menu, SWT.CASCADE);
57
                                addItem.setText(String.format(Messages.CdmViewerContextMenu_OPEN, viewerName));
58
                                addItem.addSelectionListener(new CommandInvoker(command, firstElement)) ;
59
                            }
60
                            else if(enabledCommands.size()>1){
61
                                MenuItem addItem = new MenuItem(menu, SWT.CASCADE);
62
                                addItem.setText(Messages.CdmViewerContextMenu_OPEN_IN);
63
                                Menu addMenu = new Menu(menu);
64
                                addItem.setMenu(addMenu);
65
                                for(Entry<Command, String> entry:enabledCommands.entrySet()){
66
                                    final Command command = entry.getKey();
67
                                    String viewerName = entry.getValue();
59
                        			MenuItem addItem = new MenuItem(menu, SWT.CASCADE);
60
                        			addItem.setText(String.format(Messages.CdmViewerContextMenu_OPEN, viewerName));
61
                        			addItem.addSelectionListener(new CommandInvoker(command, firstElement)) ;
62
                        		}
63
                        		else if(enabledCommands.size()>1){
64
                        			MenuItem addItem = new MenuItem(menu, SWT.CASCADE);
65
                        			addItem.setText(Messages.CdmViewerContextMenu_OPEN_IN);
66
                        			Menu addMenu = new Menu(menu);
67
                        			addItem.setMenu(addMenu);
68
                        			for(Entry<Command, String> entry:enabledCommands.entrySet()){
69
                        				final Command command = entry.getKey();
70
                        				String viewerName = entry.getValue();
68 71

  
69
                                    MenuItem menuItem = new MenuItem(addMenu, SWT.NONE);
70
                                    menuItem.setText(viewerName);
71
                                    menuItem.addSelectionListener(new CommandInvoker(command, firstElement)) ;
72
                                }
73
                            }
72
                        				MenuItem menuItem = new MenuItem(addMenu, SWT.NONE);
73
                        				menuItem.setText(viewerName);
74
                        				menuItem.addSelectionListener(new CommandInvoker(command, firstElement)) ;
75
                        			}
76
                        		}
77
                        	}
74 78
                        }
75 79
                    }
76 80

  

Also available in: Unified diff