Project

General

Profile

Download (3.94 KB) Statistics
| Branch: | Tag: | Revision:
1
// $Id$
2
/**
3
* Copyright (C) 2015 EDIT
4
* European Distributed Institute of Taxonomy
5
* http://www.e-taxonomy.eu
6
*
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.
9
*/
10
package eu.etaxonomy.taxeditor.view.derivative;
11

    
12
import java.util.Collection;
13

    
14
import org.eclipse.jface.action.MenuManager;
15
import org.eclipse.jface.viewers.AbstractTreeViewer;
16
import org.eclipse.jface.viewers.ISelection;
17
import org.eclipse.jface.viewers.IStructuredSelection;
18
import org.eclipse.jface.viewers.TreeViewer;
19
import org.eclipse.swt.SWT;
20
import org.eclipse.swt.layout.GridData;
21
import org.eclipse.swt.widgets.Composite;
22
import org.eclipse.swt.widgets.Control;
23
import org.eclipse.swt.widgets.Menu;
24
import org.eclipse.swt.widgets.Tree;
25
import org.eclipse.ui.ISelectionListener;
26
import org.eclipse.ui.ISelectionService;
27
import org.eclipse.ui.IWorkbenchPart;
28
import org.eclipse.ui.part.ViewPart;
29

    
30
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
31
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
32
import eu.etaxonomy.cdm.model.taxon.Taxon;
33
import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
34
import eu.etaxonomy.taxeditor.store.CdmStore;
35
import eu.etaxonomy.taxeditor.view.derivateSearch.DerivateContentProvider;
36
import eu.etaxonomy.taxeditor.view.derivateSearch.DerivateLabelProvider;
37

    
38
/**
39
 * @author pplitzner
40
 * @date Oct 7, 2015
41
 *
42
 */
43
public class OccurrenceView extends ViewPart implements ISelectionListener, IPartContentHasDetails{
44

    
45
    public static String ID = "eu.etaxonomy.taxeditor.view.derivative.OccurrenceView";
46

    
47
    private TreeViewer viewer;
48
    private DerivateContentProvider contentProvider;
49
    private DerivateLabelProvider labelProvider;
50

    
51
    private ISelectionService selectionService;
52

    
53
    /**
54
     * {@inheritDoc}
55
     */
56
    @Override
57
    public void createPartControl(Composite parent) {
58

    
59
        //listen to selection changes
60
        selectionService = getSite().getWorkbenchWindow().getSelectionService();
61
        selectionService.addSelectionListener(this);
62

    
63
      //---tree viewer---
64
        viewer = new TreeViewer(new Tree(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION));
65
        GridData gridDataTree = new GridData();
66
        gridDataTree.horizontalAlignment = GridData.FILL;
67
        gridDataTree.verticalAlignment = GridData.FILL;
68
        gridDataTree.grabExcessVerticalSpace = true;
69
        gridDataTree.grabExcessHorizontalSpace = true;
70
        viewer.getTree().setLayoutData(gridDataTree);
71
        contentProvider = new DerivateContentProvider();
72
        viewer.setContentProvider(contentProvider);
73
        labelProvider = new DerivateLabelProvider();
74
        viewer.setLabelProvider(labelProvider);
75
        viewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS);
76
        // Propagate selection from viewer
77
        getSite().setSelectionProvider(viewer);
78

    
79
        //create context menu
80
        MenuManager menuManager = new MenuManager();
81
        getSite().registerContextMenu(menuManager, viewer);
82
        Control control = viewer.getControl();
83
        Menu menu = menuManager.createContextMenu(control);
84
        control.setMenu(menu);
85

    
86
    }
87

    
88
    /**
89
     * {@inheritDoc}
90
     */
91
    @Override
92
    public void setFocus() {
93
    }
94

    
95
    /**
96
     * {@inheritDoc}
97
     */
98
    @Override
99
    public void dispose() {
100
        selectionService.removeSelectionListener(this);
101
    }
102

    
103
    /**
104
     * {@inheritDoc}
105
     */
106
    @Override
107
    public void selectionChanged(IWorkbenchPart part, ISelection selection) {
108
        if(selection instanceof IStructuredSelection){
109
            Object selectedElement = ((IStructuredSelection) selection).getFirstElement();
110
            if(selectedElement instanceof Taxon){
111
                Collection<SpecimenOrObservationBase> fieldUnits = CdmStore.getService(IOccurrenceService.class).listFieldUnitsByAssociatedTaxon((Taxon) selectedElement, null, null);
112
                viewer.setInput(fieldUnits);
113
            }
114
        }
115
    }
116
}
    (1-1/1)