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