Merge branch 'release/5.8.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / occurrence / dna / DnaQualityDetailElement.java
1 /**
2 * Copyright (C) 2014 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9 package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
10
11 import java.time.ZonedDateTime;
12
13 import org.joda.time.DateTime;
14 import org.joda.time.LocalDateTime;
15
16 import eu.etaxonomy.cdm.model.term.OrderedTerm;
17 import eu.etaxonomy.cdm.model.term.TermType;
18 import eu.etaxonomy.cdm.model.molecular.DnaQuality;
19 import eu.etaxonomy.cdm.model.molecular.DnaSample;
20 import eu.etaxonomy.taxeditor.model.DateConverter;
21 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
22 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
23 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
24 import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
25 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
26 import eu.etaxonomy.taxeditor.ui.mvc.element.DateElement;
27 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
28
29 /**
30 * @author pplitzner
31 * @date 05.03.2014
32 *
33 */
34 public class DnaQualityDetailElement extends AbstractCdmDetailElement<DnaSample> {
35
36 private TextWithLabelElement textPurificationMethod;
37 private NumberWithLabelElement numberRatioOfAbsorbance260_280;
38 private NumberWithLabelElement numberRatioOfAbsorbance260_230;
39 private NumberWithLabelElement numberConcentration;
40 private TermComboElement<OrderedTerm> comboQualityTerm;
41 private DateElement dateQualityCheck;
42
43 /**
44 * @param formFactory
45 * @param formElement
46 */
47 public DnaQualityDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
48 super(formFactory, formElement);
49 }
50
51 /*
52 * (non-Javadoc)
53 *
54 * @see
55 * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
56 * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
57 */
58 @Override
59 protected void createControls(ICdmFormElement formElement, DnaSample entity, int style) {
60 DnaQuality dnaQuality = entity.getDnaQuality();
61 if(dnaQuality==null){
62 dnaQuality = DnaQuality.NewInstance();
63 entity.setDnaQuality(dnaQuality);
64 }
65 Double ratioOfAbsorbance260_230 = dnaQuality.getRatioOfAbsorbance260_230();
66 Double ratioOfAbsorbance260_280 = dnaQuality.getRatioOfAbsorbance260_280();
67 Double concentration = dnaQuality.getConcentration();
68 OrderedTerm qualityTerm = dnaQuality.getQualityTerm();
69
70 textPurificationMethod = formFactory.createTextWithLabelElement(formElement, "DNA Purification Details", dnaQuality.getPurificationMethod(), style);
71 numberRatioOfAbsorbance260_280 = formFactory.createNumberTextWithLabelElement(formElement, "Ratio of absorbance 260-280", ratioOfAbsorbance260_280, style);
72 numberRatioOfAbsorbance260_230 = formFactory.createNumberTextWithLabelElement(formElement, "Ratio of absorbance 260-230", ratioOfAbsorbance260_230, style);
73 numberConcentration = formFactory.createNumberTextWithLabelElement(formElement, "Concentration", concentration, style);
74 comboQualityTerm = formFactory.createDefinedTermComboElement(TermType.DnaQualityType, formElement, "Quality Term", qualityTerm, style);
75 DateTime qualityCheckedDate = dnaQuality.getQualityCheckDate();
76
77 dateQualityCheck = formFactory.createDateElement(formElement, "Quality Check", qualityCheckedDate, style, false);
78 }
79
80 /*
81 * (non-Javadoc)
82 *
83 * @see
84 * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
85 * .lang.Object)
86 */
87 @Override
88 public void handleEvent(Object eventSource) {
89 DnaQuality dnaQuality = getEntity().getDnaQuality();
90 if(eventSource==textPurificationMethod){
91 dnaQuality.setPurificationMethod(textPurificationMethod.getText());
92 }
93 else if(eventSource==numberRatioOfAbsorbance260_230){
94 dnaQuality.setRatioOfAbsorbance260_230(numberRatioOfAbsorbance260_230.getDouble());
95 }
96 else if(eventSource==numberRatioOfAbsorbance260_280){
97 dnaQuality.setRatioOfAbsorbance260_280(numberRatioOfAbsorbance260_280.getDouble());
98 }
99 else if(eventSource==numberConcentration){
100 dnaQuality.setConcentration(numberConcentration.getDouble());
101 }
102 else if(eventSource==comboQualityTerm){
103 dnaQuality.setQualityTerm(comboQualityTerm.getSelection());
104 }
105 else if(eventSource==dateQualityCheck.getController()){
106 DateTime dateTime = dateQualityCheck.getController().getDateTime();
107
108 dnaQuality.setQualityCheckDate(dateTime);
109 }
110 }
111 }