Project

General

Profile

Download (4.85 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
 * Copyright (C) 2013 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 eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
12
import eu.etaxonomy.cdm.model.agent.AgentBase;
13
import eu.etaxonomy.cdm.model.agent.Institution;
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.element.CdmFormFactory;
18
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
19
import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
20
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
21
import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
22
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
23
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
24

    
25
/**
26
 * @author pplitzner
27
 * @date 16.12.2013
28
 */
29
public class DnaSamplePreparationPreservationDetailElement extends AbstractCdmDetailElement<DerivedUnitFacade> {
30

    
31
    private EntitySelectionElement<Institution> selectionInstitution;
32
    private EntitySelectionElement<AgentBase> selectionStaff;
33
    private TimePeriodElement datePreparationDate;
34
    private NumberWithLabelElement numberPreservationTemperature;
35
    private TextWithLabelElement txtMaterialOrMethods;
36

    
37
    public DnaSamplePreparationPreservationDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
38
        super(formFactory, formElement);
39
    }
40

    
41
    @Override
42
    protected void createControls(ICdmFormElement formElement, DerivedUnitFacade facade, int style) {
43
        Institution institution = null;
44
        AgentBase<?> staff = null;
45
        TimePeriod preparationDate = null;
46
        DnaSample entity = (DnaSample)facade.innerDerivedUnit();
47
        if(entity.getDerivedFrom()!=null){
48
            institution = entity.getDerivedFrom().getInstitution();
49
            staff = entity.getDerivedFrom().getActor();
50
            preparationDate = entity.getDerivedFrom().getTimeperiod();
51
        }
52

    
53
        Double temperature = null;
54
        String materialOrMethodText = null;
55
        if(entity.getPreservation()!=null){
56
            temperature = entity.getPreservation().getTemperature();
57
        }
58
        if(entity.getDerivedFrom()!=null){
59
            materialOrMethodText = entity.getDerivedFrom().getDescription();
60
        }
61
        selectionInstitution = formFactory.createSelectionElement(Institution.class, //getConversationHolder(),
62
                formElement, "Institution", institution, EntitySelectionElement.ALL, style);
63
        selectionStaff = formFactory.createSelectionElement(AgentBase.class, //getConversationHolder(),
64
                formElement, "Staff", staff, EntitySelectionElement.ALL, style);
65
        datePreparationDate = formFactory.createTimePeriodElement(formElement, "Preparation date", preparationDate, style);
66
        numberPreservationTemperature = formFactory.createFloatTextWithLabelElement(formElement, "Preservation Temp. [C°]", temperature, style);
67
        txtMaterialOrMethods = formFactory.createTextWithLabelElement(formElement, "Materials && Methods", materialOrMethodText, style);
68

    
69
    }
70

    
71
    @Override
72
    public void handleEvent(Object eventSource) {
73
        DnaSample entity = (DnaSample)getEntity().innerDerivedUnit();
74
        if(eventSource==datePreparationDate){
75
            if(entity.getDerivedFrom()!=null){
76
                entity.getDerivedFrom().setTimeperiod(datePreparationDate.getTimePeriod());
77
            }
78
        }
79
        else if(eventSource==selectionInstitution){
80
            if(entity.getDerivedFrom()!=null){
81
                entity.getDerivedFrom().setInstitution(selectionInstitution.getSelection());
82
            }
83
        }
84
        else if(eventSource==selectionStaff){
85
            if(entity.getDerivedFrom()!=null){
86
                entity.getDerivedFrom().setActor(selectionStaff.getSelection());
87
            }
88
        }
89
        else if(eventSource==numberPreservationTemperature && numberPreservationTemperature.getText()!=null){
90
            addPreservationMethod().setTemperature(numberPreservationTemperature.getDouble());
91
        }
92
        else if(eventSource==txtMaterialOrMethods && entity.getDerivedFrom()!=null){
93
            entity.getDerivedFrom().setDescription(txtMaterialOrMethods.getText());
94
        }
95
    }
96

    
97
    private PreservationMethod addPreservationMethod(){
98
        DnaSample entity = (DnaSample)getEntity().innerDerivedUnit();
99
        PreservationMethod preservationMethod = entity.getPreservation();
100
        if(preservationMethod==null){
101
            preservationMethod = PreservationMethod.NewInstance();
102
            entity.setPreservation(preservationMethod);
103
        }
104
        return preservationMethod;
105
    }
106
}
(16-16/32)