Fix possible NPE #4850 attic/branches/taxeditor/develop/26405
authorPatrick Plitzner <p.plitzner@bgbm.org>
Tue, 10 Nov 2015 15:15:48 +0000 (16:15 +0100)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Tue, 10 Nov 2015 15:15:48 +0000 (16:15 +0100)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/handler/DeleteTermBaseHandler.java

index d536c866b283403f275e0ba50a9c2cf220bf3a52..ac9ff958b45ff5dca05480a8533cbb1390e3bdb5 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$\r
 /**\r
 * Copyright (C) 2009 EDIT\r
 // $Id$\r
 /**\r
 * Copyright (C) 2009 EDIT\r
-* European Distributed Institute of Taxonomy \r
+* European Distributed Institute of Taxonomy\r
 * http://www.e-taxonomy.eu\r
 * http://www.e-taxonomy.eu\r
-* \r
+*\r
 * The contents of this file are subject to the Mozilla Public License Version 1.1\r
 * See LICENSE.TXT at the top of this package for the full license terms.\r
 */\r
 * The contents of this file are subject to the Mozilla Public License Version 1.1\r
 * See LICENSE.TXT at the top of this package for the full license terms.\r
 */\r
@@ -17,12 +17,15 @@ import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.common.NotDefinedException;\r
 import org.eclipse.core.commands.operations.IUndoContext;\r
 import org.eclipse.jface.dialogs.MessageDialog;\r
 import org.eclipse.core.commands.common.NotDefinedException;\r
 import org.eclipse.core.commands.operations.IUndoContext;\r
 import org.eclipse.jface.dialogs.MessageDialog;\r
+import org.eclipse.jface.viewers.ISelection;\r
 import org.eclipse.jface.viewers.IStructuredSelection;\r
 import org.eclipse.jface.viewers.IStructuredSelection;\r
+import org.eclipse.ui.IEditorPart;\r
 import org.eclipse.ui.handlers.HandlerUtil;\r
 \r
 import eu.etaxonomy.cdm.model.common.TermBase;\r
 import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermEditor;\r
 import eu.etaxonomy.taxeditor.editor.definedterm.operation.DeleteTermBaseOperation;\r
 import org.eclipse.ui.handlers.HandlerUtil;\r
 \r
 import eu.etaxonomy.cdm.model.common.TermBase;\r
 import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermEditor;\r
 import eu.etaxonomy.taxeditor.editor.definedterm.operation.DeleteTermBaseOperation;\r
+import eu.etaxonomy.taxeditor.model.AbstractUtility;\r
 import eu.etaxonomy.taxeditor.model.MessagingUtils;\r
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;\r
 import eu.etaxonomy.taxeditor.store.StoreUtil;\r
 import eu.etaxonomy.taxeditor.model.MessagingUtils;\r
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;\r
 import eu.etaxonomy.taxeditor.store.StoreUtil;\r
@@ -34,12 +37,9 @@ import eu.etaxonomy.taxeditor.store.StoreUtil;
  */\r
 public class DeleteTermBaseHandler extends AbstractHandler {\r
 \r
  */\r
 public class DeleteTermBaseHandler extends AbstractHandler {\r
 \r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)\r
-        */\r
        @Override\r
        public Object execute(ExecutionEvent event) throws ExecutionException {\r
        @Override\r
        public Object execute(ExecutionEvent event) throws ExecutionException {\r
-               DefinedTermEditor editor = (DefinedTermEditor) HandlerUtil\r
+               IEditorPart editor = HandlerUtil\r
                                .getActiveEditor(event);\r
 \r
                if (editor.isDirty()){\r
                                .getActiveEditor(event);\r
 \r
                if (editor.isDirty()){\r
@@ -52,33 +52,33 @@ public class DeleteTermBaseHandler extends AbstractHandler {
                        }\r
                }\r
                if (editor instanceof DefinedTermEditor){\r
                        }\r
                }\r
                if (editor instanceof DefinedTermEditor){\r
-                       DefinedTermEditor dfe = (DefinedTermEditor) editor;\r
-                       try {\r
-                               String label = event.getCommand().getName();\r
-                               IUndoContext undoContext = StoreUtil.getUndoContext();\r
+                   DefinedTermEditor dfe = (DefinedTermEditor) editor;\r
+                   try {\r
+                       String label = event.getCommand().getName();\r
+                       IUndoContext undoContext = StoreUtil.getUndoContext();\r
 \r
 \r
-                               IStructuredSelection selection = (IStructuredSelection) HandlerUtil\r
-                                               .getCurrentSelection(event);\r
+                       ISelection selection = dfe.getViewer().getSelection();\r
+                       if(selection instanceof IStructuredSelection){\r
 \r
 \r
-                               Iterator<TermBase> selectionIterator = selection.iterator();\r
+                           Iterator<TermBase> selectionIterator = ((IStructuredSelection) selection).iterator();\r
 \r
 \r
-                               while (selectionIterator.hasNext()){\r
+                           while (selectionIterator.hasNext()){\r
 \r
 \r
-                                       TermBase term = selectionIterator.next();\r
+                               TermBase term = selectionIterator.next();\r
 \r
 \r
 \r
 \r
-                                       AbstractPostOperation operation = \r
-                                                       new DeleteTermBaseOperation(label, \r
-                                                                       undoContext,\r
-                                                                       term,\r
-                                                                       dfe.getDefinedTermEditorInput(), \r
-                                                                       editor);\r
-                                       StoreUtil.executeOperation(operation);\r
-\r
-                               }       \r
-                       } catch (NotDefinedException e) {\r
-                               MessagingUtils.error(getClass(), e);\r
-                       }\r
+                               AbstractPostOperation operation =\r
+                                       new DeleteTermBaseOperation(label,\r
+                                               undoContext,\r
+                                               term,\r
+                                               dfe.getDefinedTermEditorInput(),\r
+                                               dfe);\r
+                               AbstractUtility.executeOperation(operation);\r
+                           }\r
+                       }\r
+                   } catch (NotDefinedException e) {\r
+                       MessagingUtils.error(getClass(), e);\r
+                   }\r
                }\r
                return null;\r
        }\r
                }\r
                return null;\r
        }\r