fix #5342
authorKatja Luther <k.luther@bgbm.org>
Thu, 22 Oct 2015 12:22:44 +0000 (14:22 +0200)
committerKatja Luther <k.luther@bgbm.org>
Thu, 22 Oct 2015 12:22:44 +0000 (14:22 +0200)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/MoveDescriptionToOtherTaxonHandler.java

index a87cb24d2d6b1fd2a8ac2eb64687934d24d2a8cc..c51d0ee05057162159b7c88b79b87eb7e48262cb 100644 (file)
@@ -12,6 +12,7 @@ import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.common.NotDefinedException;
+import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.swt.widgets.Display;
@@ -26,9 +27,7 @@ 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;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
@@ -53,7 +52,7 @@ public class MoveDescriptionToOtherTaxonHandler extends AbstractHandler
        private MoveDescriptionToOtherTaxonOperation operation;
 
        private UUID newAcceptedTaxonNodeUuid;
-       private TaxonNameEditor editor;
+       private MultiPageTaxonEditor editor;
 
        /* (non-Javadoc)
         * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
@@ -63,6 +62,18 @@ public class MoveDescriptionToOtherTaxonHandler extends AbstractHandler
     public Object execute(ExecutionEvent event) throws ExecutionException {
 
                ISelection selection = HandlerUtil.getCurrentSelection(event);
+               editor = EditorUtil.getActiveMultiPageTaxonEditor();
+               if (this.editor.isDirty()){
+                   boolean proceed = MessageDialog.openQuestion(null,
+                          "Save changes", "You have made changes that must be saved before this query can be executed. Would you like to proceed?");
+               if (proceed) {
+                   editor.doSave(EditorUtil.getMonitor());
+               } else {
+                   return null;
+               }
+
+               }
+
 
                if(selection instanceof IStructuredSelection){
 
@@ -88,7 +99,8 @@ public class MoveDescriptionToOtherTaxonHandler extends AbstractHandler
 
                        // Choose the target taxon
                        List<UUID> excludeTaxa = new ArrayList<UUID>();
-                       editor = (TaxonNameEditor) EditorUtil.getActiveEditorPage(Page.NAME);
+
+
                        excludeTaxa.add(descriptions.get(0).getTaxon().getUuid());
 
                        //get current taxon node
@@ -143,7 +155,7 @@ public class MoveDescriptionToOtherTaxonHandler extends AbstractHandler
 
                        @Override
             public void run() {
-                               AbstractUtility.close(editor.getMultiPageTaxonEditor());
+                               AbstractUtility.close(editor);
 
                                try {
                                        MultiPageTaxonEditor possibleOpenEditor = (MultiPageTaxonEditor) EditorUtil.findEditorByTaxonNodeUuid(newAcceptedTaxonNodeUuid);