import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
+import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
+import eu.etaxonomy.cdm.api.service.ITaxonService;
+import eu.etaxonomy.cdm.api.service.config.NameDeletionConfigurator;
+import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
import eu.etaxonomy.cdm.model.reference.Reference;
import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* <p>DeleteMisapplicationOperation class.</p>
throws ExecutionException {
// Find misapplication relation, save citation information
- for (TaxonRelationship relationship : element.getTaxonRelations()) {
- if (relationship.getType().equals(TaxonRelationshipType.MISAPPLIED_NAME_FOR())
- && relationship.getFromTaxon().equals(misapplication)) {
- citation = relationship.getCitation();
- microcitation = relationship.getCitationMicroReference();
- }
- }
+
+// for (TaxonRelationship relationship : element.getTaxonRelations()) {
+// if (relationship.getType().equals(TaxonRelationshipType.MISAPPLIED_NAME_FOR())
+// && relationship.getFromTaxon().equals(misapplication)) {
+// citation = relationship.getCitation();
+// microcitation = relationship.getCitationMicroReference();
+// }
+// }
monitor.worked(20);
// Remove misapplied name relation from taxon
element.removeTaxon(misapplication, TaxonRelationshipType.MISAPPLIED_NAME_FOR());
+ ICdmApplicationConfiguration controller;
+
+ controller = CdmStore.getCurrentApplicationConfiguration();
+
+ ITaxonService service = controller.getTaxonService();
+ TaxonDeletionConfigurator config = new TaxonDeletionConfigurator();
+ NameDeletionConfigurator nameConfig = new NameDeletionConfigurator();
+ nameConfig.setRemoveAllNameRelationships(true);
+ config.setNameDeletionConfig(nameConfig);
+ service.deleteTaxon(misapplication.getUuid(), config, null);
monitor.worked(40);
return postExecute(null);