}
AbstractPostOperation operation = null;
TaxonDeletionConfigurator config = new TaxonDeletionConfigurator();
+ config.setDeleteInAllClassifications(false);
+
if (treeNodes.size() == 1 ){
try {
ITaxonTreeNode treeNode = treeNodes.iterator().next();
ITaxonTreeNode taxonNode =treeNode;
TaxonNodeDeletionConfigurator configNodes = new TaxonNodeDeletionConfigurator();
+
//configNodes.setDeleteTaxon(false);
if (taxonNode instanceof Classification && taxonNode.hasChildNodes()){
if(!DeleteConfiguratorDialog.openConfirmWithConfigurator(config, HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the classification? The tree has children, they will be deleted, too.")){
"Do you really want to delete the selected node? It has childnodes, they will be deleted, too.",
MessageDialog.WARNING, new String[] { "Delete all children",
"Move children to parent node", "Skip" }, 0);
- int result = dialog.open();
+ int dialog_result = dialog.open();
- if (result == 0){
+ if (dialog_result == 0){
//delete all children
configNodes.setChildHandling(ChildHandling.DELETE);
config.setTaxonNodeConfig(configNodes);
- } else if (result == 1){
+ } else if (dialog_result == 1){
//move children
configNodes.setChildHandling(ChildHandling.MOVE_TO_PARENT);
config.setTaxonNodeConfig(configNodes);
- } else if (result == 2){
+ } else if (dialog_result == 2){
//skip
return null;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.MessageDialog;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
-import eu.etaxonomy.cdm.api.service.DeleteResult;
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
import eu.etaxonomy.cdm.api.service.UpdateResult;
import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
monitor.worked(20);
bind();
- Taxon oldTaxon = (Taxon) HibernateProxyHelper.deproxy(((TaxonNode) taxonNode).getTaxon());
- try {
+ Taxon oldTaxon = HibernateProxyHelper.deproxy(((TaxonNode) taxonNode).getTaxon(), Taxon.class);
+ Taxon newAcceptedTaxon = HibernateProxyHelper.deproxy(newAcceptedTaxonNode.getTaxon(), Taxon.class);
+ try {
UpdateResult result = CdmStore.getService(ITaxonNodeService.class).makeTaxonNodeASynonymOfAnotherTaxonNode(taxonNode.getUuid(), newAcceptedTaxonNode.getUuid(), null, null, null);
-
+
+
if (!result.getExceptions().isEmpty() && result.isOk()){
String separator = ", ";
String exceptionString = "";
for (Exception exception : result.getExceptions()) {
exceptionString += exception.getLocalizedMessage()+separator;
}
-
- MessagingUtils.informationDialog("Synonym created but taxon is not deleted.", exceptionString);
+
+ MessagingUtils.informationDialog("Synonym created but taxon is not deleted.", exceptionString);
} else if (result.isAbort() || result.isError()){
MessagingUtils.errorDialog("Synonym could not created", null, result.toString(), TaxeditorNavigationPlugin.PLUGIN_ID, null, true);
}
MessagingUtils.errorDialog("Operation failed", this, e.getMessage(), TaxeditorNavigationPlugin.PLUGIN_ID, e, false);
return Status.CANCEL_STATUS;
}
-
+
monitor.worked(40);
return postExecute(oldTaxon);