Merge branch 'release/5.19.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 org.joda.time.DateTime;
12
13 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
14 import eu.etaxonomy.cdm.model.molecular.DnaQuality;
15 import eu.etaxonomy.cdm.model.molecular.DnaSample;
16 import eu.etaxonomy.cdm.model.term.OrderedTerm;
17 import eu.etaxonomy.cdm.model.term.TermType;
18 import eu.etaxonomy.taxeditor.ui.combo.term.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.mvc.element.DateElement;
24 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
25
26 /**
27 * @author pplitzner
28 * @date 05.03.2014
29 */
30 public class DnaQualityDetailElement extends AbstractCdmDetailElement<DerivedUnitFacade> {
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 public DnaQualityDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
40 super(formFactory, formElement);
41 }
42
43 @Override
44 protected void createControls(ICdmFormElement formElement, DerivedUnitFacade facade, int style) {
45 DnaSample entity = (DnaSample)facade.innerDerivedUnit();
46 DnaQuality dnaQuality = entity.getDnaQuality();
47 if(dnaQuality==null){
48 dnaQuality = DnaQuality.NewInstance();
49 entity.setDnaQuality(dnaQuality);
50 }
51 Double ratioOfAbsorbance260_230 = dnaQuality.getRatioOfAbsorbance260_230();
52 Double ratioOfAbsorbance260_280 = dnaQuality.getRatioOfAbsorbance260_280();
53 Double concentration = dnaQuality.getConcentration();
54 OrderedTerm qualityTerm = dnaQuality.getQualityTerm();
55
56 textPurificationMethod = formFactory.createTextWithLabelElement(formElement, "DNA Purification Details", dnaQuality.getPurificationMethod(), style);
57 numberRatioOfAbsorbance260_280 = formFactory.createFloatTextWithLabelElement(formElement, "Ratio of absorbance 260/280", ratioOfAbsorbance260_280, style);
58 numberRatioOfAbsorbance260_230 = formFactory.createFloatTextWithLabelElement(formElement, "Ratio of absorbance 260/230", ratioOfAbsorbance260_230, style);
59 numberConcentration = formFactory.createFloatTextWithLabelElement(formElement, "Concentration", concentration, style);
60 comboQualityTerm = formFactory.createDefinedTermComboElement(TermType.DnaQualityType, formElement, "Quality Term", qualityTerm, style);
61 DateTime qualityCheckedDate = dnaQuality.getQualityCheckDate();
62
63 dateQualityCheck = formFactory.createDateElement(formElement, "Quality Check", qualityCheckedDate, style, false);
64 }
65
66 @Override
67 public void handleEvent(Object eventSource) {
68 DnaSample entity = (DnaSample)getEntity().innerDerivedUnit();
69 DnaQuality dnaQuality = entity.getDnaQuality();
70 if(eventSource==textPurificationMethod){
71 dnaQuality.setPurificationMethod(textPurificationMethod.getText());
72 }
73 else if(eventSource==numberRatioOfAbsorbance260_230){
74 dnaQuality.setRatioOfAbsorbance260_230(numberRatioOfAbsorbance260_230.getDouble());
75 }
76 else if(eventSource==numberRatioOfAbsorbance260_280){
77 dnaQuality.setRatioOfAbsorbance260_280(numberRatioOfAbsorbance260_280.getDouble());
78 }
79 else if(eventSource==numberConcentration){
80 dnaQuality.setConcentration(numberConcentration.getDouble());
81 }
82 else if(eventSource==comboQualityTerm){
83 dnaQuality.setQualityTerm(comboQualityTerm.getSelection());
84 }
85 else if(eventSource==dateQualityCheck.getController()){
86 DateTime dateTime = dateQualityCheck.getController().getDateTime();
87
88 dnaQuality.setQualityCheckDate(dateTime);
89 }
90 }
91 }