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;
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;
for(Object object : structuredSelection.toList()){
LineAnnotation annotation = (LineAnnotation) model.getAnnotation(object);
-
+ String result = "";
try {
ICdmApplicationConfiguration controller;
controller = (ICdmApplicationConfiguration) CdmStore.getCurrentApplicationConfiguration();
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);
}