3384b2571cc00ef67a3ea55fca4ae88fbe0b5fbe
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / occurrence / dna / DnaQualityDetailElement.java
1 // $Id$
2 /**
3 * Copyright (C) 2014 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 org.joda.time.DateTime;
13
14 import eu.etaxonomy.cdm.model.common.DefinedTerm;
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 //TODO: add vocabulary
33 // private final TermType qualityTermVocabulary = CdmStore.getService(IVocabularyService.class).find(VocabularyEnum.DnaQualityTerm.getUuid());
34
35 private TextWithLabelElement textPurificationMethod;
36 private NumberWithLabelElement numberRatioOfAbsorbance260_280;
37 private NumberWithLabelElement numberRatioOfAbsorbance260_230;
38 private NumberWithLabelElement numberConcentration;
39 private TermComboElement<DefinedTerm> comboQualityTerm;
40 private DateElement dateQualityCheck;
41
42 /**
43 * @param formFactory
44 * @param formElement
45 */
46 public DnaQualityDetailElement(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 DnaQuality dnaQuality = entity.getDnaQuality();
60 if(dnaQuality==null){
61 dnaQuality = DnaQuality.NewInstance();
62 entity.setDnaQuality(dnaQuality);
63 }
64 Double ratioOfAbsorbance260_230 = dnaQuality.getRatioOfAbsorbance260_230();
65 Double ratioOfAbsorbance260_280 = dnaQuality.getRatioOfAbsorbance260_280();
66 Double concentration = dnaQuality.getConcentration();
67 //TODO quality term
68 DefinedTerm 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(qualityTermVocabulary, formElement, "Quality Term", qualityTerm, style);
75 dateQualityCheck = formFactory.createDateElement(formElement, "Quality Check", dnaQuality.getQualityCheckDate(), 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 DnaQuality dnaQuality = getEntity().getDnaQuality();
88 if(eventSource==textPurificationMethod){
89 dnaQuality.setPurificationMethod(textPurificationMethod.getText());
90 }
91 else if(eventSource==numberRatioOfAbsorbance260_230){
92 dnaQuality.setRatioOfAbsorbance260_230(numberRatioOfAbsorbance260_230.getDouble());
93 }
94 else if(eventSource==numberRatioOfAbsorbance260_280){
95 dnaQuality.setRatioOfAbsorbance260_280(numberRatioOfAbsorbance260_280.getDouble());
96 }
97 else if(eventSource==numberConcentration){
98 dnaQuality.setConcentration(numberConcentration.getDouble());
99 }
100 else if(eventSource==comboQualityTerm){
101 dnaQuality.setQualityTerm(comboQualityTerm.getSelection());
102 }
103 else if(eventSource==dateQualityCheck.getController()){
104 DateTime dateTime = dateQualityCheck.getController().getDateTime();
105 dnaQuality.setQualityCheckDate(dateTime);
106 }
107 }
108 }