import java.util.UUID;
import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.ui.model.application.MApplication;
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.basic.MPartStack;
import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
+import org.eclipse.e4.ui.workbench.modeling.EModelService;
import org.eclipse.e4.ui.workbench.modeling.EPartService;
import org.eclipse.e4.ui.workbench.modeling.EPartService.PartState;
import eu.etaxonomy.cdm.model.common.TermType;
import eu.etaxonomy.taxeditor.editor.definedterm.e4.DefinedTermEditorE4;
import eu.etaxonomy.taxeditor.editor.definedterm.input.TermEditorInput;
+import eu.etaxonomy.taxeditor.workbench.WorkbenchUtility;
/**
public class OpenDefinedTermEditorHandlerE4 {
@Execute
- public void execute(EPartService partService, MHandledMenuItem menuItem) {
+ public void execute(EPartService partService, MHandledMenuItem menuItem, MApplication application, EModelService modelService) {
String commandId = menuItem.getCommand().getElementId();
UUID termTypeUuid = (UUID) menuItem.getTransientData().get(commandId+".termTypeUuid");
TermEditorInput termEditorInput = new TermEditorInput(TermType.getByUuid(termTypeUuid));
MPart part = partService.createPart("eu.etaxonomy.taxeditor.editor.definedTerm");
+ MPartStack editorAreaPartStack = WorkbenchUtility.getEditorAreaPartStack(application, modelService);
+ if(editorAreaPartStack!=null){
+ editorAreaPartStack.getChildren().add(part);
+ }
part = partService.showPart(part, PartState.ACTIVATE);
DefinedTermEditorE4 termEditor = (DefinedTermEditorE4) part.getObject();
termEditor.init(termEditorInput);