Project

General

Profile

Download (1.87 KB) Statistics
| Branch: | Tag: | Revision:
1
package eu.etaxonomy.taxeditor.editor.view.media.handler;
2

    
3
import javax.inject.Named;
4

    
5
import org.eclipse.e4.core.di.annotations.CanExecute;
6
import org.eclipse.e4.core.di.annotations.Execute;
7
import org.eclipse.e4.core.di.annotations.Optional;
8
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
9
import org.eclipse.e4.ui.model.application.ui.menu.MMenuItem;
10
import org.eclipse.e4.ui.services.IServiceConstants;
11

    
12
import eu.etaxonomy.cdm.model.description.DescriptionBase;
13
import eu.etaxonomy.cdm.model.media.Media;
14
import eu.etaxonomy.taxeditor.editor.EditorUtil;
15
import eu.etaxonomy.taxeditor.editor.view.media.e4.MediaViewPartE4;
16
import eu.etaxonomy.taxeditor.editor.view.media.operation.AddExistingMediaToImageGalleryOperation;
17
import eu.etaxonomy.taxeditor.model.AbstractUtility;
18
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
19
import eu.etaxonomy.taxeditor.ui.dialog.selection.MediaSelectionDialog;
20

    
21
public class AddExistingMediaHandler  {
22

    
23
    @Execute
24
    public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart activePart,
25
            @Optional@Named(IServiceConstants.ACTIVE_SELECTION) DescriptionBase description, MMenuItem menuItem) {
26

    
27
        MediaViewPartE4 mediaView = (MediaViewPartE4) activePart.getObject();
28

    
29
        if(description != null){
30
            AbstractPostOperation operation = null;
31
            //select media
32
            Media media = MediaSelectionDialog.select(AbstractUtility.getShell(), null, null);
33
            if(media!=null){
34
                // TODO use undo context specific to editor
35
                operation = new AddExistingMediaToImageGalleryOperation(media, menuItem.getLocalizedLabel(),
36
                        EditorUtil.getUndoContext(), description, mediaView);
37
                AbstractUtility.executeOperation(operation);
38
            }
39
        }
40
    }
41

    
42
    @CanExecute
43
    private boolean canExecute(){
44
        return true;
45
    }
46

    
47
}
(1-1/6)