Merge branch 'develop' into remoting-4.0
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / name / operation / DeleteMisapplicationOperation.java
index fb4856897d7e0a285ea50ef51518498a43b7e4cc..0c03146a44868cc2023c304988504454f0a7925f 100644 (file)
@@ -15,12 +15,16 @@ import org.eclipse.core.runtime.IAdaptable;
 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>
@@ -62,17 +66,28 @@ public class DeleteMisapplicationOperation extends AbstractPostTaxonOperation {
                        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);