Merge branch 'develop' into LibrAlign
[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 org.joda.time.DateTime;
12
13 import eu.etaxonomy.cdm.model.common.OrderedTerm;
14 import eu.etaxonomy.cdm.model.common.TermType;
15 import eu.etaxonomy.cdm.model.molecular.DnaQuality;
16 import eu.etaxonomy.cdm.model.molecular.DnaSample;
17 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
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.mvc.element.DateElement;
23 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
24
25 /**
26 * @author pplitzner
27 * @date 05.03.2014
28 *
29 */
30 public class DnaQualityDetailElement extends AbstractCdmDetailElement<DnaSample> {
31
32 private TextWithLabelElement textPurificationMethod;
33 private NumberWithLabelElement numberRatioOfAbsorbance260_280;
34 private NumberWithLabelElement numberRatioOfAbsorbance260_230;
35 private NumberWithLabelElement numberConcentration;
36 private TermComboElement<OrderedTerm> comboQualityTerm;
37 private DateElement dateQualityCheck;
38
39 /**
40 * @param formFactory
41 * @param formElement
42 */
43 public DnaQualityDetailElement(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 DnaQuality dnaQuality = entity.getDnaQuality();
57 if(dnaQuality==null){
58 dnaQuality = DnaQuality.NewInstance();
59 entity.setDnaQuality(dnaQuality);
60 }
61 Double ratioOfAbsorbance260_230 = dnaQuality.getRatioOfAbsorbance260_230();
62 Double ratioOfAbsorbance260_280 = dnaQuality.getRatioOfAbsorbance260_280();
63 Double concentration = dnaQuality.getConcentration();
64 OrderedTerm qualityTerm = dnaQuality.getQualityTerm();
65
66 textPurificationMethod = formFactory.createTextWithLabelElement(formElement, "DNA Purification Details", dnaQuality.getPurificationMethod(), style);
67 numberRatioOfAbsorbance260_280 = formFactory.createNumberTextWithLabelElement(formElement, "Ratio of absorbance 260-280", ratioOfAbsorbance260_280, style);
68 numberRatioOfAbsorbance260_230 = formFactory.createNumberTextWithLabelElement(formElement, "Ratio of absorbance 260-230", ratioOfAbsorbance260_230, style);
69 numberConcentration = formFactory.createNumberTextWithLabelElement(formElement, "Concentration", concentration, style);
70 comboQualityTerm = formFactory.createDefinedTermComboElement(TermType.DnaQualityType, formElement, "Quality Term", qualityTerm, style);
71 dateQualityCheck = formFactory.createDateElement(formElement, "Quality Check", dnaQuality.getQualityCheckDate(), style);
72 }
73
74 /*
75 * (non-Javadoc)
76 *
77 * @see
78 * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
79 * .lang.Object)
80 */
81 @Override
82 public void handleEvent(Object eventSource) {
83 DnaQuality dnaQuality = getEntity().getDnaQuality();
84 if(eventSource==textPurificationMethod){
85 dnaQuality.setPurificationMethod(textPurificationMethod.getText());
86 }
87 else if(eventSource==numberRatioOfAbsorbance260_230){
88 dnaQuality.setRatioOfAbsorbance260_230(numberRatioOfAbsorbance260_230.getDouble());
89 }
90 else if(eventSource==numberRatioOfAbsorbance260_280){
91 dnaQuality.setRatioOfAbsorbance260_280(numberRatioOfAbsorbance260_280.getDouble());
92 }
93 else if(eventSource==numberConcentration){
94 dnaQuality.setConcentration(numberConcentration.getDouble());
95 }
96 else if(eventSource==comboQualityTerm){
97 dnaQuality.setQualityTerm(comboQualityTerm.getSelection());
98 }
99 else if(eventSource==dateQualityCheck.getController()){
100 DateTime dateTime = dateQualityCheck.getController().getDateTime();
101 dnaQuality.setQualityCheckDate(dateTime);
102 }
103 }
104 }