Project

General

Profile

Download (2.43 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.di.UISynchronize;
10
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
11
import org.eclipse.e4.ui.model.application.ui.menu.MMenuItem;
12
import org.eclipse.e4.ui.services.IServiceConstants;
13

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

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

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

    
39
        MediaViewPartE4 mediaView = (MediaViewPartE4) activePart.getObject();
40

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

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

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

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

    
57
                AbstractUtility.executeOperation(operation, sync);
58
            }
59
        }
60
    }
61

    
62
}
(2-2/6)