/**
- *
+ *
*/
package eu.etaxonomy.taxeditor.editor.key.polytomous.operation;
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.hibernate.HibernateProxyHelper;
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.AbstractPostOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* @author n.hoffmann
- *
+ *
*/
-public class DeleteNodeOperation extends AbstractPostTaxonOperation {
+public class DeleteNodeOperation extends AbstractPostOperation<PolytomousKeyNode> {
private final PolytomousKeyNode parent;
private final PolytomousKeyNode node;
+
public DeleteNodeOperation(String label, IUndoContext undoContext,
PolytomousKeyNode node, IPostOperationEnabled postOperationEnabled) {
- super(label, undoContext, postOperationEnabled);
+ super(label, undoContext, node, postOperationEnabled);
+ HibernateProxyHelper.deproxy(node, PolytomousKeyNode.class);
this.node = node;
this.parent = node.getParent();
}
/*
* (non-Javadoc)
- *
+ *
* @see
* org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse
* .core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
@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?")) {
result = service.delete(node.getUuid(), false);
} else{
result = service.delete(node.getUuid(), true);
}
-
+
if (!result.isOk() || result.getExceptions().size() > 0){
Exception t = new Exception();
if (result.getExceptions().size() >1){
/*
* (non-Javadoc)
- *
+ *
* @see
* org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse
* .core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
/*
* (non-Javadoc)
- *
+ *
* @see
* org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse
* .core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)