Project

General

Profile

Download (2.62 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.editor.name.handler;
12

    
13
import org.apache.log4j.Logger;
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.IHandler;
18
import org.eclipse.core.commands.common.NotDefinedException;
19
import org.eclipse.jface.viewers.ISelection;
20
import org.eclipse.jface.viewers.StructuredSelection;
21
import org.eclipse.ui.handlers.HandlerUtil;
22

    
23
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
24
import eu.etaxonomy.cdm.model.name.NonViralName;
25
import eu.etaxonomy.cdm.model.taxon.Synonym;
26
import eu.etaxonomy.taxeditor.editor.EditorUtil;
27
import eu.etaxonomy.taxeditor.editor.Page;
28
import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
29
import eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInExistingHomotypicalGroupOperation;
30
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
31
import eu.etaxonomy.taxeditor.parser.ParseHandler;
32

    
33
/**
34
 * <p>CreateSynonymInHomotypicalGroupHandler class.</p>
35
 *
36
 * @author n.hoffmann
37
 * @created 21.04.2009
38
 * @version 1.0
39
 */
40
public class CreateSynonymInHomotypicalGroupHandler extends AbstractHandler
41
		implements IHandler {
42
	private static final Logger logger = Logger
43
			.getLogger(CreateSynonymInHomotypicalGroupHandler.class);
44

    
45
	/* (non-Javadoc)
46
	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
47
	 */
48
	/** {@inheritDoc} */
49
	@Override
50
    public Object execute(ExecutionEvent event) throws ExecutionException {
51
		TaxonNameEditor editor = (TaxonNameEditor) EditorUtil.getActiveEditorPage(
52
				Page.NAME);
53
		ISelection menuSelection = HandlerUtil.getCurrentSelection(event);
54

    
55
		Object selecteObject = ((StructuredSelection) menuSelection).getFirstElement();
56

    
57
		if(! (selecteObject instanceof Synonym)){
58
			return null;
59
		}
60

    
61

    
62
		Synonym synonym = (Synonym) selecteObject;
63

    
64
		HomotypicalGroup group = synonym.getHomotypicGroup();
65

    
66
		NonViralName newSynonymName = ParseHandler.createEmptyName();
67

    
68
		AbstractPostOperation operation;
69

    
70
		try {
71
			operation = new CreateSynonymInExistingHomotypicalGroupOperation(event.getCommand().getName(), editor.getUndoContext(),
72
								editor.getTaxon(), group, newSynonymName, editor);
73
			EditorUtil.executeOperation(operation);
74
		} catch (NotDefinedException e) {
75
			logger.warn("Command name not set");
76
		}
77

    
78
		return null;
79
	}
80
}
(8-8/15)