Project

General

Profile

Download (5.68 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 datePreparationDate;
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
        selectionInstitution = formFactory.createSelectionElement(Institution.class, getConversationHolder(), formElement, "Institution", institution, EntitySelectionElement.ALL, style);
77
        selectionStaff = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Staff", staff, EntitySelectionElement.ALL, style);
78
        datePreparationDate = formFactory.createTimePeriodElement(formElement, "Preparation date", preparationDate, style);
79
        numberPreservationTemperature = formFactory.createNumberTextWithLabelElement(formElement, "Preservation Temp. [C°]", temperature, style);
80
        comboMaterialOrMethods = formFactory.createDefinedTermComboElement(TermType.MaterialOrMethod, formElement, "Materials & Methods", definedMaterialOrMethod, style);
81
        textBarcode = formFactory.createTextWithLabelElement(formElement, "Barcode", entity.getBarcode(), style);
82
        checkIsPublish = formFactory.createCheckbox(formElement, "Publish", entity.isPublish(), style);
83

    
84
    }
85

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

    
124
    private PreservationMethod addPreservationMethod(){
125
        PreservationMethod preservationMethod = getEntity().getPreservation();
126
        if(preservationMethod==null){
127
            preservationMethod = PreservationMethod.NewInstance();
128
            getEntity().setPreservation(preservationMethod);
129
        }
130
        return preservationMethod;
131
    }
132
}
(14-14/30)