From 91333bc6afe77b1db8fc745cc72696b8c41fafd4 Mon Sep 17 00:00:00 2001
From: Patrick Plitzner
Date: Fri, 29 Sep 2017 08:51:13 +0200
Subject: [PATCH] ref #6908 Migrate remaining polytomous context menus and
handlers
---
eu.etaxonomy.taxeditor.editor/fragment.e4xmi | 13 ++--
.../key/e4/AbstractGraphKeyEditorE4.java | 3 +
.../e4/KeyEditorDataChangeBehaviourE4.java | 60 +++++++++++++++++++
.../e4/PolytomousKeyGraphEditorE4.java | 10 ++--
.../e4/PolytomousKeyListEditorE4.java | 38 ++++++++----
.../AbstractPolytomousKeyNodeHandlerE4.java | 28 ---------
.../e4/handler/CreateChildNodeHandlerE4.java | 10 ++++
.../e4/handler/DeleteNodeHandlerE4.java | 15 ++---
.../e4/handler/InsertNewNodeHandlerE4.java | 10 ++--
.../OpenPolytomousGraphEditorHandler.java | 26 ++++++++
.../fragment.e4xmi | 10 +---
...motingEditPolytomousKeyNodesHandlerE4.java | 12 ++++
12 files changed, 168 insertions(+), 67 deletions(-)
create mode 100644 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/e4/KeyEditorDataChangeBehaviourE4.java
delete mode 100644 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/handler/AbstractPolytomousKeyNodeHandlerE4.java
create mode 100644 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/handler/OpenPolytomousGraphEditorHandler.java
diff --git a/eu.etaxonomy.taxeditor.editor/fragment.e4xmi b/eu.etaxonomy.taxeditor.editor/fragment.e4xmi
index e2616dbc9..2cdb42973 100644
--- a/eu.etaxonomy.taxeditor.editor/fragment.e4xmi
+++ b/eu.etaxonomy.taxeditor.editor/fragment.e4xmi
@@ -199,10 +199,10 @@
-
-
-
-
+
+
+
+
@@ -211,6 +211,7 @@
+
@@ -218,6 +219,9 @@
+
+
+
@@ -282,6 +286,7 @@
+
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/e4/AbstractGraphKeyEditorE4.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/e4/AbstractGraphKeyEditorE4.java
index 0746e37c1..241380f56 100644
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/e4/AbstractGraphKeyEditorE4.java
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/e4/AbstractGraphKeyEditorE4.java
@@ -77,6 +77,9 @@ implements IConversationEnabled,
public void init(PolytomousKeyEditorInput input) {
this.input = input;
+
+
+ viewer.setInput(getKey());
}
public boolean isDirty() {
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/e4/KeyEditorDataChangeBehaviourE4.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/e4/KeyEditorDataChangeBehaviourE4.java
new file mode 100644
index 000000000..d8791cdfc
--- /dev/null
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/e4/KeyEditorDataChangeBehaviourE4.java
@@ -0,0 +1,60 @@
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.editor.key.e4;
+
+import java.util.Vector;
+
+import eu.etaxonomy.cdm.model.description.PolytomousKey;
+import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent;
+import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent.EventType;
+import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorInput;
+import eu.etaxonomy.taxeditor.editor.key.polytomous.e4.PolytomousKeyListEditorE4;
+import eu.etaxonomy.taxeditor.model.AbstractDataChangeBehaviour;
+
+/**
+ * @author n.hoffmann
+ * @created May 5, 2011
+ * @version 1.0
+ */
+public class KeyEditorDataChangeBehaviourE4 extends AbstractDataChangeBehaviour {
+
+ private final PolytomousKeyListEditorE4 source;
+ private PolytomousKeyEditorInput input;
+
+ public KeyEditorDataChangeBehaviourE4(PolytomousKeyListEditorE4 keyEditor) {
+ source = keyEditor;
+ }
+
+ @Override
+ public void reactOnDataChange(CdmDataChangeMap changeEvents) {
+ input = source.getEditorInput();
+
+ if(changeEvents.sizeByEventType(EventType.UPDATE) > 0){
+ reactOnUpdate(changeEvents.getEvents(EventType.UPDATE));
+ }
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void reactOnUpdate(Vector events){
+
+ for(CdmDataChangeEvent event : events){
+
+ // update editor title
+ if(event.getEntity() instanceof PolytomousKey){
+ if(input.getKey().equals(event.getEntity())){
+ // set the name of the editor window
+ source.setPartName();
+ }
+ }
+ }
+ }
+}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/PolytomousKeyGraphEditorE4.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/PolytomousKeyGraphEditorE4.java
index d9680572c..1e41bc3dc 100644
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/PolytomousKeyGraphEditorE4.java
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/PolytomousKeyGraphEditorE4.java
@@ -26,6 +26,7 @@ import eu.etaxonomy.taxeditor.editor.key.e4.AbstractGraphKeyEditorE4;
import eu.etaxonomy.taxeditor.editor.key.polytomous.IPolytomousKeyEditorPage;
import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyGraphContentProvider;
import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyLabelProvider;
+import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
/**
@@ -45,6 +46,11 @@ public class PolytomousKeyGraphEditorE4 extends
@PostConstruct
public void createPartControl(Composite parent, EMenuService menuService,
@Named(IServiceConstants.ACTIVE_SHELL)Shell shell) {
+ if(!CdmStore.isActive()){
+ return;
+ }
+
+ formFactory = new CdmFormFactory(shell.getDisplay());
container = formFactory.createComposite(parent);
container.setLayout(new FillLayout());
@@ -67,8 +73,6 @@ public class PolytomousKeyGraphEditorE4 extends
//FIXME E4 migrate
// createToolbar();
- viewer.setInput(getKey());
-
container.addControlListener(new ControlListener() {
@Override
@@ -81,8 +85,6 @@ public class PolytomousKeyGraphEditorE4 extends
}
});
-
- formFactory = new CdmFormFactory(shell.getDisplay());
}
@Override
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/PolytomousKeyListEditorE4.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/PolytomousKeyListEditorE4.java
index a328a622e..225589183 100644
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/PolytomousKeyListEditorE4.java
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/PolytomousKeyListEditorE4.java
@@ -45,15 +45,17 @@ import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.key.KeyEditorDataChangeBehaviour;
+import eu.etaxonomy.taxeditor.editor.key.e4.KeyEditorDataChangeBehaviourE4;
import eu.etaxonomy.taxeditor.editor.key.polytomous.IPolytomousKeyEditorPage;
import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorInput;
import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyListContentProvider;
import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyListLabelProvider;
import eu.etaxonomy.taxeditor.editor.l10n.Messages;
+import eu.etaxonomy.taxeditor.model.DataChangeBridge;
import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
/**
*
@@ -63,7 +65,7 @@ import eu.etaxonomy.taxeditor.model.MessagingUtils;
*/
public class PolytomousKeyListEditorE4 implements
IConversationEnabled, IDirtyMarkable, IPartContentHasDetails,
- IPolytomousKeyEditorPage {
+ IPolytomousKeyEditorPage, IE4SavablePart{
private class LinkListener extends MouseAdapter {
@@ -140,9 +142,7 @@ public class PolytomousKeyListEditorE4 implements
private TableViewer viewer;
- private ConversationHolder conversation;
-
- private KeyEditorDataChangeBehaviour dataChangeBehavior;
+ private KeyEditorDataChangeBehaviourE4 dataChangeBehavior;
private PolytomousKeyEditorInput input;
@@ -162,8 +162,11 @@ public class PolytomousKeyListEditorE4 implements
}
@Override
- public void update(CdmDataChangeMap arg0) {
-
+ public void update(CdmDataChangeMap map) {
+ if(dataChangeBehavior == null){
+ dataChangeBehavior = new KeyEditorDataChangeBehaviourE4(this);
+ }
+ DataChangeBridge.handleDataChange(map, dataChangeBehavior);
}
@Override
@@ -171,8 +174,9 @@ public class PolytomousKeyListEditorE4 implements
return input.getConversationHolder();
}
- @Persist
- public void doSave(IProgressMonitor monitor) {
+ @Override
+ @Persist
+ public void save(IProgressMonitor monitor) {
try {
monitor.beginTask(Messages.KeyEditor_SAVING, 1);
getConversationHolder().bind();
@@ -196,6 +200,10 @@ public class PolytomousKeyListEditorE4 implements
viewer.setInput(input);
}
+ public PolytomousKeyEditorInput getEditorInput() {
+ return input;
+ }
+
public boolean isDirty() {
return dirty.isDirty();
}
@@ -291,10 +299,9 @@ public class PolytomousKeyListEditorE4 implements
@Override
public boolean postOperation(CdmBase objectAffectedByOperation) {
viewer.refresh();
- getConversationHolder().bind();
- getConversationHolder().commit(true);
- //FIXME E4 migrate/delete
-// editor.changed(objectAffectedByOperation);
+// getConversationHolder().bind();
+// getConversationHolder().commit(true);
+ changed(objectAffectedByOperation);
if (objectAffectedByOperation != null) {
viewer.setSelection(new StructuredSelection(
@@ -308,4 +315,9 @@ public class PolytomousKeyListEditorE4 implements
return true;
}
+ public void setPartName() {
+ PolytomousKey key = input.getKey();
+ thisPart.setLabel(key.getTitleCache());
+ }
+
}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/handler/AbstractPolytomousKeyNodeHandlerE4.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/handler/AbstractPolytomousKeyNodeHandlerE4.java
deleted file mode 100644
index c17ab3194..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/handler/AbstractPolytomousKeyNodeHandlerE4.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/**
-* Copyright (C) 2016 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-package eu.etaxonomy.taxeditor.editor.key.polytomous.e4.handler;
-
-import eu.etaxonomy.taxeditor.editor.key.polytomous.IPolytomousKeyEditorPage;
-import eu.etaxonomy.taxeditor.operation.e4.RemotingCdmHandlerE4;
-
-/**
- * @author k.luther
- * @date 24.11.2016
- *
- */
-public abstract class AbstractPolytomousKeyNodeHandlerE4 extends RemotingCdmHandlerE4 {
-
-
- IPolytomousKeyEditorPage editorPage;
-
- public AbstractPolytomousKeyNodeHandlerE4(String label) {
- super(label);
- }
-
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/handler/CreateChildNodeHandlerE4.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/handler/CreateChildNodeHandlerE4.java
index 44c8a9f07..8376e56d2 100644
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/handler/CreateChildNodeHandlerE4.java
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/handler/CreateChildNodeHandlerE4.java
@@ -6,6 +6,7 @@ package eu.etaxonomy.taxeditor.editor.key.polytomous.e4.handler;
import javax.inject.Named;
import org.eclipse.core.commands.operations.IUndoContext;
+import org.eclipse.e4.core.di.annotations.CanExecute;
import org.eclipse.e4.core.di.annotations.Execute;
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
@@ -59,4 +60,13 @@ public class CreateChildNodeHandlerE4 {
}
}
+ @CanExecute
+ public boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
+ MHandledMenuItem menuItem){
+ boolean canExecute = false;
+ canExecute = selection!=null && !selection.isEmpty();
+ menuItem.setVisible(canExecute);
+ return canExecute;
+ }
+
}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/handler/DeleteNodeHandlerE4.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/handler/DeleteNodeHandlerE4.java
index 6597e9d3c..25dde004e 100644
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/handler/DeleteNodeHandlerE4.java
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/handler/DeleteNodeHandlerE4.java
@@ -30,13 +30,14 @@ import eu.etaxonomy.taxeditor.editor.key.polytomous.e4.PolytomousKeyListEditorE4
import eu.etaxonomy.taxeditor.editor.key.polytomous.operation.DeleteNodeOperation;
import eu.etaxonomy.taxeditor.editor.l10n.Messages;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.operation.e4.RemotingCdmHandlerE4;
/**
* @author n.hoffmann
* @created Dec 6, 2010
* @version 1.0
*/
-public class DeleteNodeHandlerE4 extends AbstractPolytomousKeyNodeHandlerE4 {
+public class DeleteNodeHandlerE4 extends RemotingCdmHandlerE4 {
private static final String DO_YOU_REALLY_WANT_TO_DELETE_THE_NODE_THIS_OPERATION_IS_NOT_REVERSABLE = Messages.DeleteNodeHandler_REALLY_DELETE;
@@ -117,16 +118,16 @@ public class DeleteNodeHandlerE4 extends AbstractPolytomousKeyNodeHandlerE4 {
if (!proceed) {
return null;
}else{
- editor.doSave(AbstractUtility.getMonitor());
+ editor.save(AbstractUtility.getMonitor());
}
}
label = menuItem.getLocalizedLabel();
DeleteNodeOperation operation ;
if (deleteChildren){
- operation = new DeleteNodeOperation(label, undoContext, nodeToBeDeleted, editorPage, true);
+ operation = new DeleteNodeOperation(label, undoContext, nodeToBeDeleted, editor, true);
}else{
- operation = new DeleteNodeOperation(label, undoContext, nodeToBeDeleted, editorPage, false);
+ operation = new DeleteNodeOperation(label, undoContext, nodeToBeDeleted, editor, false);
}
return operation;
@@ -145,12 +146,12 @@ public class DeleteNodeHandlerE4 extends AbstractPolytomousKeyNodeHandlerE4 {
}
@CanExecute
- public boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)Object selection,
+ public boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
MHandledMenuItem menuItem){
boolean canExecute = false;
- canExecute = selection instanceof PolytomousKeyNode;
+ canExecute = selection!=null && !selection.isEmpty();
menuItem.setVisible(canExecute);
return canExecute;
}
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/handler/InsertNewNodeHandlerE4.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/handler/InsertNewNodeHandlerE4.java
index 47dbbf3f2..0848e6661 100644
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/handler/InsertNewNodeHandlerE4.java
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/handler/InsertNewNodeHandlerE4.java
@@ -25,13 +25,14 @@ import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorLabels;
import eu.etaxonomy.taxeditor.editor.key.polytomous.e4.PolytomousKeyListEditorE4;
import eu.etaxonomy.taxeditor.editor.key.polytomous.operation.InsertPolytomousKeyNodeOperation;
+import eu.etaxonomy.taxeditor.operation.e4.RemotingCdmHandlerE4;
/**
* @author k.luther
* @date 17.11.2016
*
*/
-public class InsertNewNodeHandlerE4 extends AbstractPolytomousKeyNodeHandlerE4{
+public class InsertNewNodeHandlerE4 extends RemotingCdmHandlerE4{
private PolytomousKeyNode parentNode ;
@@ -69,7 +70,8 @@ public class InsertNewNodeHandlerE4 extends AbstractPolytomousKeyNodeHandlerE4{
@Named(IServiceConstants.ACTIVE_SHELL)Shell shell,
@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
MHandledMenuItem menuItem) {
- return new InsertPolytomousKeyNodeOperation(getTrigger(), false, parentNode, editorPage);
+ PolytomousKeyListEditorE4 editor = (PolytomousKeyListEditorE4) activePart.getObject();
+ return new InsertPolytomousKeyNodeOperation(getTrigger(), false, parentNode, editor);
}
@Override
@@ -77,10 +79,10 @@ public class InsertNewNodeHandlerE4 extends AbstractPolytomousKeyNodeHandlerE4{
}
@CanExecute
- public boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)Object selection,
+ public boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
MHandledMenuItem menuItem){
boolean canExecute = false;
- canExecute = selection instanceof PolytomousKeyNode;
+ canExecute = selection!=null && !selection.isEmpty();
menuItem.setVisible(canExecute);
return canExecute;
}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/handler/OpenPolytomousGraphEditorHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/handler/OpenPolytomousGraphEditorHandler.java
new file mode 100644
index 000000000..c202fc4d3
--- /dev/null
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/handler/OpenPolytomousGraphEditorHandler.java
@@ -0,0 +1,26 @@
+
+package eu.etaxonomy.taxeditor.editor.key.polytomous.e4.handler;
+
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
+import org.eclipse.e4.ui.workbench.modeling.EPartService.PartState;
+
+import eu.etaxonomy.taxeditor.editor.key.polytomous.e4.PolytomousKeyGraphEditorE4;
+import eu.etaxonomy.taxeditor.editor.key.polytomous.e4.PolytomousKeyListEditorE4;
+
+public class OpenPolytomousGraphEditorHandler {
+
+ @Execute
+ public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart, EPartService partService) {
+ MPart part = partService.createPart("eu.etaxonomy.taxeditor.editor.key.polytomous.e4.PolytomousKeyGraphEditorE4");
+ part = partService.showPart(part, PartState.ACTIVATE);
+ PolytomousKeyGraphEditorE4 graphEditor = (PolytomousKeyGraphEditorE4) part.getObject();
+ PolytomousKeyListEditorE4 listEditor = (PolytomousKeyListEditorE4) activePart.getObject();
+ graphEditor.init(listEditor.getEditorInput());
+ }
+
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.navigation/fragment.e4xmi b/eu.etaxonomy.taxeditor.navigation/fragment.e4xmi
index a74b6da9b..5f82df04e 100644
--- a/eu.etaxonomy.taxeditor.navigation/fragment.e4xmi
+++ b/eu.etaxonomy.taxeditor.navigation/fragment.e4xmi
@@ -58,22 +58,18 @@
-
+
-
-
-
+
-
-
-
+
diff --git a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/e4/handler/RemotingEditPolytomousKeyNodesHandlerE4.java b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/e4/handler/RemotingEditPolytomousKeyNodesHandlerE4.java
index fc06e7f45..1ba507bb5 100644
--- a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/e4/handler/RemotingEditPolytomousKeyNodesHandlerE4.java
+++ b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/e4/handler/RemotingEditPolytomousKeyNodesHandlerE4.java
@@ -14,11 +14,14 @@ import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.e4.core.di.annotations.CanExecute;
import org.eclipse.e4.core.di.annotations.Execute;
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
import org.eclipse.e4.ui.services.IServiceConstants;
import org.eclipse.e4.ui.workbench.modeling.EPartService;
import org.eclipse.e4.ui.workbench.modeling.EPartService.PartState;
+import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.swt.widgets.Display;
@@ -90,4 +93,13 @@ public class RemotingEditPolytomousKeyNodesHandlerE4 {
}
}
+ @CanExecute
+ public boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)Object selection,
+ MHandledMenuItem menuItem){
+ boolean canExecute = false;
+ canExecute = ((IStructuredSelection)selection).getFirstElement() instanceof PolytomousKey;
+ menuItem.setVisible(canExecute);
+ return canExecute;
+ }
+
}
--
2.34.1