Project

General

Profile

Download (2.86 KB) Statistics
| Branch: | Tag: | Revision:
1
package eu.etaxonomy.taxeditor.navigation.navigator.handler;
2

    
3
import org.apache.log4j.Logger;
4
import org.eclipse.core.commands.AbstractHandler;
5
import org.eclipse.core.commands.ExecutionEvent;
6
import org.eclipse.core.commands.ExecutionException;
7
import org.eclipse.jface.viewers.ISelection;
8
import org.eclipse.jface.viewers.IStructuredSelection;
9
import org.eclipse.jface.wizard.WizardDialog;
10
import org.eclipse.swt.widgets.Display;
11
import org.eclipse.ui.handlers.HandlerUtil;
12

    
13
import eu.etaxonomy.cdm.model.reference.Reference;
14
import eu.etaxonomy.cdm.model.taxon.Classification;
15
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
16
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
17
import eu.etaxonomy.taxeditor.model.AbstractUtility;
18
import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
19
import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
20
import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;
21
import eu.etaxonomy.taxeditor.navigation.operation.CloneClassificationOperation;
22
import eu.etaxonomy.taxeditor.store.StoreUtil;
23
import eu.etaxonomy.taxeditor.ui.section.classification.CloneClassificationWizard;
24

    
25
public class CloneClassificationHandler extends AbstractHandler {
26

    
27
    @SuppressWarnings("unused")
28
    private static final Logger logger = Logger.getLogger(CloneClassificationHandler.class);
29

    
30
    @Override
31
    public Object execute(ExecutionEvent event) throws ExecutionException {
32
        ISelection currentSelection = HandlerUtil.getCurrentSelection(event);
33
        if (currentSelection instanceof IStructuredSelection) {
34
            Object selectedElement = ((IStructuredSelection) currentSelection).getFirstElement();
35
            if (selectedElement instanceof TaxonNode && !((TaxonNode)selectedElement).hasTaxon()) {
36
                Classification classification = ((TaxonNode)selectedElement).getClassification();
37
                TaxonNavigator taxonNavigator = (TaxonNavigator)AbstractUtility.showView(TaxonNavigator.ID);
38
                CloneClassificationWizard wizard = new CloneClassificationWizard(classification);
39
                WizardDialog dialog = new WizardDialog(Display.getCurrent().getActiveShell(), wizard);
40
                dialog.open();
41

    
42
                String classificationName = wizard.getClassificationName();
43
                TaxonRelationshipType relationType = wizard.getRelationType();
44
                Reference reference = wizard.getReference();
45

    
46
                CloneClassificationOperation operation = new CloneClassificationOperation(Messages.CloneClassificationHandler_CLONE_CLASSIFICATION,
47
                        StoreUtil.getUndoContext(), classification, classificationName, reference, relationType,
48
                        NavigationUtil.getNavigator(false), NavigationUtil.getNavigator(false));
49

    
50
                AbstractUtility.executeOperation(operation);
51
                taxonNavigator.refresh();
52
            }
53
        }
54
        return null;
55
    }
56

    
57
}
(2-2/17)