Project

General

Profile

Download (5.34 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.agent.Institution;
14
import eu.etaxonomy.cdm.model.common.DefinedTerm;
15
import eu.etaxonomy.cdm.model.common.TermType;
16
import eu.etaxonomy.cdm.model.common.TimePeriod;
17
import eu.etaxonomy.cdm.model.molecular.DnaSample;
18
import eu.etaxonomy.cdm.model.occurrence.PreservationMethod;
19
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
20
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
21
import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
22
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
23
import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
24
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
25
import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
26
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
27
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
28

    
29
/**
30
 * @author pplitzner
31
 * @date 16.12.2013
32
 *
33
 */
34
public class DnaSampleGeneralDetailElement extends AbstractCdmDetailElement<DnaSample> {
35

    
36
    private EntitySelectionElement<Institution> selectionInstitution;
37
    private EntitySelectionElement<AgentBase> selectionStaff;
38
    private TimePeriodElement datePreservationDate;
39
    private NumberWithLabelElement numberPreservationTemperature;
40
    private TermComboElement<DefinedTerm> comboMaterialOrMethods;
41
    private TextWithLabelElement textBarcode;
42
    private CheckboxElement checkIsPublish;
43

    
44
    /**
45
     * @param formFactory
46
     * @param formElement
47
     */
48
    public DnaSampleGeneralDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
49
        super(formFactory, formElement);
50
    }
51

    
52
    /*
53
     * (non-Javadoc)
54
     *
55
     * @see
56
     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
57
     * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
58
     */
59
    @Override
60
    protected void createControls(ICdmFormElement formElement, DnaSample entity, int style) {
61
        Institution institution = null;
62
        AgentBase<?> staff = null;
63
        TimePeriod preparationDate = null;
64
        if(entity.getDerivedFrom()!=null){
65
//            institution = entity.getDerivedFrom().getInstitution();
66
            staff = entity.getDerivedFrom().getActor();
67
            preparationDate = entity.getDerivedFrom().getTimeperiod();
68
        }
69

    
70
        Double temperature = null;
71
        DefinedTerm definedMaterialOrMethod = null;
72
        if(entity.getPreservation()!=null){
73
            temperature = entity.getPreservation().getTemperature();
74
            definedMaterialOrMethod = entity.getPreservation().getDefinedMaterialOrMethod();
75
        }
76
        //TODO institution
77
//        selectionInstitution = formFactory.createSelectionElement(Institution.class, getConversationHolder(), formElement, "Institution", staff, EntitySelectionElement.ALL, style);
78
        selectionStaff = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Staff", staff, EntitySelectionElement.ALL, style);
79
        datePreservationDate = formFactory.createTimePeriodElement(formElement, "Preparation date", preparationDate, style);
80
        numberPreservationTemperature = formFactory.createNumberTextWithLabelElement(formElement, "Preservation Temp. [C°]", temperature, style);
81
        comboMaterialOrMethods = formFactory.createDefinedTermComboElement(TermType.MaterialOrMethod, formElement, "Materials & Methods", definedMaterialOrMethod, style);
82
        textBarcode = formFactory.createTextWithLabelElement(formElement, "Barcode", entity.getBarcode(), style);
83
        checkIsPublish = formFactory.createCheckbox(formElement, "Publish", entity.isPublish(), style);
84

    
85
    }
86

    
87
    /*
88
     * (non-Javadoc)
89
     *
90
     * @see
91
     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
92
     * .lang.Object)
93
     */
94
    @Override
95
    public void handleEvent(Object eventSource) {
96
        if(eventSource==datePreservationDate){
97
            addPreservationMethod().setTimeperiod(datePreservationDate.getTimePeriod());
98
        }
99
        else if(eventSource==selectionStaff){
100
            addPreservationMethod().setActor(selectionStaff.getSelection());
101
        }
102
        else if(eventSource==numberPreservationTemperature){
103
            addPreservationMethod().setTemperature(numberPreservationTemperature.getDouble());
104
        }
105
        else if(eventSource==comboMaterialOrMethods){
106
            addPreservationMethod().setDefinedMaterialOrMethod(comboMaterialOrMethods.getSelection());
107
        }
108
        else if(eventSource==textBarcode){
109
            getEntity().setBarcode(textBarcode.getText());
110
        }
111
        else if(eventSource==checkIsPublish){
112
            getEntity().setPublish(checkIsPublish.getSelection());
113
        }
114
    }
115

    
116
    private PreservationMethod addPreservationMethod(){
117
        PreservationMethod preservationMethod = getEntity().getPreservation();
118
        if(preservationMethod==null){
119
            preservationMethod = PreservationMethod.NewInstance();
120
            getEntity().setPreservation(preservationMethod);
121
        }
122
        return preservationMethod;
123
    }
124
}
(14-14/30)