From 76c823c7748c2372d34b738f5f1c8f1bc6a5b7b4 Mon Sep 17 00:00:00 2001
From: Patrick Plitzner
Date: Mon, 16 Nov 2015 14:41:58 +0100
Subject: [PATCH] Add toggle for "link with taxon selection" to context menu of
DerivativeEditor
---
.../contextMenu/DerivateViewContextMenu.java | 3 +-
.../ListenToSelectionChangeContextMenu.java | 62 +++++++++++++++++++
2 files changed, 64 insertions(+), 1 deletion(-)
create mode 100644 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/ListenToSelectionChangeContextMenu.java
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/DerivateViewContextMenu.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/DerivateViewContextMenu.java
index 659ea5283..522120d1b 100644
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/DerivateViewContextMenu.java
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/DerivateViewContextMenu.java
@@ -10,7 +10,8 @@ public class DerivateViewContextMenu extends CompoundContributionItem {
IContributionItem[] contributionItems = new IContributionItem[] {
new CreateFieldUnitContextMenu(),
new CreateDerivateContextMenu(),
- new SingleReadSequenceContextMenu()
+ new ListenToSelectionChangeContextMenu(),
+ new SingleReadSequenceContextMenu(),
};
return contributionItems;
}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/ListenToSelectionChangeContextMenu.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/ListenToSelectionChangeContextMenu.java
new file mode 100644
index 000000000..c68c8e5da
--- /dev/null
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/ListenToSelectionChangeContextMenu.java
@@ -0,0 +1,62 @@
+package eu.etaxonomy.taxeditor.editor.view.derivate.contextMenu;
+
+import org.eclipse.jface.action.ContributionItem;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.actions.CompoundContributionItem;
+
+import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
+
+/**
+ * Context menu for the SingleReads in the derivate hierarchy.
+ *
+ */
+public class ListenToSelectionChangeContextMenu extends CompoundContributionItem {
+
+ @Override
+ protected IContributionItem[] getContributionItems() {
+ IContributionItem[] contributionItems = new IContributionItem[] {
+ new ContributionItem() {
+ @Override
+ public void fill(Menu menu, int index) {
+ final IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+ IWorkbenchPart activePart = window.getActivePage().getActivePart();
+ if(activePart instanceof DerivateView){
+ final DerivateView derivateView = (DerivateView) activePart;
+ MenuItem item = new MenuItem(menu, SWT.NONE);
+ if(derivateView.isListenToSelectionChange()){
+ item.setText("Unlink from taxon selection");
+ }
+ else{
+ item.setText("Link with taxon selection");
+ }
+ item.addSelectionListener(new SelectionAdapterExtension(derivateView));
+ }
+ }
+ }
+ };
+ return contributionItems;
+ }
+
+ private final class SelectionAdapterExtension extends SelectionAdapter {
+
+ private final DerivateView derivateView;
+
+ private SelectionAdapterExtension(DerivateView derivateView) {
+ this.derivateView = derivateView;
+ }
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ derivateView.toggleListenToSelectionChange();
+ }
+ }
+}
+
--
2.34.1