Project

General

Profile

Download (2.15 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
 *
3
 */
4
package eu.etaxonomy.taxeditor.editor.key.polytomous.e4.handler;
5

    
6
import javax.inject.Named;
7

    
8
import org.eclipse.core.commands.operations.IUndoContext;
9
import org.eclipse.e4.core.di.annotations.Execute;
10
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
11
import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
12
import org.eclipse.e4.ui.services.IServiceConstants;
13
import org.eclipse.jface.viewers.IStructuredSelection;
14

    
15
import eu.etaxonomy.cdm.model.description.PolytomousKey;
16
import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
17
import eu.etaxonomy.taxeditor.editor.EditorUtil;
18
import eu.etaxonomy.taxeditor.editor.key.polytomous.e4.PolytomousKeyListEditorE4;
19
import eu.etaxonomy.taxeditor.editor.key.polytomous.operation.CreateNodeOperation;
20
import eu.etaxonomy.taxeditor.model.AbstractUtility;
21
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
22

    
23
/**
24
 *
25
 * @author pplitzner
26
 * @since Sep 28, 2017
27
 *
28
 */
29
public class CreateChildNodeHandlerE4 {
30

    
31

    
32
    @Execute
33
    public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
34
            @Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
35
            MHandledMenuItem menuItem) {
36

    
37
        PolytomousKeyListEditorE4 editor = (PolytomousKeyListEditorE4) activePart.getObject();
38

    
39
        if(editor.getTableItemCount() == 0) {
40
            PolytomousKey pk = editor.getViewerInputKey();
41
            String label = menuItem.getLocalizedLabel();
42
            IUndoContext undoContext = EditorUtil.getUndoContext();
43

    
44

    
45
            AbstractPostOperation operation = new CreateNodeOperation(
46
                    label, undoContext, pk.getRoot(), editor);
47
            AbstractUtility.executeOperation(operation);
48
        } else {
49

    
50
            String label = menuItem.getLocalizedLabel();
51
            IUndoContext undoContext = EditorUtil.getUndoContext();
52

    
53
            PolytomousKeyNode keyNode = (PolytomousKeyNode) selection
54
                    .getFirstElement();
55

    
56
            AbstractPostOperation operation = new CreateNodeOperation(
57
                    label, undoContext, keyNode, editor);
58
            AbstractUtility.executeOperation(operation);
59
        }
60
    }
61

    
62
}
(2-2/6)