package eu.etaxonomy.taxeditor.navigation.key.polytomous.handler;
+import java.util.List;
+
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
public Object execute(ExecutionEvent event) throws ExecutionException {
IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
- PolytomousKey key = (PolytomousKey) selection.getFirstElement();
+ List<PolytomousKey> keys = selection.toList();
+
+ if(keys.isEmpty()){
+ return null;
+ }
+
+ boolean confirmation = NavigationUtil.confirmDialog("Confirm deletaion", "Do you want to delete the selected key" + (keys.size() == 1 ? "" : "s") + "?");
- if(NavigationUtil.confirmDialog("Confirm deletaion", "Do you really want to delete the key: " + key.getTitleCache())){
+ if(confirmation){
- try {
- AbstractPostOperation operation = new DeleteOperation(
- event.getCommand().getName(),
- NavigationUtil.getUndoContext(), key,
- (PolytomousKeyViewPart) NavigationUtil.getView(PolytomousKeyViewPart.ID, false),
- (PolytomousKeyViewPart) NavigationUtil.getView(PolytomousKeyViewPart.ID, false));
- NavigationUtil.executeOperation(operation);
- } catch (NotDefinedException e) {
- NavigationUtil.error(getClass(), e);
+ for(PolytomousKey key : keys){
+ try {
+ AbstractPostOperation operation = new DeleteOperation(
+ event.getCommand().getName(),
+ NavigationUtil.getUndoContext(), key,
+ (PolytomousKeyViewPart) NavigationUtil.getView(PolytomousKeyViewPart.ID, false),
+ (PolytomousKeyViewPart) NavigationUtil.getView(PolytomousKeyViewPart.ID, false));
+ NavigationUtil.executeOperation(operation);
+ } catch (NotDefinedException e) {
+ NavigationUtil.error(getClass(), e);
+ }
}
}