Project

General

Profile

Download (3.54 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2011 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
package eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler;
10

    
11
import javax.inject.Named;
12

    
13
import org.eclipse.e4.core.di.annotations.Execute;
14
import org.eclipse.e4.ui.di.UISynchronize;
15
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
16
import org.eclipse.e4.ui.model.application.ui.menu.MMenuItem;
17
import org.eclipse.e4.ui.services.IServiceConstants;
18
import org.eclipse.jface.viewers.TreeNode;
19

    
20
import eu.etaxonomy.cdm.model.name.TaxonName;
21
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
22
import eu.etaxonomy.cdm.model.taxon.Taxon;
23
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
24
import eu.etaxonomy.taxeditor.editor.EditorUtil;
25
import eu.etaxonomy.taxeditor.editor.view.descriptive.e4.FactualDataPartE4;
26
import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateTaxonNameDescriptionOperation;
27
//import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateNamedescriptionOperation;
28
import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateSpecimenDescriptionOperation;
29
import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateTaxonDescriptionOperation;
30
import eu.etaxonomy.taxeditor.model.AbstractUtility;
31
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
32
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
33

    
34
/**
35
 *
36
 * @author pplitzner
37
 * @date 15.08.2017
38
 *
39
 */
40
public class CreateDescriptionHandlerE4 {
41

    
42
    @Execute
43
    public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart activePart, MMenuItem menuItem,
44
            UISynchronize sync) {
45

    
46
        FactualDataPartE4 factualDataPart = (FactualDataPartE4) activePart.getObject();
47

    
48
        AbstractPostOperation<?> operation;
49
        Object viewerInput = factualDataPart.getViewer().getInput();
50
        if(viewerInput instanceof TreeNode){
51
            viewerInput = ((TreeNode) viewerInput).getValue();
52
        }
53
        if(viewerInput instanceof SpecimenOrObservationBase<?>){
54
            operation = new CreateSpecimenDescriptionOperation(menuItem.getLocalizedLabel(), EditorUtil.getUndoContext(), (SpecimenOrObservationBase<?>) viewerInput, factualDataPart);
55
            AbstractUtility.executeOperation(operation, sync);
56
        }
57
        if(viewerInput instanceof TaxonBase){
58
            operation = createTaxonOperation(menuItem.getLocalizedLabel(), (Taxon) viewerInput, factualDataPart);
59
            if(operation!=null){
60
                AbstractUtility.executeOperation(operation, sync);
61
            }
62
        }
63
        if(viewerInput instanceof TaxonName){
64
            operation = createTaxonNameOperation(menuItem.getLocalizedLabel(), (TaxonName) viewerInput, factualDataPart);
65
            if(operation!=null){
66
                AbstractUtility.executeOperation(operation, sync);
67
            }
68
        }
69
	}
70

    
71
    protected CreateTaxonDescriptionOperation createTaxonOperation(String eventLabel, Taxon taxon, IPostOperationEnabled postOperationEnabled) {
72
        return new CreateTaxonDescriptionOperation(eventLabel, EditorUtil.getUndoContext(), taxon, null, postOperationEnabled);
73
    }
74

    
75
    protected CreateTaxonNameDescriptionOperation createTaxonNameOperation(String eventLabel, TaxonName taxonName, IPostOperationEnabled postOperationEnabled) {
76
        return new CreateTaxonNameDescriptionOperation(eventLabel, EditorUtil.getUndoContext(), taxonName, null, postOperationEnabled);
77
    }
78

    
79
}
(2-2/9)