adding license text to feature projects since these were removed from feature.xml
[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.common.DefinedTerm;
14 import eu.etaxonomy.cdm.model.common.TermType;
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.combo.TermComboElement;
19 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
20 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
21 import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
22 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
23 import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
24 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
25 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
26
27 /**
28 * @author pplitzner
29 * @date 16.12.2013
30 *
31 */
32 public class DnaSampleGeneralDetailElement extends AbstractCdmDetailElement<DnaSample> {
33
34
35 private TimePeriodElement datePreservationDate;
36 private EntitySelectionElement<AgentBase> selectionPreparedBy;
37 private NumberWithLabelElement numberPreservationTemperature;
38 private TermComboElement<DefinedTerm> comboMaterialOrMethods;
39 private TextWithLabelElement textBarcode;
40
41 /**
42 * @param formFactory
43 * @param formElement
44 */
45 public DnaSampleGeneralDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
46 super(formFactory, formElement);
47 }
48
49 /*
50 * (non-Javadoc)
51 *
52 * @see
53 * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
54 * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
55 */
56 @Override
57 protected void createControls(ICdmFormElement formElement, DnaSample entity, int style) {
58 TimePeriod timePeriod = null;
59 AgentBase actor = null;
60 Double temperature = null;
61 DefinedTerm definedMaterialOrMethod = null;
62 if(entity.getPreservation()!=null){
63 timePeriod= entity.getPreservation().getTimeperiod();
64 actor = entity.getPreservation().getActor();
65 temperature = entity.getPreservation().getTemperature();
66 definedMaterialOrMethod = entity.getPreservation().getDefinedMaterialOrMethod();
67 }
68 datePreservationDate = formFactory.createTimePeriodElement(formElement, "Preservation date", timePeriod, style);
69 // TODO sample designation
70 selectionPreparedBy = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Prepared by", actor, EntitySelectionElement.ALL, style);
71 numberPreservationTemperature = formFactory.createNumberTextWithLabelElement(formElement, "Preservation Temp. [C°]", temperature, style);
72 comboMaterialOrMethods = formFactory.createDefinedTermComboElement(TermType.MaterialOrMethod, formElement, "Materials & Methods", definedMaterialOrMethod, style);
73 //TODO preparation date
74 //TODO sample type
75 textBarcode = formFactory.createTextWithLabelElement(formElement, "Barcode", entity.getBarcode(), style);
76 }
77
78 /*
79 * (non-Javadoc)
80 *
81 * @see
82 * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
83 * .lang.Object)
84 */
85 @Override
86 public void handleEvent(Object eventSource) {
87 if(eventSource==datePreservationDate){
88 addPreservationMethod().setTimeperiod(datePreservationDate.getTimePeriod());
89 }
90 else if(eventSource==selectionPreparedBy){
91 addPreservationMethod().setActor(selectionPreparedBy.getSelection());
92 }
93 else if(eventSource==numberPreservationTemperature){
94 addPreservationMethod().setTemperature(numberPreservationTemperature.getDouble());
95 }
96 else if(eventSource==comboMaterialOrMethods){
97 addPreservationMethod().setDefinedMaterialOrMethod(comboMaterialOrMethods.getSelection());
98 }
99 else if(eventSource==textBarcode){
100 getEntity().setBarcode(textBarcode.getText());
101 }
102 }
103
104 private PreservationMethod addPreservationMethod(){
105 PreservationMethod preservationMethod = getEntity().getPreservation();
106 if(preservationMethod==null){
107 preservationMethod = PreservationMethod.NewInstance();
108 getEntity().setPreservation(preservationMethod);
109 }
110 return preservationMethod;
111 }
112 }