Merge branch 'remoting-4.0' into develop
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / view / descriptive / handler / MoveDescriptionToOtherTaxonHandler.java
index ae860755cd9747acedb1cdfe6a9ddb2a1bb6bc47..a87cb24d2d6b1fd2a8ac2eb64687934d24d2a8cc 100644 (file)
@@ -22,10 +22,12 @@ import eu.etaxonomy.cdm.api.service.IDescriptionService;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
+import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
 import eu.etaxonomy.taxeditor.editor.Page;
+import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
 import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.MoveDescriptionToOtherTaxonOperation;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
@@ -75,7 +77,7 @@ public class MoveDescriptionToOtherTaxonHandler extends AbstractHandler
                                }       else if (element instanceof DescriptionBase){
                                        uuid = ((DescriptionBase)element).getUuid();
                                }
-                               
+
                                if (uuid != null){
                                        descriptions.add((TaxonDescription) CdmStore.getService(IDescriptionService.class).load(uuid, null));
                                }
@@ -88,12 +90,21 @@ public class MoveDescriptionToOtherTaxonHandler extends AbstractHandler
                        List<UUID> excludeTaxa = new ArrayList<UUID>();
                        editor = (TaxonNameEditor) EditorUtil.getActiveEditorPage(Page.NAME);
                        excludeTaxa.add(descriptions.get(0).getTaxon().getUuid());
+
+                       //get current taxon node
+                       TaxonNode node = null;
+                       Classification classification = null;
+                       MultiPageTaxonEditor taxonEditor = EditorUtil.getActiveMultiPageTaxonEditor();
+            if(taxonEditor!=null){
+                node = ((TaxonEditorInput) taxonEditor.getEditorInput()).getTaxonNode();
+                classification = node.getClassification();
+            }
                        TaxonNode newAcceptedTaxonNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event),
                                        editor.getConversationHolder(),
                                        "Choose the accepted taxon",
                                        excludeTaxa,
-                                       null,
-                                       null);
+                                       node,
+                                       classification);
 
                        if (newAcceptedTaxonNode == null) {
                                return null;