merge-update from trunk
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / occurrence / SpecimenHierarchyDetailElement.java
1 // $Id$
2 /**
3 * Copyright (C) 2007 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
11 package eu.etaxonomy.taxeditor.ui.section.occurrence;
12
13 import java.util.Collection;
14 import java.util.Collections;
15 import java.util.HashSet;
16 import java.util.UUID;
17
18 import org.eclipse.jface.viewers.AbstractTreeViewer;
19 import org.eclipse.jface.viewers.TreeViewer;
20 import org.eclipse.swt.widgets.Tree;
21
22 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
23 import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
24 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
25 import eu.etaxonomy.taxeditor.store.CdmStore;
26 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
27 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
28 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
29 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
30 import eu.etaxonomy.taxeditor.view.derivateSearch.DerivateContentProvider;
31 import eu.etaxonomy.taxeditor.view.derivateSearch.DerivateLabelProvider;
32
33 /**
34 * @author n.hoffmann
35 * @created Dec 16, 2010
36 * @version 1.0
37 */
38 public class SpecimenHierarchyDetailElement extends AbstractCdmDetailElement<SpecimenOrObservationBase<?>> {
39
40 /**
41 * @param formFactory
42 * @param formElement
43 */
44 public SpecimenHierarchyDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
45 super(formFactory, formElement);
46 }
47
48 /*
49 * (non-Javadoc)
50 *
51 * @see
52 * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
53 * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
54 */
55 @Override
56 protected void createControls(ICdmFormElement formElement, SpecimenOrObservationBase<?> entity, int style) {
57 TreeViewer viewer = new TreeViewer(getLayoutComposite());
58 DerivateLabelProvider labelProvider = new DerivateLabelProvider();
59 Tree tree = viewer.getTree();
60
61 labelProvider.setConversation(getConversationHolder());
62 tree.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
63 viewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS);
64 viewer.setContentProvider(new DerivateContentProvider());
65 viewer.setLabelProvider(labelProvider);
66 //get root (field unit)
67 Collection<FieldUnit> fieldUnits = CdmStore.getService(IOccurrenceService.class).getFieldUnits(entity.getUuid());
68 Collection<UUID> fieldUnitUuids = new HashSet<UUID>();
69 for (FieldUnit fieldUnit : fieldUnits) {
70 fieldUnitUuids.add(fieldUnit.getUuid());
71 }
72 viewer.setInput(Collections.singleton(fieldUnitUuids));
73
74 }
75
76 /*
77 * (non-Javadoc)
78 *
79 * @see
80 * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
81 * .lang.Object)
82 */
83 @Override
84 public void handleEvent(Object eventSource) {
85 }
86
87 }