- changed type of "Materials & Methods" to text instead of DefinedTerm
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / occurrence / dna / DnaSamplePreparationPreservationDetailElement.java
1
2 // $Id$
3 /**
4 * Copyright (C) 2013 EDIT
5 * European Distributed Institute of Taxonomy
6 * http://www.e-taxonomy.eu
7 *
8 * The contents of this file are subject to the Mozilla Public License Version 1.1
9 * See LICENSE.TXT at the top of this package for the full license terms.
10 */
11 package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
12
13 import eu.etaxonomy.cdm.model.agent.AgentBase;
14 import eu.etaxonomy.cdm.model.agent.Institution;
15 import eu.etaxonomy.cdm.model.common.TimePeriod;
16 import eu.etaxonomy.cdm.model.molecular.DnaSample;
17 import eu.etaxonomy.cdm.model.occurrence.PreservationMethod;
18 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
19 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
20 import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
21 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
22 import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
23 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
24 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
25
26 /**
27 * @author pplitzner
28 * @date 16.12.2013
29 *
30 */
31 public class DnaSamplePreparationPreservationDetailElement extends AbstractCdmDetailElement<DnaSample> {
32
33 private EntitySelectionElement<Institution> selectionInstitution;
34 private EntitySelectionElement<AgentBase> selectionStaff;
35 private TimePeriodElement datePreparationDate;
36 private NumberWithLabelElement numberPreservationTemperature;
37 private TextWithLabelElement txtMaterialOrMethods;
38
39 /**
40 * @param formFactory
41 * @param formElement
42 */
43 public DnaSamplePreparationPreservationDetailElement(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, DnaSample entity, int style) {
56 Institution institution = null;
57 AgentBase<?> staff = null;
58 TimePeriod preparationDate = null;
59 if(entity.getDerivedFrom()!=null){
60 institution = entity.getDerivedFrom().getInstitution();
61 staff = entity.getDerivedFrom().getActor();
62 preparationDate = entity.getDerivedFrom().getTimeperiod();
63 }
64
65 Double temperature = null;
66 String materialOrMethodText = null;
67 if(entity.getPreservation()!=null){
68 temperature = entity.getPreservation().getTemperature();
69 materialOrMethodText = entity.getPreservation().getMaterialMethodText();
70 }
71 selectionInstitution = formFactory.createSelectionElement(Institution.class, getConversationHolder(), formElement, "Institution", institution, EntitySelectionElement.ALL, style);
72 selectionStaff = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Staff", staff, EntitySelectionElement.ALL, style);
73 datePreparationDate = formFactory.createTimePeriodElement(formElement, "Preparation date", preparationDate, style);
74 numberPreservationTemperature = formFactory.createNumberTextWithLabelElement(formElement, "Preservation Temp. [C°]", temperature, style);
75 txtMaterialOrMethods = formFactory.createTextWithLabelElement(formElement, "Materials && Methods", materialOrMethodText, style);
76
77 }
78
79 /*
80 * (non-Javadoc)
81 *
82 * @see
83 * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
84 * .lang.Object)
85 */
86 @Override
87 public void handleEvent(Object eventSource) {
88 if(eventSource==datePreparationDate){
89 if(getEntity().getDerivedFrom()!=null){
90 getEntity().getDerivedFrom().setTimeperiod(datePreparationDate.getTimePeriod());
91 }
92 }
93 else if(eventSource==selectionInstitution){
94 if(getEntity().getDerivedFrom()!=null){
95 getEntity().getDerivedFrom().setInstitution(selectionInstitution.getSelection());
96 }
97 }
98 else if(eventSource==selectionStaff){
99 if(getEntity().getDerivedFrom()!=null){
100 getEntity().getDerivedFrom().setActor(selectionStaff.getSelection());
101 }
102 }
103 else if(eventSource==numberPreservationTemperature){
104 addPreservationMethod().setTemperature(numberPreservationTemperature.getDouble());
105 }
106 else if(eventSource==txtMaterialOrMethods){
107 addPreservationMethod().setMaterialMethodText(txtMaterialOrMethods.getText());
108 }
109 }
110
111 private PreservationMethod addPreservationMethod(){
112 PreservationMethod preservationMethod = getEntity().getPreservation();
113 if(preservationMethod==null){
114 preservationMethod = PreservationMethod.NewInstance();
115 getEntity().setPreservation(preservationMethod);
116 }
117 return preservationMethod;
118 }
119 }