Merge branch 'develop' into LibrAlign
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / occurrence / SpecimenHierarchyDetailElement.java
1 /**
2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9
10 package eu.etaxonomy.taxeditor.ui.section.occurrence;
11
12 import java.util.Collection;
13 import java.util.Collections;
14 import java.util.HashSet;
15 import java.util.UUID;
16
17 import org.eclipse.jface.viewers.AbstractTreeViewer;
18 import org.eclipse.jface.viewers.TreeViewer;
19 import org.eclipse.swt.widgets.Tree;
20
21 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
22 import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
23 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
24 import eu.etaxonomy.taxeditor.store.CdmStore;
25 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
26 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
27 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
28 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
29 import eu.etaxonomy.taxeditor.view.derivateSearch.DerivateContentProvider;
30 import eu.etaxonomy.taxeditor.view.derivateSearch.DerivateLabelProvider;
31
32 /**
33 * @author n.hoffmann
34 * @created Dec 16, 2010
35 * @version 1.0
36 */
37 public class SpecimenHierarchyDetailElement extends AbstractCdmDetailElement<SpecimenOrObservationBase<?>> {
38
39 /**
40 * @param formFactory
41 * @param formElement
42 */
43 public SpecimenHierarchyDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
44 super(formFactory, formElement);
45 }
46
47 /*
48 * (non-Javadoc)
49 *
50 * @see
51 * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
52 * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
53 */
54 @Override
55 protected void createControls(ICdmFormElement formElement, SpecimenOrObservationBase<?> entity, int style) {
56 TreeViewer viewer = new TreeViewer(getLayoutComposite());
57 DerivateLabelProvider labelProvider = new DerivateLabelProvider();
58 Tree tree = viewer.getTree();
59
60 labelProvider.setConversation(getConversationHolder());
61 tree.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
62 viewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS);
63 viewer.setContentProvider(new DerivateContentProvider());
64 viewer.setLabelProvider(labelProvider);
65 //get root (field unit)
66 Collection<FieldUnit> fieldUnits = CdmStore.getService(IOccurrenceService.class).getFieldUnits(entity.getUuid());
67 Collection<UUID> fieldUnitUuids = new HashSet<UUID>();
68 for (FieldUnit fieldUnit : fieldUnits) {
69 fieldUnitUuids.add(fieldUnit.getUuid());
70 }
71 viewer.setInput(Collections.singleton(fieldUnitUuids));
72
73 }
74
75 /*
76 * (non-Javadoc)
77 *
78 * @see
79 * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
80 * .lang.Object)
81 */
82 @Override
83 public void handleEvent(Object eventSource) {
84 }
85
86 }