ref #6595 Fix "move synonym to another taxon" handler
authorPatrick Plitzner <p.plitzner@bgbm.org>
Wed, 8 Nov 2017 08:45:53 +0000 (09:45 +0100)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Wed, 8 Nov 2017 08:45:53 +0000 (09:45 +0100)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/MoveSynonymToAnotherAcceptedTaxonHandlerE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/operation/MoveSynonymToAnotherAcceptedTaxonOperationE4.java

index 64c1293a4a48ed09490dfd6c1f8af5efccd523f3..c9406273209b2c3a8ab1197e3b62e557abafd0a0 100644 (file)
@@ -4,15 +4,19 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
 
+import javax.inject.Inject;
 import javax.inject.Named;
 
 import org.apache.log4j.Logger;
 import org.eclipse.e4.core.di.annotations.CanExecute;
 import org.eclipse.e4.core.di.annotations.Execute;
 import org.eclipse.e4.ui.di.UISynchronize;
+import org.eclipse.e4.ui.model.application.MApplication;
 import org.eclipse.e4.ui.model.application.ui.basic.MPart;
 import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
 import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.e4.ui.workbench.modeling.EModelService;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.swt.widgets.Shell;
 
@@ -37,12 +41,24 @@ public class MoveSynonymToAnotherAcceptedTaxonHandlerE4 implements IPostOperatio
 
        private TaxonNameEditorE4 editor;
 
+    private TaxonNode newParentNode;
+
+    private EPartService partService;
+
+    @Inject
+    private EModelService modelService;
+
+    @Inject
+    private MApplication application;
+
        @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
             @Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
-            @Named(IServiceConstants.ACTIVE_SHELL)Shell shell,
+            @Named(IServiceConstants.ACTIVE_SHELL)Shell shell, EPartService partService,
             UISynchronize sync) {
 
+           this.partService = partService;
+
         editor = (TaxonNameEditorE4) activePart.getObject();
 
         TaxonEditorInputE4 input = editor.getEditorInput();
@@ -63,11 +79,11 @@ public class MoveSynonymToAnotherAcceptedTaxonHandlerE4 implements IPostOperatio
                excludeTaxa.add(oldParent.getUuid());
 
 
-               TaxonNode newParentNode = TaxonNodeSelectionDialog.select(shell, editor.getConversationHolder(), Messages.MoveSynonymToAnotherAcceptedTaxonHandler_SELECT_ACC_TAXON, excludeTaxa,  input.getTaxonNode(), input.getTaxonNode().getClassification());
+               newParentNode = TaxonNodeSelectionDialog.select(shell, editor.getConversationHolder(), Messages.MoveSynonymToAnotherAcceptedTaxonHandler_SELECT_ACC_TAXON, excludeTaxa,  input.getTaxonNode(), input.getTaxonNode().getClassification());
 
                if(newParentNode!=null){
                   MoveSynonymToAnotherAcceptedTaxonOperationE4 operation = new MoveSynonymToAnotherAcceptedTaxonOperationE4(Messages.MoveSynonymToAnotherAcceptedTaxonHandler_CHANGE_ACC_TAXON, EditorUtil.getUndoContext(),
-                           synonym.getUuid(), newParentNode.getTaxon(), editor, editor);
+                           synonym.getUuid(), newParentNode.getTaxon(), this, editor);
 
                    AbstractUtility.executeOperation(operation, sync);
                }
@@ -94,7 +110,8 @@ public class MoveSynonymToAnotherAcceptedTaxonHandlerE4 implements IPostOperatio
 
        @Override
        public boolean onComplete() {
-               return false;
+           EditorUtil.openTaxonNodeE4(newParentNode.getUuid(), modelService, partService, application);
+               return true;
        }
 
 }
index c2ac3ab1b7835c4eb0b0e3e7f032e84c76e18e73..309c7a6adcc16bf327279bd1206b3cfc9ae8d1a9 100644 (file)
@@ -70,7 +70,7 @@ public class MoveSynonymToAnotherAcceptedTaxonOperationE4 extends
                conversationEnabled.getConversationHolder().commit();
 
                // Redraw editor if it exists
-               return postExecute(synonym);
+               return postExecute(null);
        }
 
        @Override