Merge branch 'release/4.7.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / view / derivate / operation / DeleteDerivateOperation.java
index 409416da2eb438d3da8ce2adb54417dfbac93e0d..831f117e87fde1ddf44f0ef0a1acfa41ed3b2988 100644 (file)
@@ -16,7 +16,6 @@ import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.jface.viewers.TreeNode;
-import org.eclipse.ui.ISaveablePart;
 
 import eu.etaxonomy.cdm.api.service.DeleteResult;
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
@@ -25,13 +24,11 @@ import eu.etaxonomy.cdm.api.service.molecular.ISequenceService;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.molecular.Sequence;
 import eu.etaxonomy.cdm.model.molecular.SingleRead;
-import eu.etaxonomy.taxeditor.editor.Messages;
-import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
+import eu.etaxonomy.taxeditor.editor.l10n.Messages;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.ui.dialog.deleteConfigurator.DeleteConfiguratorDialog;
 
 /**
  *
@@ -60,44 +57,23 @@ public class DeleteDerivateOperation extends AbstractPostOperation<CdmBase> {
     /** {@inheritDoc} */
     @Override
     public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
-        if(getPostOperationEnabled() instanceof ISaveablePart){
-            String confirmationQuestion = Messages.DeleteDerivateOperation_REALLY_DELETE;
-            if(deleteConfigurator.isDeleteChildren()){
-                confirmationQuestion += Messages.DeleteDerivateOperation_AND_CHILDREN;
-            }
-            confirmationQuestion += "?"; //$NON-NLS-1$
-            if(!DeleteConfiguratorDialog.openConfirmWithConfigurator(deleteConfigurator, null, Messages.DeleteDerivateOperation_CONFIRM, confirmationQuestion)){
-                return Status.CANCEL_STATUS;
-            }
-            if(((ISaveablePart) getPostOperationEnabled()).isDirty()){
-                MessagingUtils.warningDialog(DerivateView.VIEW_HAS_UNSAVED_CHANGES, this, DerivateView.YOU_NEED_TO_SAVE_BEFORE_PERFORMING_THIS_ACTION);
-                return Status.CANCEL_STATUS;
-            }
-        }
+
         DeleteResult deleteResult;
         if(element instanceof SingleRead && treeNode!=null
                 && treeNode.getValue().equals(element)
                 && treeNode.getParent()!=null
                 && treeNode.getParent().getValue() instanceof Sequence){
-            deleteResult = CdmStore.getService(IOccurrenceService.class).deleteSingleRead(((SingleRead)element).getUuid(),
+            deleteResult = CdmStore.getService(ISequenceService.class).deleteSingleRead(((SingleRead)element).getUuid(),
                     ((Sequence) treeNode.getParent().getValue()).getUuid());
         } else if(element instanceof Sequence){
-            deleteResult = CdmStore.getService(ISequenceService.class).delete(element.getUuid(), deleteConfigurator);
+            deleteResult = CdmStore.getService(ISequenceService.class).delete(element.getUuid());
         } else {
-            deleteResult = CdmStore.getService(IOccurrenceService.class).deleteDerivateHierarchy(element.getUuid(), deleteConfigurator);
-        }
-        if(deleteResult.isOk()){
-            if(getPostOperationEnabled() instanceof DerivateView){
-                DerivateView derivateView = (DerivateView) getPostOperationEnabled();
-                derivateView.remove(element);
-                //update DerivateView
-                derivateView.getConversationHolder().commit();
-                IStatus returnStatus = postExecute(null);
-                return returnStatus;
-            }
+            deleteResult = CdmStore.getService(IOccurrenceService.class).delete(element.getUuid(), deleteConfigurator);
         }
-        else{
+
+        if (!deleteResult.isOk()) {
             MessagingUtils.warningDialog(Messages.DeleteDerivateOperation_DELETE_FAILED, this, deleteResult.toString());
+
             return Status.CANCEL_STATUS;
         }
         return Status.OK_STATUS;