Project

General

Profile

Download (4.59 KB) Statistics
| Branch: | Tag: | Revision:
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.TimePeriod;
15
import eu.etaxonomy.cdm.model.molecular.DnaSample;
16
import eu.etaxonomy.cdm.model.occurrence.PreservationMethod;
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.element.TimePeriodElement;
23
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
24
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
25

    
26
/**
27
 * @author pplitzner
28
 * @date 16.12.2013
29
 *
30
 */
31
public class DnaSampleGeneralDetailElement extends AbstractCdmDetailElement<DnaSample> {
32

    
33

    
34
    private TimePeriodElement datePreservationDate;
35
    private EntitySelectionElement<AgentBase> selectionPreparedBy;
36
    private NumberWithLabelElement numberPreservationTemperature;
37
    private TermComboElement<DefinedTerm> comboMaterialOrMethods;
38
    private TextWithLabelElement textBarcode;
39

    
40
    /**
41
     * @param formFactory
42
     * @param formElement
43
     */
44
    public DnaSampleGeneralDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
45
        super(formFactory, formElement);
46
    }
47

    
48
    /*
49
     * (non-Javadoc)
50
     *
51
     * @see
52
     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
53
     * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
54
     */
55
    @Override
56
    protected void createControls(ICdmFormElement formElement, DnaSample entity, int style) {
57
        TimePeriod timePeriod = null;
58
        AgentBase actor = null;
59
        Double temperature = null;
60
        DefinedTerm definedMaterialOrMethod = null;
61
        if(entity.getPreservation()!=null){
62
            timePeriod= entity.getPreservation().getTimeperiod();
63
            actor = entity.getPreservation().getActor();
64
            temperature = entity.getPreservation().getTemperature();
65
            definedMaterialOrMethod = entity.getPreservation().getDefinedMaterialOrMethod();
66
        }
67
        datePreservationDate = formFactory.createTimePeriodElement(formElement, "Preservation date", timePeriod, style);
68
        // TODO sample designation
69
        selectionPreparedBy = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Prepared by", actor, EntitySelectionElement.ALL, style);
70
        numberPreservationTemperature = formFactory.createNumberTextWithLabelElement(formElement, "Preservation Temp. [C°]", temperature, style);
71
        comboMaterialOrMethods = formFactory.createTermComboElement(DefinedTerm.class, formElement, "Materials & Methods", definedMaterialOrMethod, style);
72
        //TODO preparation date
73
        //TODO sample type
74
        textBarcode = formFactory.createTextWithLabelElement(formElement, "Barcode", entity.getBarcode(), style);
75
    }
76

    
77
    /*
78
     * (non-Javadoc)
79
     *
80
     * @see
81
     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
82
     * .lang.Object)
83
     */
84
    @Override
85
    public void handleEvent(Object eventSource) {
86
        if(eventSource==datePreservationDate){
87
            addPreservationMethod().setTimeperiod(datePreservationDate.getTimePeriod());
88
        }
89
        else if(eventSource==selectionPreparedBy){
90
            addPreservationMethod().setActor(selectionPreparedBy.getSelection());
91
        }
92
        else if(eventSource==numberPreservationTemperature){
93
            addPreservationMethod().setTemperature(numberPreservationTemperature.getDouble());
94
        }
95
        else if(eventSource==comboMaterialOrMethods){
96
            addPreservationMethod().setDefinedMaterialOrMethod(comboMaterialOrMethods.getSelection());
97
        }
98
        else if(eventSource==textBarcode){
99
            getEntity().setBarcode(textBarcode.getText());
100
        }
101
    }
102

    
103
    private PreservationMethod addPreservationMethod(){
104
        PreservationMethod preservationMethod = getEntity().getPreservation();
105
        if(getEntity().getPreservation()==null){
106
            preservationMethod = PreservationMethod.NewInstance();
107
            getEntity().setPreservation(preservationMethod);
108
        }
109
        return preservationMethod;
110
    }
111
}
(11-11/22)