import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.ui.handlers.HandlerUtil;
import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
+ import eu.etaxonomy.cdm.api.service.DeleteResult;
import eu.etaxonomy.cdm.api.service.IPolytomousKeyNodeService;
-import eu.etaxonomy.cdm.api.service.ITaxonService;
import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
+ import eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin;
+ import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
import eu.etaxonomy.taxeditor.store.CdmStore;
@Override
public IStatus execute(IProgressMonitor monitor, IAdaptable info)
throws ExecutionException {
-
+
//parent.removeChild(node);
ICdmApplicationConfiguration controller;
-
- controller = (ICdmApplicationConfiguration) CdmStore.getCurrentApplicationConfiguration();
-
+
+ controller = CdmStore.getCurrentApplicationConfiguration();
+
IPolytomousKeyNodeService service = controller.getPolytomousKeyNodeService();
-
+ DeleteResult result;
if (node.getChildren().size()>0){
if(! MessageDialog.openQuestion(null, "Confirm deletion of children", "The selected node has children, do you want to delete them, too?")) {
- service.delete(node.getUuid(), false);
+ result = service.delete(node.getUuid(), false);
} else{
- service.delete(node.getUuid(), true);
+ result = service.delete(node.getUuid(), true);
}
} else{
- service.delete(node.getUuid(), true);
+ result = service.delete(node.getUuid(), true);
+ }
+
+ if (!result.isOk() || result.getExceptions().size() > 0){
+ Exception t = new Exception();
+ if (result.getExceptions().size() >1){
+ for (Exception e:result.getExceptions()){
+ t.addSuppressed(e);
+ }
+ }else {
+ t = result.getExceptions().iterator().next();
+ }
+ MessagingUtils.errorDialog("Exception occured. Delete not possible", getClass(),null, TaxeditorBulkeditorPlugin.PLUGIN_ID, t, true);
}
return postExecute(null);
}
String arg4) {
return defaultService.changeSynonymToRelatedTaxon(arg0, arg1, arg2, arg3, arg4);
}
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.service.ITaxonService#changeRelatedTaxonToSynonym(java.util.UUID, java.util.UUID, eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType, eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType)
+ */
+ @Override
+ public UpdateResult changeRelatedTaxonToSynonym(UUID arg0, UUID arg1, TaxonRelationshipType arg2,
+ SynonymRelationshipType arg3) throws DataChangeNoRollbackException {
+ return defaultService.changeRelatedTaxonToSynonym(arg0, arg1, arg2, arg3);
+ }
++
}