Project

General

Profile

Download (2.34 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
 *
3
 */
4
package eu.etaxonomy.taxeditor.editor.view.media.handler;
5

    
6
import javax.inject.Named;
7

    
8
import org.eclipse.e4.core.di.annotations.Execute;
9
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
10
import org.eclipse.e4.ui.model.application.ui.menu.MMenuItem;
11
import org.eclipse.e4.ui.services.IServiceConstants;
12

    
13
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
14
import eu.etaxonomy.cdm.model.common.CdmBase;
15
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
16
import eu.etaxonomy.cdm.model.taxon.Taxon;
17
import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorUtil;
18
import eu.etaxonomy.taxeditor.editor.EditorUtil;
19
import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.AddDerivedUnitFacadeMediaOperation;
20
import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateTaxonDescriptionOperation;
21
import eu.etaxonomy.taxeditor.editor.view.media.e4.MediaViewPartE4;
22
import eu.etaxonomy.taxeditor.model.AbstractUtility;
23
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
24

    
25
/**
26
 *
27
 * @author pplitzner
28
 * @since Aug 14, 2017
29
 *
30
 */
31
public class AddImageGalleryHandler {
32

    
33
    /** {@inheritDoc} */
34
    @Execute
35
    public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart activePart, MMenuItem menuItem) {
36

    
37
        MediaViewPartE4 mediaView = (MediaViewPartE4) activePart.getObject();
38

    
39
        Object viewerInput = mediaView.getViewer().getInput();
40
        if(viewerInput instanceof CdmBase){
41
            if(((CdmBase) viewerInput).isInstanceOf(Taxon.class)){
42
                Taxon taxon = HibernateProxyHelper.deproxy(viewerInput, Taxon.class);
43

    
44
                AbstractPostOperation<?> operation = new CreateTaxonDescriptionOperation(menuItem.getLocalizedLabel(),
45
                        EditorUtil.getUndoContext(), taxon, mediaView, true);
46

    
47
                AbstractUtility.executeOperation(operation);
48
            }
49
            else if(((CdmBase) viewerInput).isInstanceOf(SpecimenOrObservationBase.class)){
50
                SpecimenOrObservationBase<?> specimen = HibernateProxyHelper.deproxy(viewerInput, SpecimenOrObservationBase.class);
51

    
52
                AbstractPostOperation<?> operation = new AddDerivedUnitFacadeMediaOperation(menuItem.getLocalizedLabel(),
53
                        BulkEditorUtil.getUndoContext(), specimen, mediaView);
54

    
55
                AbstractUtility.executeOperation(operation);
56
            }
57
        }
58
    }
59

    
60
}
(2-2/6)