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; }