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
.ISelectionChangedListener
;
15 import org
.eclipse
.jface
.viewers
.SelectionChangedEvent
;
16 import org
.eclipse
.jface
.viewers
.TreeViewer
;
17 import org
.eclipse
.swt
.SWT
;
18 import org
.eclipse
.swt
.layout
.GridData
;
19 import org
.eclipse
.swt
.widgets
.Composite
;
20 import org
.eclipse
.swt
.widgets
.Control
;
21 import org
.eclipse
.swt
.widgets
.Menu
;
22 import org
.eclipse
.swt
.widgets
.Tree
;
23 import org
.eclipse
.ui
.part
.ViewPart
;
25 import eu
.etaxonomy
.cdm
.api
.conversation
.ConversationHolder
;
26 import eu
.etaxonomy
.cdm
.api
.conversation
.IConversationEnabled
;
27 import eu
.etaxonomy
.cdm
.persistence
.hibernate
.CdmDataChangeMap
;
28 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
29 import eu
.etaxonomy
.taxeditor
.view
.derivateSearch
.DerivateContentProvider
;
30 import eu
.etaxonomy
.taxeditor
.view
.derivateSearch
.DerivateLabelProvider
;
37 public class OccurenceView
extends ViewPart
implements IConversationEnabled
, ISelectionChangedListener
{
39 private TreeViewer viewer
;
40 private DerivateContentProvider contentProvider
;
41 private DerivateLabelProvider labelProvider
;
42 private ConversationHolder conversation
;
44 public OccurenceView() {
45 conversation
= CdmStore
.createConversation();
52 public void createPartControl(Composite parent
) {
54 viewer
= new TreeViewer(new Tree(parent
, SWT
.MULTI
| SWT
.H_SCROLL
| SWT
.V_SCROLL
| SWT
.FULL_SELECTION
));
55 GridData gridDataTree
= new GridData();
56 gridDataTree
.horizontalAlignment
= GridData
.FILL
;
57 gridDataTree
.verticalAlignment
= GridData
.FILL
;
58 gridDataTree
.grabExcessVerticalSpace
= true;
59 gridDataTree
.grabExcessHorizontalSpace
= true;
60 viewer
.getTree().setLayoutData(gridDataTree
);
61 contentProvider
= new DerivateContentProvider();
62 viewer
.setContentProvider(contentProvider
);
63 labelProvider
= new DerivateLabelProvider();
64 labelProvider
.setConversation(conversation
);
65 viewer
.setLabelProvider(labelProvider
);
66 viewer
.setAutoExpandLevel(AbstractTreeViewer
.ALL_LEVELS
);
67 // Propagate selection from viewer
68 getSite().setSelectionProvider(viewer
);
69 //listen to selection changes
70 viewer
.addSelectionChangedListener(this);
73 MenuManager menuManager
= new MenuManager();
74 getSite().registerContextMenu(menuManager
, viewer
);
75 Control control
= viewer
.getControl();
76 Menu menu
= menuManager
.createContextMenu(control
);
77 control
.setMenu(menu
);
85 public void setFocus() {
86 if(!conversation
.isClosed()){
95 public void update(CdmDataChangeMap arg0
) {
102 public ConversationHolder
getConversationHolder() {
110 public void dispose() {
111 if(conversation
.isBound() && !conversation
.isClosed()){
112 conversation
.close();
120 public void selectionChanged(SelectionChangedEvent event
) {