Merge branch 'develop' into remoting-4.0
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / view / derivate / operation / DeleteDerivateOperation.java
index 9706247d6a8b3807b1024889752dfb298aeed1cd..4948aaacccd1e7546e118acbcb2a0532767c5740 100644 (file)
@@ -21,9 +21,11 @@ import org.eclipse.ui.ISaveablePart;
 import eu.etaxonomy.cdm.api.service.DeleteResult;
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
 import eu.etaxonomy.cdm.api.service.config.SpecimenDeleteConfigurator;
+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.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
@@ -60,16 +62,16 @@ public class DeleteDerivateOperation extends AbstractPostOperation<CdmBase> {
     @Override
     public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
         if(getPostOperationEnabled() instanceof ISaveablePart){
-            String confirmationQuestion = "Do you really want to delete the selected element";
+            String confirmationQuestion = Messages.DeleteDerivateOperation_REALLY_DELETE;
             if(deleteConfigurator.isDeleteChildren()){
-                confirmationQuestion += " and its children";
+                confirmationQuestion += Messages.DeleteDerivateOperation_AND_CHILDREN;
             }
-            confirmationQuestion += "?";
-            if(!DeleteConfiguratorDialog.openConfirmWithConfigurator(deleteConfigurator, null, "Confirm Deletion", confirmationQuestion)){
+            confirmationQuestion += "?"; //$NON-NLS-1$
+            if(!DeleteConfiguratorDialog.openConfirmWithConfigurator(deleteConfigurator, null, Messages.DeleteDerivateOperation_CONFIRM, confirmationQuestion)){
                 return Status.CANCEL_STATUS;
             }
             if(((ISaveablePart) getPostOperationEnabled()).isDirty()){
-                MessagingUtils.warningDialog("View has unsaved changes", this, "You need to save before performing this action");
+                MessagingUtils.warningDialog(DerivateView.VIEW_HAS_UNSAVED_CHANGES, this, DerivateView.YOU_NEED_TO_SAVE_BEFORE_PERFORMING_THIS_ACTION);
                 return Status.CANCEL_STATUS;
             }
         }
@@ -80,8 +82,9 @@ public class DeleteDerivateOperation extends AbstractPostOperation<CdmBase> {
                 && treeNode.getParent().getValue() instanceof Sequence){
             deleteResult = CdmStore.getService(IOccurrenceService.class).deleteSingleRead(((SingleRead)element).getUuid(),
                     ((Sequence) treeNode.getParent().getValue()).getUuid());
-        }
-        else{
+        } else if(element instanceof Sequence){
+            deleteResult = CdmStore.getService(ISequenceService.class).delete(element.getUuid(), deleteConfigurator);
+        } else {
             deleteResult = CdmStore.getService(IOccurrenceService.class).deleteDerivateHierarchy(element.getUuid(), deleteConfigurator);
         }
         if(deleteResult.isOk()){
@@ -98,7 +101,7 @@ public class DeleteDerivateOperation extends AbstractPostOperation<CdmBase> {
             }
         }
         else{
-            MessagingUtils.warningDialog("Deletion failed", this, deleteResult.toString());
+            MessagingUtils.warningDialog(Messages.DeleteDerivateOperation_DELETE_FAILED, this, deleteResult.toString());
             return Status.CANCEL_STATUS;
         }
         return Status.OK_STATUS;