- added some more molecular parameters to the DetailsView
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / occurrence / dna / DnaSampleGeneralDetailElement.java
1 // $Id$
2 /**
3 * Copyright (C) 2013 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 package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
11
12 import eu.etaxonomy.cdm.model.agent.AgentBase;
13 import eu.etaxonomy.cdm.model.agent.Institution;
14 import eu.etaxonomy.cdm.model.common.DefinedTerm;
15 import eu.etaxonomy.cdm.model.common.TermType;
16 import eu.etaxonomy.cdm.model.common.TimePeriod;
17 import eu.etaxonomy.cdm.model.molecular.DnaSample;
18 import eu.etaxonomy.cdm.model.occurrence.PreservationMethod;
19 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
20 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
21 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
22 import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
23 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
24 import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
25 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
26 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
27
28 /**
29 * @author pplitzner
30 * @date 16.12.2013
31 *
32 */
33 public class DnaSampleGeneralDetailElement extends AbstractCdmDetailElement<DnaSample> {
34
35 private EntitySelectionElement<Institution> selectionInstitution;
36 private EntitySelectionElement<AgentBase> selectionStaff;
37 private TimePeriodElement datePreservationDate;
38 private NumberWithLabelElement numberPreservationTemperature;
39 private TermComboElement<DefinedTerm> comboMaterialOrMethods;
40 private TextWithLabelElement textBarcode;
41
42 /**
43 * @param formFactory
44 * @param formElement
45 */
46 public DnaSampleGeneralDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
47 super(formFactory, formElement);
48 }
49
50 /*
51 * (non-Javadoc)
52 *
53 * @see
54 * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
55 * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
56 */
57 @Override
58 protected void createControls(ICdmFormElement formElement, DnaSample entity, int style) {
59 Institution institution = null;
60 AgentBase<?> staff = null;
61 TimePeriod preparationDate = null;
62 if(entity.getDerivedFrom()!=null){
63 // institution = entity.getDerivedFrom().getInstitution();
64 staff = entity.getDerivedFrom().getActor();
65 preparationDate = entity.getDerivedFrom().getTimeperiod();
66 }
67
68 Double temperature = null;
69 DefinedTerm definedMaterialOrMethod = null;
70 if(entity.getPreservation()!=null){
71 temperature = entity.getPreservation().getTemperature();
72 definedMaterialOrMethod = entity.getPreservation().getDefinedMaterialOrMethod();
73 }
74 //TODO institution
75 // selectionInstitution = formFactory.createSelectionElement(Institution.class, getConversationHolder(), formElement, "Institution", staff, EntitySelectionElement.ALL, style);
76 selectionStaff = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Staff", staff, EntitySelectionElement.ALL, style);
77 datePreservationDate = formFactory.createTimePeriodElement(formElement, "Preparation date", preparationDate, style);
78 numberPreservationTemperature = formFactory.createNumberTextWithLabelElement(formElement, "Preservation Temp. [C°]", temperature, style);
79 comboMaterialOrMethods = formFactory.createDefinedTermComboElement(TermType.MaterialOrMethod, formElement, "Materials & Methods", definedMaterialOrMethod, style);
80 textBarcode = formFactory.createTextWithLabelElement(formElement, "Barcode", entity.getBarcode(), style);
81
82 }
83
84 /*
85 * (non-Javadoc)
86 *
87 * @see
88 * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
89 * .lang.Object)
90 */
91 @Override
92 public void handleEvent(Object eventSource) {
93 if(eventSource==datePreservationDate){
94 addPreservationMethod().setTimeperiod(datePreservationDate.getTimePeriod());
95 }
96 else if(eventSource==selectionStaff){
97 addPreservationMethod().setActor(selectionStaff.getSelection());
98 }
99 else if(eventSource==numberPreservationTemperature){
100 addPreservationMethod().setTemperature(numberPreservationTemperature.getDouble());
101 }
102 else if(eventSource==comboMaterialOrMethods){
103 addPreservationMethod().setDefinedMaterialOrMethod(comboMaterialOrMethods.getSelection());
104 }
105 else if(eventSource==textBarcode){
106 getEntity().setBarcode(textBarcode.getText());
107 }
108 }
109
110 private PreservationMethod addPreservationMethod(){
111 PreservationMethod preservationMethod = getEntity().getPreservation();
112 if(preservationMethod==null){
113 preservationMethod = PreservationMethod.NewInstance();
114 getEntity().setPreservation(preservationMethod);
115 }
116 return preservationMethod;
117 }
118 }