c7971db1852e93033447e0323ceaa00a659f4f41
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / view / media / handler / CreateMediaHandler.java
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.core.di.annotations.Optional;
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.model.description.DescriptionBase;
15 import eu.etaxonomy.taxeditor.editor.EditorUtil;
16 import eu.etaxonomy.taxeditor.editor.view.media.e4.MediaViewPartE4;
17 import eu.etaxonomy.taxeditor.editor.view.media.operation.AddMediaToImageGalleryOperation;
18 import eu.etaxonomy.taxeditor.model.AbstractUtility;
19 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
20
21 /**
22 *
23 * @author pplitzner
24 * @since Aug 14, 2017
25 *
26 */
27 public class CreateMediaHandler {
28
29 @Execute
30 public Object execute(@Named(IServiceConstants.ACTIVE_PART) MPart activePart,
31 @Optional@Named(IServiceConstants.ACTIVE_SELECTION) DescriptionBase description, MMenuItem menuItem) {
32
33 MediaViewPartE4 mediaView = (MediaViewPartE4) activePart.getObject();
34
35 if(description != null){
36 AbstractPostOperation operation = null;
37 // TODO use undo context specific to editor
38 operation = new AddMediaToImageGalleryOperation(menuItem.getLocalizedLabel(),
39 EditorUtil.getUndoContext(), description, mediaView);
40 AbstractUtility.executeOperation(operation);
41 }
42
43 return null;
44 }
45
46 }