Project

General

Profile

Download (2.69 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.occurrence.SpecimenOrObservationBase;
21
import eu.etaxonomy.cdm.model.taxon.Taxon;
22
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
23
import eu.etaxonomy.taxeditor.editor.EditorUtil;
24
import eu.etaxonomy.taxeditor.editor.view.descriptive.e4.FactualDataPartE4;
25
import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateSpecimenDescriptionOperation;
26
import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateTaxonDescriptionOperation;
27
import eu.etaxonomy.taxeditor.model.AbstractUtility;
28
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
29
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
30

    
31
/**
32
 *
33
 * @author pplitzner
34
 * @date 15.08.2017
35
 *
36
 */
37
public class CreateDescriptionHandlerE4 {
38

    
39
    @Execute
40
    public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart activePart, MMenuItem menuItem,
41
            UISynchronize sync) {
42

    
43
        FactualDataPartE4 factualDataPart = (FactualDataPartE4) activePart.getObject();
44

    
45
        AbstractPostOperation<?> operation;
46
        Object viewerInput = factualDataPart.getViewer().getInput();
47
        if(viewerInput instanceof TreeNode){
48
            viewerInput = ((TreeNode) viewerInput).getValue();
49
        }
50
        if(viewerInput instanceof SpecimenOrObservationBase<?>){
51
            operation = new CreateSpecimenDescriptionOperation(menuItem.getLocalizedLabel(), EditorUtil.getUndoContext(), (SpecimenOrObservationBase<?>) viewerInput, factualDataPart);
52
            AbstractUtility.executeOperation(operation, sync);
53
        }
54
        if(viewerInput instanceof TaxonBase){
55
            operation = createTaxonOperation(menuItem.getLocalizedLabel(), (Taxon) viewerInput, factualDataPart);
56
            AbstractUtility.executeOperation(operation, sync);
57

    
58
        }
59
	}
60

    
61
	   /** {@inheritDoc} */
62
    protected CreateTaxonDescriptionOperation createTaxonOperation(String eventLabel, Taxon taxon, IPostOperationEnabled postOperationEnabled) {
63
        return new CreateTaxonDescriptionOperation(eventLabel, EditorUtil.getUndoContext(), taxon, postOperationEnabled);
64
    }
65

    
66
}
(2-2/8)