3 * Copyright (C) 2015 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
10 package eu
.etaxonomy
.taxeditor
.view
.derivative
;
12 import org
.eclipse
.jface
.action
.MenuManager
;
13 import org
.eclipse
.jface
.viewers
.AbstractTreeViewer
;
14 import org
.eclipse
.jface
.viewers
.ISelection
;
15 import org
.eclipse
.jface
.viewers
.TreeViewer
;
16 import org
.eclipse
.swt
.SWT
;
17 import org
.eclipse
.swt
.layout
.GridData
;
18 import org
.eclipse
.swt
.widgets
.Composite
;
19 import org
.eclipse
.swt
.widgets
.Control
;
20 import org
.eclipse
.swt
.widgets
.Menu
;
21 import org
.eclipse
.swt
.widgets
.Tree
;
22 import org
.eclipse
.ui
.ISelectionListener
;
23 import org
.eclipse
.ui
.ISelectionService
;
24 import org
.eclipse
.ui
.IWorkbenchPart
;
25 import org
.eclipse
.ui
.part
.ViewPart
;
27 import eu
.etaxonomy
.taxeditor
.view
.derivateSearch
.DerivateContentProvider
;
28 import eu
.etaxonomy
.taxeditor
.view
.derivateSearch
.DerivateLabelProvider
;
35 public class OccurrenceView
extends ViewPart
implements ISelectionListener
{
37 public static String ID
= "eu.etaxonomy.taxeditor.view.derivative.OccurrenceView";
39 private TreeViewer viewer
;
40 private DerivateContentProvider contentProvider
;
41 private DerivateLabelProvider labelProvider
;
43 private ISelectionService selectionService
;
49 public void createPartControl(Composite parent
) {
51 //listen to selection changes
52 selectionService
= getSite().getWorkbenchWindow().getSelectionService();
53 selectionService
.addSelectionListener(this);
56 viewer
= new TreeViewer(new Tree(parent
, SWT
.MULTI
| SWT
.H_SCROLL
| SWT
.V_SCROLL
| SWT
.FULL_SELECTION
));
57 GridData gridDataTree
= new GridData();
58 gridDataTree
.horizontalAlignment
= GridData
.FILL
;
59 gridDataTree
.verticalAlignment
= GridData
.FILL
;
60 gridDataTree
.grabExcessVerticalSpace
= true;
61 gridDataTree
.grabExcessHorizontalSpace
= true;
62 viewer
.getTree().setLayoutData(gridDataTree
);
63 contentProvider
= new DerivateContentProvider();
64 viewer
.setContentProvider(contentProvider
);
65 labelProvider
= new DerivateLabelProvider();
66 viewer
.setLabelProvider(labelProvider
);
67 viewer
.setAutoExpandLevel(AbstractTreeViewer
.ALL_LEVELS
);
68 // Propagate selection from viewer
69 getSite().setSelectionProvider(viewer
);
72 MenuManager menuManager
= new MenuManager();
73 getSite().registerContextMenu(menuManager
, viewer
);
74 Control control
= viewer
.getControl();
75 Menu menu
= menuManager
.createContextMenu(control
);
76 control
.setMenu(menu
);
84 public void setFocus() {
91 public void dispose() {
92 selectionService
.removeSelectionListener(this);
99 public void selectionChanged(IWorkbenchPart part
, ISelection selection
) {
100 System
.out
.println(selection
);