Project

General

Profile

Download (2.25 KB) Statistics
| Branch: | Tag: | Revision:
1
// $Id$
2
/**
3
* Copyright (C) 2007 EDIT
4
* European Distributed Institute of Taxonomy 
5
* http://www.e-taxonomy.eu
6
* 
7
* The contents of this file are subject to the Mozilla Public License Version 1.1
8
* See LICENSE.TXT at the top of this package for the full license terms.
9
*/
10

    
11
package eu.etaxonomy.taxeditor.navigation.key.polytomous.handler;
12

    
13
import java.util.List;
14

    
15
import org.eclipse.core.commands.AbstractHandler;
16
import org.eclipse.core.commands.ExecutionEvent;
17
import org.eclipse.core.commands.ExecutionException;
18
import org.eclipse.core.commands.common.NotDefinedException;
19
import org.eclipse.jface.viewers.IStructuredSelection;
20
import org.eclipse.ui.handlers.HandlerUtil;
21

    
22
import eu.etaxonomy.cdm.model.description.PolytomousKey;
23
import eu.etaxonomy.taxeditor.model.MessagingUtils;
24
import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
25
import eu.etaxonomy.taxeditor.navigation.key.polytomous.PolytomousKeyViewPart;
26
import eu.etaxonomy.taxeditor.navigation.key.polytomous.operation.DeleteOperation;
27
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
28

    
29
/**
30
 * @author n.hoffmann
31
 * @created Dec 3, 2010
32
 * @version 1.0
33
 */
34
public class DeleteHandler extends AbstractHandler {
35

    
36
	/* (non-Javadoc)
37
	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
38
	 */
39
	@Override
40
	public Object execute(ExecutionEvent event) throws ExecutionException {
41
		IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
42
		
43
		List<PolytomousKey> keys = selection.toList();
44
		
45
		if(keys.isEmpty()){
46
			return null;
47
		}
48
		
49
		boolean confirmation = MessagingUtils.confirmDialog("Confirm deletaion", "Do you want to delete the selected key" + (keys.size() == 1 ? "" : "s") + "?");
50
		
51
		if(confirmation){
52
		
53
			for(PolytomousKey key : keys){
54
				try {
55
					AbstractPostOperation operation = new DeleteOperation(
56
							event.getCommand().getName(),
57
							NavigationUtil.getUndoContext(), key, 
58
							(PolytomousKeyViewPart) NavigationUtil.getView(PolytomousKeyViewPart.ID, false),
59
							(PolytomousKeyViewPart) NavigationUtil.getView(PolytomousKeyViewPart.ID, false));
60
					NavigationUtil.executeOperation(operation);
61
				} catch (NotDefinedException e) {
62
					MessagingUtils.error(getClass(), e);
63
				}
64
			}
65
		}
66
		
67
		return null;
68
	}
69

    
70
}
(1-1/5)