Merged refactoring from development branch.
[taxeditor.git] / taxeditor-store / src / main / java / eu / etaxonomy / taxeditor / ui / section / name / SpecimenTypeDesignationElement.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.name;
12
13 import org.eclipse.swt.events.SelectionListener;
14
15 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
16 import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
17 import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus;
18 import eu.etaxonomy.cdm.model.occurrence.Specimen;
19 import eu.etaxonomy.taxeditor.ui.forms.AbstractFormSection;
20 import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory;
21 import eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement;
22 import eu.etaxonomy.taxeditor.ui.forms.TextWithLabelElement;
23 import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory.SelectionType;
24 import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory.TermComboType;
25 import eu.etaxonomy.taxeditor.ui.selection.DerivedUnitBaseSelectionElement;
26 import eu.etaxonomy.taxeditor.ui.term.SpecimenTypeDesignationStatusComboElement;
27
28 /**
29 * <p>SpecimenTypeDesignationElement class.</p>
30 *
31 * @author n.hoffmann
32 * @created May 17, 2010
33 * @version 1.0
34 */
35 public class SpecimenTypeDesignationElement extends
36 AbstractTypeDesignationElement<SpecimenTypeDesignation> {
37
38 private SpecimenTypeDesignationStatusComboElement combo_typeStatus;
39 private DerivedUnitBaseSelectionElement selection_typeSpecimen;
40 private TextWithLabelElement text_specimenTypeText;
41
42 /**
43 * <p>Constructor for SpecimenTypeDesignationElement.</p>
44 *
45 * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory} object.
46 * @param section a {@link eu.etaxonomy.taxeditor.ui.forms.AbstractFormSection} object.
47 * @param entity a {@link eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation} object.
48 * @param removeListener a {@link org.eclipse.swt.events.SelectionListener} object.
49 * @param style a int.
50 */
51 public SpecimenTypeDesignationElement(CdmFormFactory formFactory,
52 AbstractFormSection section, SpecimenTypeDesignation entity,
53 SelectionListener removeListener, int style) {
54 super(formFactory, section, entity, removeListener, style);
55 }
56
57 /** {@inheritDoc} */
58 @Override
59 public void createControls(ICdmFormElement formElement, int style) {
60 selection_typeSpecimen = (DerivedUnitBaseSelectionElement) formFactory.createSelectionElement(SelectionType.DERIVED_UNIT, getConversationHolder(), formElement, "Unit", null, style);
61 combo_typeStatus = (SpecimenTypeDesignationStatusComboElement) formFactory.createTermComboElement(TermComboType.SPECIMENTYPEDESIGNATIONSTATUS, formElement, "Designation Status", null, style);
62
63 super.createControls(formElement, style);
64 }
65
66 /** {@inheritDoc} */
67 @Override
68 public void setEntity(SpecimenTypeDesignation entity) {
69 super.setEntity(entity);
70 selection_typeSpecimen.setEntity(entity.getTypeSpecimen());
71
72 SpecimenTypeDesignationStatus typeStatus = (SpecimenTypeDesignationStatus) HibernateProxyHelper.deproxy(entity.getTypeStatus());
73 combo_typeStatus.setSelection(typeStatus);
74 checkbox_notDesignated.setSelection(entity.isNotDesignated());
75 }
76
77 /** {@inheritDoc} */
78 @Override
79 public void handleEvent(Object eventSource) {
80 if(eventSource == combo_typeStatus){
81 getEntity().setTypeStatus(combo_typeStatus.getSelection());
82 }
83 // TODO remove this once specimens are correctly implemented
84 else if(eventSource == text_specimenTypeText){
85 // TODO this is a simple workaround to enter type specimen as text strings
86 if(getEntity().getTypeSpecimen() == null){
87 Specimen typeSpecimen = Specimen.NewInstance();
88 getEntity().setTypeSpecimen(typeSpecimen);
89 }
90 getEntity().getTypeSpecimen().setTitleCache(text_specimenTypeText.getText());
91 }
92 else if(eventSource == selection_typeSpecimen){
93 getEntity().setTypeSpecimen(selection_typeSpecimen.getSelection());
94 }
95 else if(eventSource == checkbox_notDesignated){
96 getEntity().setNotDesignated(checkbox_notDesignated.getSelection());
97 }
98 else if(eventSource == selection_reference){
99 getEntity().setCitation(selection_reference.getSelection());
100 }
101 else if(eventSource == text_referenceDetail){
102 getEntity().setCitationMicroReference(text_referenceDetail.getText());
103 }
104 else if(eventSource == text_originaleNameString){
105 getEntity().setOriginalNameString(text_originaleNameString.getText());
106 }
107 }
108 }