delete in taxon bulk editor
[taxeditor.git] / eu.etaxonomy.taxeditor.bulkeditor / src / main / java / eu / etaxonomy / taxeditor / bulkeditor / handler / DeleteHandler.java
index 93e2682ccd2f973833df684ba01dbbab414e917b..95b1636ec84b555604ffd35a36af5310eb4e0fcf 100644 (file)
@@ -10,6 +10,8 @@
 
 package eu.etaxonomy.taxeditor.bulkeditor.handler;
 
+import java.util.UUID;
+
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
@@ -34,6 +36,9 @@ import eu.etaxonomy.cdm.model.name.NameRelationship;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.cdm.model.taxon.Synonym;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
 import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService;
@@ -80,7 +85,7 @@ public class DeleteHandler extends AbstractHandler {
                                for(Object object : structuredSelection.toList()){
                                        
                                        LineAnnotation annotation = (LineAnnotation) model.getAnnotation(object);
-                                                       
+                                       String result = "";     
                                        try {
                                                ICdmApplicationConfiguration controller;
                                                controller = (ICdmApplicationConfiguration) CdmStore.getCurrentApplicationConfiguration();
@@ -88,26 +93,38 @@ public class DeleteHandler extends AbstractHandler {
                                                if (object instanceof SpecimenOrObservationBase){
                                                        
                                                        IOccurrenceService service = controller.getOccurrenceService();
-                                                       service.delete((SpecimenOrObservationBase)object);
+                                                       result = service.delete((SpecimenOrObservationBase)object);
                                                } else if (object instanceof Reference){
                                                        IReferenceService service = controller.getReferenceService();
-                                                       service.delete((Reference)object);
+                                                       result = service.delete((Reference)object);
                                                } else if (object instanceof Group){
                                                        IGroupService service = controller.getGroupService();
-                                                       service.delete((Group) object);
+                                                       result = service.delete((Group) object);
                                                }else if (object instanceof User){
                                                        IUserService service = controller.getUserService();
-                                                       service.delete((User) object);
+                                                       result = service.delete((User) object);
                                                } else if (object instanceof TaxonNameBase){
                                                        INameService service = controller.getNameService();
-                                                       service.delete((TaxonNameBase)object);
+                                                       result = service.delete((TaxonNameBase)object);
+                                               } else if (object instanceof TaxonBase){
+                                                       ITaxonService service = controller.getTaxonService();
+                                                       if (object instanceof Taxon){
+                                                               result = service.deleteTaxon((Taxon)object, null, null);
+                                                       }else{
+                                                               result = service.deleteSynonym((Synonym)object, null);
+                                                       }
                                                } else if (object instanceof TeamOrPersonBase){
                                                        IAgentService service = controller.getAgentService();
-                                                       service.delete((TeamOrPersonBase)object);
+                                                       result = service.delete((TeamOrPersonBase)object);
                                                }
                                        } catch (Exception e){
                                                BulkEditorUtil.errorDialog("Could not delete", getClass(), e.getMessage(), null);
                                        }
+                                       try {
+                                               UUID uuid = UUID.fromString(result);
+                                       }catch (IllegalArgumentException e){
+                                               BulkEditorUtil.errorDialog("Could not delete", getClass(), result, null);
+                                       }
                                        ((BulkEditor) editor).removeAnnotatedLine(annotation);
                                        
                                }