From: Patrick Plitzner
Date: Tue, 10 Nov 2015 15:15:48 +0000 (+0100)
Subject: Fix possible NPE #4850
X-Git-Tag: 3.12.0^2~66
X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/df5f483298b22b24ee3daf57259d0ef41db5b147?ds=inline
Fix possible NPE #4850
---
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/handler/DeleteTermBaseHandler.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/handler/DeleteTermBaseHandler.java
index d536c866b..ac9ff958b 100644
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/handler/DeleteTermBaseHandler.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/handler/DeleteTermBaseHandler.java
@@ -1,9 +1,9 @@
// $Id$
/**
* Copyright (C) 2009 EDIT
-* European Distributed Institute of Taxonomy
+* European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
-*
+*
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
@@ -17,12 +17,15 @@ import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.common.NotDefinedException;
import org.eclipse.core.commands.operations.IUndoContext;
import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.handlers.HandlerUtil;
import eu.etaxonomy.cdm.model.common.TermBase;
import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermEditor;
import eu.etaxonomy.taxeditor.editor.definedterm.operation.DeleteTermBaseOperation;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
import eu.etaxonomy.taxeditor.store.StoreUtil;
@@ -34,12 +37,9 @@ import eu.etaxonomy.taxeditor.store.StoreUtil;
*/
public class DeleteTermBaseHandler extends AbstractHandler {
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
- */
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
- DefinedTermEditor editor = (DefinedTermEditor) HandlerUtil
+ IEditorPart editor = HandlerUtil
.getActiveEditor(event);
if (editor.isDirty()){
@@ -52,33 +52,33 @@ public class DeleteTermBaseHandler extends AbstractHandler {
}
}
if (editor instanceof DefinedTermEditor){
- DefinedTermEditor dfe = (DefinedTermEditor) editor;
- try {
- String label = event.getCommand().getName();
- IUndoContext undoContext = StoreUtil.getUndoContext();
+ DefinedTermEditor dfe = (DefinedTermEditor) editor;
+ try {
+ String label = event.getCommand().getName();
+ IUndoContext undoContext = StoreUtil.getUndoContext();
- IStructuredSelection selection = (IStructuredSelection) HandlerUtil
- .getCurrentSelection(event);
+ ISelection selection = dfe.getViewer().getSelection();
+ if(selection instanceof IStructuredSelection){
- Iterator selectionIterator = selection.iterator();
+ Iterator selectionIterator = ((IStructuredSelection) selection).iterator();
- while (selectionIterator.hasNext()){
+ while (selectionIterator.hasNext()){
- TermBase term = selectionIterator.next();
+ TermBase term = selectionIterator.next();
- AbstractPostOperation operation =
- new DeleteTermBaseOperation(label,
- undoContext,
- term,
- dfe.getDefinedTermEditorInput(),
- editor);
- StoreUtil.executeOperation(operation);
-
- }
- } catch (NotDefinedException e) {
- MessagingUtils.error(getClass(), e);
- }
+ AbstractPostOperation operation =
+ new DeleteTermBaseOperation(label,
+ undoContext,
+ term,
+ dfe.getDefinedTermEditorInput(),
+ dfe);
+ AbstractUtility.executeOperation(operation);
+ }
+ }
+ } catch (NotDefinedException e) {
+ MessagingUtils.error(getClass(), e);
+ }
}
return null;
}