Project

General

Profile

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

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

    
12
import java.util.List;
13

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

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

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

    
35
	/* (non-Javadoc)
36
	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
37
	 */
38
	@Override
39
	public Object execute(ExecutionEvent event) throws ExecutionException {
40
		IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
41

    
42
		List<PolytomousKey> keys = selection.toList();
43

    
44
		if(keys.isEmpty()){
45
			return null;
46
		}
47

    
48
		boolean confirmation = MessagingUtils.confirmDialog("Confirm deletion", "Do you want to delete the selected key" + (keys.size() == 1 ? "" : "s") + "?");
49

    
50
		if(confirmation){
51

    
52
			for(PolytomousKey key : keys){
53
				try {
54
				    PolytomousKeyViewPart pkvp = (PolytomousKeyViewPart) NavigationUtil.getView(PolytomousKeyViewPart.ID, false);
55
					AbstractPostOperation operation = new DeleteOperation(
56
							event.getCommand().getName(),
57
							NavigationUtil.getUndoContext(), key,
58
							pkvp,
59
							pkvp,
60
							pkvp);
61
					NavigationUtil.executeOperation(operation);
62
				} catch (NotDefinedException e) {
63
					MessagingUtils.error(getClass(), e);
64
				}
65
			}
66
		}
67

    
68
		return null;
69
	}
70

    
71
}
(1-1/8)