ref #6595 Use only e4 handler for opening name editor
[taxeditor.git] / eu.etaxonomy.taxeditor.navigation / src / main / java / eu / etaxonomy / taxeditor / navigation / navigator / handler / MoveFactualDataHandler.java
index c33d9ff125030bf14131eee0d93c5c7bf33a2888..27a014b8f7caa2ca899fdfcdf128657650e79ee3 100644 (file)
@@ -12,7 +12,6 @@ import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.TreeSelection;
 import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.handlers.HandlerUtil;
 
@@ -27,6 +26,7 @@ import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
+import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
 import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionDialog;
@@ -39,7 +39,7 @@ public class MoveFactualDataHandler extends AbstractHandler {
     @Override
     public Object execute(ExecutionEvent event) throws ExecutionException {
         ISelection currentSelection = HandlerUtil.getCurrentSelection(event);
-        IWorkbenchPart activePart = AbstractUtility.getActivePart();
+        Object activePart = AbstractUtility.getActiveE4Part();
         TaxonNavigator navigator = null;
         if(activePart instanceof TaxonNavigator){
             navigator = (TaxonNavigator)activePart;
@@ -50,8 +50,7 @@ public class MoveFactualDataHandler extends AbstractHandler {
                 TaxonNode taxonNode = HibernateProxyHelper.deproxy(object, TaxonNode.class);
                 final TaxonNode sourceTaxonNode = CdmStore.getService(ITaxonNodeService.class).load(taxonNode.getUuid());
                 if(NavigationUtil.isDirty(sourceTaxonNode)){
-                    MessageDialog.openWarning(HandlerUtil.getActiveShell(event), "Unsaved Source Taxon", "There are unsaved " +
-                            "changes in the source taxon. Please save first.");
+                    MessageDialog.openWarning(HandlerUtil.getActiveShell(event), Messages.MoveFactualDataHandler_UNSAVED_SOURCE, Messages.MoveFactualDataHandler_UNSAVED_SOURCE_MESSAGE);
                     return null;
                 }
                 //reload to avoid session conflicts
@@ -62,18 +61,17 @@ public class MoveFactualDataHandler extends AbstractHandler {
                     excludeTaxa.add(taxon.getUuid());
                     TaxonNode dialogTaxonNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event),
                             navigator.getConversationHolder(),
-                            "Choose the accepted taxon",
+                            Messages.MoveFactualDataHandler_CHOOSE_TAXON,
                             excludeTaxa,
-                            null,
-                            null);
+                            sourceTaxonNode,
+                            sourceTaxonNode.getClassification());
                     if (dialogTaxonNode == null) {
                         return null;
                     }
                     //reload to avoid session conflicts
                     final TaxonNode targetTaxonNode = CdmStore.getService(ITaxonNodeService.class).load(dialogTaxonNode.getUuid());
                     if(NavigationUtil.isDirty(targetTaxonNode)){
-                        MessageDialog.openWarning(HandlerUtil.getActiveShell(event), "Unsaved Target Taxon", "There are unsaved " +
-                                "changes in the target taxon. Please save first.");
+                        MessageDialog.openWarning(HandlerUtil.getActiveShell(event), Messages.MoveFactualDataHandler_UNSAVED_TARGET, Messages.MoveFactualDataHandler_UNSAVED_TARGET_MESSAGE);
                         return null;
                     }
                     CdmStore.getService(IDescriptionService.class).moveTaxonDescriptions(taxon.getUuid(),targetTaxonNode.getTaxon().getUuid());
@@ -93,13 +91,13 @@ public class MoveFactualDataHandler extends AbstractHandler {
                                     AbstractUtility.close(sourceEditor);
                                     AbstractUtility.close(targetEditor);
                                 }
-                                EditorUtil.openTaxonNode(sourceTaxonNode.getUuid());
-                                EditorUtil.openTaxonNode(targetTaxonNode.getUuid());
+                                EditorUtil.openTaxonNodeE4(sourceTaxonNode.getUuid());
+                                EditorUtil.openTaxonNodeE4(targetTaxonNode.getUuid());
                             } catch (PartInitException e) {
                                 MessagingUtils.error(this.getClass(), e);
                                 throw new RuntimeException(e);
                             } catch (Exception e) {
-                                MessagingUtils.warningDialog("Could not create Taxon", this, e.getMessage());
+                                MessagingUtils.warningDialog(Messages.MoveFactualDataHandler_CREATE_FAILED, this, e.getMessage());
                             }
                         }