String plural = selection.size() > 1 ? "s" : "";
// Prompt user for confirmation
- if(! MessageDialog.openConfirm(HandlerUtil.getActiveShell(event), "Confirm Deletion", "Are you sure you want to delete the selected node" + plural +"?")){
- return null;
- }
+
+
Iterator selectionIterator = selection.iterator();
Set<ITaxonTreeNode> treeNodes = new HashSet<ITaxonTreeNode>();
if (treeNodes.size() == 1 ){
try {
+ ITaxonTreeNode treeNode = treeNodes.iterator().next();
+ ITaxonTreeNode taxonNode =treeNode;
+
+ if (taxonNode instanceof Classification && taxonNode.hasChildNodes()){
+ if(! MessageDialog.openConfirm(HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the classification? The tree has children, they will be deleted, too")){
+ return null;
+ }
+ } else if (taxonNode instanceof Classification && !taxonNode.hasChildNodes()){
+ if(! MessageDialog.openConfirm(HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the classification?")){
+ return null;
+ }
+ } else {
+ if(! MessageDialog.openConfirm(HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the selected node?")){
+ return null;
+ }
+ }
if (allEditorsClosed){
- ITaxonTreeNode treeNode = treeNodes.iterator().next();
- /*if (treeNode instanceof Classification){
- operation = new DeleteOperation(
- event.getCommand().getName(), NavigationUtil.getUndoContext(),
- treeNodes, new TaxonDeletionConfigurator(), taxonNavigator, taxonNavigator);
-
- NavigationUtil.executeOperation(operation);
- }else {*/
- ITaxonTreeNode taxonNode =treeNode;
+ /*if(! MessageDialog.openConfirm(HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the selected nodes?")){
+ return null;
+ }*/
operation = new DeleteOperation(
event.getCommand().getName(), NavigationUtil.getUndoContext(),
taxonNode, new TaxonDeletionConfigurator(), taxonNavigator, taxonNavigator);
}
} else{
try{
+ if(! MessageDialog.openConfirm(HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the selected nodes?")){
+ return null;
+ }
if (allEditorsClosed){
operation = new DeleteOperation(
event.getCommand().getName(), NavigationUtil.getUndoContext(),