Project

General

Profile

Download (3.75 KB) Statistics
| Branch: | Tag: | Revision:
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.name;
12

    
13
import org.eclipse.swt.events.SelectionListener;
14

    
15
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
16
import eu.etaxonomy.cdm.model.common.TermType;
17
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
18
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus;
19
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
20
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
21
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
22
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
23
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
24
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
25
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
26
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
27

    
28
/**
29
 * @author n.hoffmann
30
 * @created May 17, 2010
31
 * @version 1.0
32
 */
33
public class SpecimenTypeDesignationElement extends
34
		AbstractTypeDesignationElement<SpecimenTypeDesignation> {
35

    
36
	private TermComboElement<SpecimenTypeDesignationStatus> combo_typeStatus;
37
	private EntitySelectionElement<DerivedUnit> selection_typeSpecimen;
38
	private TextWithLabelElement text_specimenTypeText;
39

    
40
	public SpecimenTypeDesignationElement(CdmFormFactory formFactory,
41
			AbstractFormSection section, SpecimenTypeDesignation entity,
42
			SelectionListener removeListener, int style) {
43
		super(formFactory, section, entity, removeListener, style);
44
	}
45

    
46
	/** {@inheritDoc} */
47
	@Override
48
	public void createControls(ICdmFormElement formElement, int style) {
49
		selection_typeSpecimen = formFactory
50
				.createSelectionElement(DerivedUnit.class,
51
						getConversationHolder(), formElement, "Specimen", null,
52
						EntitySelectionElement.ALL, style);
53
		combo_typeStatus = formFactory.createDefinedTermComboElement(TermType.SpecimenTypeDesignationStatus,
54
						formElement, "Designation Status", null, style);
55

    
56
		super.createControls(formElement, style);
57
	}
58

    
59
	/** {@inheritDoc} */
60
	@Override
61
	public void setEntity(SpecimenTypeDesignation entity) {
62
		super.setEntity(entity);
63
		selection_typeSpecimen.setEntity(entity.getTypeSpecimen());
64

    
65
		SpecimenTypeDesignationStatus typeStatus = HibernateProxyHelper
66
				.deproxy(entity.getTypeStatus(), SpecimenTypeDesignationStatus.class);
67
		combo_typeStatus.setSelection(typeStatus);
68
		checkbox_notDesignated.setSelection(entity.isNotDesignated());
69
	}
70

    
71
	/** {@inheritDoc} */
72
	@Override
73
	public void handleEvent(Object eventSource) {
74
		if (eventSource == combo_typeStatus) {
75
			getEntity().setTypeStatus(combo_typeStatus.getSelection());
76
		}
77
		// TODO remove this once specimens are correctly implemented
78
		else if (eventSource == text_specimenTypeText) {
79
			// TODO this is a simple workaround to enter type specimen as text
80
			// strings
81
			if (getEntity().getTypeSpecimen() == null) {
82
				DerivedUnit typeSpecimen = DerivedUnit.NewInstance(SpecimenOrObservationType.PreservedSpecimen);
83
				getEntity().setTypeSpecimen(typeSpecimen);
84
			}
85
			getEntity().getTypeSpecimen().setTitleCache(
86
					text_specimenTypeText.getText());
87
		} else if (eventSource == selection_typeSpecimen) {
88
			getEntity().setTypeSpecimen(selection_typeSpecimen.getSelection());
89
		} else if (eventSource == checkbox_notDesignated) {
90
			getEntity().setNotDesignated(checkbox_notDesignated.getSelection());
91
		} else if (eventSource == selection_reference) {
92
			getEntity().setCitation(selection_reference.getSelection());
93
		} else if (eventSource == text_referenceDetail) {
94
			getEntity().setCitationMicroReference(
95
					text_referenceDetail.getText());
96
		}
97
	}
98
}
(20-20/25)