1 package eu
.etaxonomy
.taxeditor
.editor
.view
.derivate
.contextMenu
;
3 import org
.eclipse
.jface
.action
.ContributionItem
;
4 import org
.eclipse
.jface
.action
.IContributionItem
;
5 import org
.eclipse
.swt
.SWT
;
6 import org
.eclipse
.swt
.events
.SelectionAdapter
;
7 import org
.eclipse
.swt
.events
.SelectionEvent
;
8 import org
.eclipse
.swt
.widgets
.Menu
;
9 import org
.eclipse
.swt
.widgets
.MenuItem
;
10 import org
.eclipse
.ui
.IWorkbenchPart
;
11 import org
.eclipse
.ui
.IWorkbenchWindow
;
12 import org
.eclipse
.ui
.PlatformUI
;
13 import org
.eclipse
.ui
.actions
.CompoundContributionItem
;
15 import eu
.etaxonomy
.taxeditor
.editor
.view
.derivate
.DerivateView
;
16 import eu
.etaxonomy
.taxeditor
.model
.ImageResources
;
19 * Context menu for the SingleReads in the derivate hierarchy.
22 public class ListenToSelectionChangeContextMenu
extends CompoundContributionItem
{
25 protected IContributionItem
[] getContributionItems() {
26 IContributionItem
[] contributionItems
= new IContributionItem
[] {
27 new ContributionItem() {
29 public void fill(Menu menu
, int index
) {
30 final IWorkbenchWindow window
= PlatformUI
.getWorkbench().getActiveWorkbenchWindow();
31 IWorkbenchPart activePart
= window
.getActivePage().getActivePart();
32 if(activePart
instanceof DerivateView
){
33 final DerivateView derivateView
= (DerivateView
) activePart
;
34 MenuItem item
= new MenuItem(menu
, SWT
.NONE
);
35 if(derivateView
.isListenToSelectionChange()){
36 item
.setText("Unlink from taxon selection");
39 item
.setText("Link with taxon selection");
41 item
.setImage(ImageResources
.getImage(ImageResources
.SYNCED
));
42 item
.addSelectionListener(new SelectionAdapterExtension(derivateView
));
47 return contributionItems
;
50 private final class SelectionAdapterExtension
extends SelectionAdapter
{
52 private final DerivateView derivateView
;
54 private SelectionAdapterExtension(DerivateView derivateView
) {
55 this.derivateView
= derivateView
;
59 public void widgetSelected(SelectionEvent e
) {
60 derivateView
.toggleListenToSelectionChange();