2ecb95aaefe40a8308aa0f73804afeb90c7922bf
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / key / polytomous / e4 / handler / RefreshNodeNumberingHandlerE4.java
1 package eu.etaxonomy.taxeditor.editor.key.polytomous.e4.handler;
2
3 import javax.inject.Named;
4
5 import org.eclipse.core.commands.operations.IUndoContext;
6 import org.eclipse.e4.core.di.annotations.Execute;
7 import org.eclipse.e4.ui.di.UISynchronize;
8 import org.eclipse.e4.ui.model.application.ui.basic.MPart;
9 import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
10 import org.eclipse.e4.ui.services.IServiceConstants;
11 import org.eclipse.jface.viewers.IStructuredSelection;
12
13 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
14 import eu.etaxonomy.taxeditor.editor.EditorUtil;
15 import eu.etaxonomy.taxeditor.editor.key.polytomous.e4.PolytomousKeyListEditorE4;
16 import eu.etaxonomy.taxeditor.editor.key.polytomous.operation.RefreshNodeNumberingOperation;
17 import eu.etaxonomy.taxeditor.model.AbstractUtility;
18 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
19
20 public class RefreshNodeNumberingHandlerE4 {
21
22 @Execute
23 public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
24 @Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
25 MHandledMenuItem menuItem,
26 UISynchronize sync){
27
28 PolytomousKeyListEditorE4 editor = (PolytomousKeyListEditorE4) activePart.getObject();
29
30 if (selection.getFirstElement() instanceof PolytomousKeyNode) {
31 String label = menuItem.getLocalizedLabel();
32 IUndoContext undoContext = EditorUtil.getUndoContext();
33
34 PolytomousKeyNode keyNode = (PolytomousKeyNode) selection
35 .getFirstElement();
36
37 AbstractPostOperation operation = new RefreshNodeNumberingOperation(
38 label, undoContext, keyNode, editor);
39 AbstractUtility.executeOperation(operation, sync);
40 editor.forceDirty();
41 }
42 }
43
44 }