Project

General

Profile

Download (6.77 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 org.apache.log4j.Logger;
12

    
13
import eu.etaxonomy.cdm.api.service.IVocabularyService;
14
import eu.etaxonomy.cdm.model.agent.AgentBase;
15
import eu.etaxonomy.cdm.model.agent.Institution;
16
import eu.etaxonomy.cdm.model.common.DefinedTerm;
17
import eu.etaxonomy.cdm.model.common.TermType;
18
import eu.etaxonomy.cdm.model.common.TermVocabulary;
19
import eu.etaxonomy.cdm.model.common.TimePeriod;
20
import eu.etaxonomy.cdm.model.common.VocabularyEnum;
21
import eu.etaxonomy.cdm.model.molecular.DnaSample;
22
import eu.etaxonomy.cdm.model.occurrence.Collection;
23
import eu.etaxonomy.cdm.model.occurrence.PreservationMethod;
24
import eu.etaxonomy.taxeditor.store.CdmStore;
25
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
26
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
27
import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
28
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
29
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
30
import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
31
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
32
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
33

    
34
/**
35
 * @author pplitzner
36
 * @date 16.12.2013
37
 *
38
 */
39
public class TissueSampleGeneralDetailElement extends AbstractCdmDetailElement<DnaSample> {
40

    
41
    private final TermVocabulary plantKindOfUnitVocabulary = CdmStore.getService(IVocabularyService.class).find(VocabularyEnum.PlantKindOfUnit.getUuid());
42

    
43
    static private final Logger logger = Logger.getLogger(TissueSampleGeneralDetailElement.class);
44

    
45
    private TermComboElement<DefinedTerm> comboKindOfTissue;
46
    private EntitySelectionElement<Institution> selectionInstitution;
47
    private EntitySelectionElement<AgentBase> selectionStaff;
48
    private TimePeriodElement datePreparation;
49
    private TermComboElement<DefinedTerm> comboPreservationMedium;
50
    private EntitySelectionElement<Collection> selectionCollection;
51
    private TextWithLabelElement textAccessionNumber;
52
    private TextWithLabelElement textBarcode;
53
    private CheckboxElement checkIsPublish;
54

    
55

    
56
    /**
57
     * @param formFactory
58
     * @param formElement
59
     */
60
    public TissueSampleGeneralDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
61
        super(formFactory, formElement);
62
    }
63

    
64
    /*
65
     * (non-Javadoc)
66
     *
67
     * @see
68
     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
69
     * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
70
     */
71
    @Override
72
    protected void createControls(ICdmFormElement formElement, DnaSample entity, int style) {
73
        comboKindOfTissue = formFactory.createDefinedTermComboElement(plantKindOfUnitVocabulary, formElement, "Kind Of Tissue", entity.getKindOfUnit(), style);
74
        TimePeriod preparationDate = null;
75
        DefinedTerm preservationMedium = null;
76
        AgentBase<?> staff = null;
77
        Institution institution = null;
78
        if(entity.getDerivedFrom()!=null){
79
            staff = entity.getDerivedFrom().getActor();
80
            preparationDate = entity.getDerivedFrom().getTimeperiod();
81
            institution = entity.getDerivedFrom().getInstitution();
82
        }
83
        if(entity.getPreservation()!=null){
84
            preservationMedium = entity.getPreservation().getMedium();
85
        }
86
        selectionInstitution = formFactory.createSelectionElement(Institution.class, //getConversationHolder(),
87
                formElement, "Institution", institution, EntitySelectionElement.ALL, style);
88
        selectionStaff = formFactory.createSelectionElement(AgentBase.class, //getConversationHolder(),
89
                formElement, "Staff", staff, EntitySelectionElement.ALL,style);
90
        datePreparation = formFactory.createTimePeriodElement(formElement, "Preparation date", preparationDate, style);
91
        comboPreservationMedium = formFactory.createDefinedTermComboElement(TermType.MaterialOrMethod, formElement, "Preservation medium", preservationMedium, style);
92
        selectionCollection = formFactory.createSelectionElement(Collection.class, //getConversationHolder(),
93
                formElement, "Collection", entity.getCollection(), EntitySelectionElement.ALL, style);
94
        textAccessionNumber = formFactory.createTextWithLabelElement(formElement, "Accession Number", entity.getAccessionNumber(), style);
95
        textBarcode = formFactory.createTextWithLabelElement(formElement, "Barcode", entity.getBarcode(), style);
96
        checkIsPublish = formFactory.createCheckbox(formElement, "Publish", entity.isPublish(), style);
97

    
98
    }
99

    
100
    /*
101
     * (non-Javadoc)
102
     *
103
     * @see
104
     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
105
     * .lang.Object)
106
     */
107
    @Override
108
    public void handleEvent(Object eventSource) {
109
        if(eventSource==comboKindOfTissue) {
110
            getEntity().setKindOfUnit(comboKindOfTissue.getSelection());
111
        }
112
        else if(eventSource==comboPreservationMedium) {
113
            addPreservationMethod().setMedium(comboPreservationMedium.getSelection());
114
        }
115
        else if(eventSource==selectionCollection){
116
            getEntity().setCollection(selectionCollection.getSelection());
117
        }
118
        else if(eventSource==textAccessionNumber){
119
            getEntity().setAccessionNumber(textAccessionNumber.getText());
120
        }
121
        else if(eventSource==textBarcode){
122
            getEntity().setBarcode(textBarcode.getText());
123
        }
124
        else if(eventSource==datePreparation){
125
            if(getEntity().getDerivedFrom()!=null){
126
                getEntity().getDerivedFrom().setTimeperiod(datePreparation.getTimePeriod());
127
            }
128
        }
129
        else if(eventSource==selectionInstitution){
130
            if(getEntity().getDerivedFrom()!=null){
131
                getEntity().getDerivedFrom().setInstitution(selectionInstitution.getSelection());
132
            }
133
        }
134
        else if(eventSource==selectionStaff){
135
            if(getEntity().getDerivedFrom()!=null){
136
                getEntity().getDerivedFrom().setActor(selectionStaff.getSelection());
137
            }
138
        }
139
        else if(eventSource==checkIsPublish){
140
            getEntity().setPublish(checkIsPublish.getSelection());
141
        }
142
    }
143

    
144
    private PreservationMethod addPreservationMethod(){
145
        PreservationMethod preservationMethod = null;
146
        preservationMethod = getEntity().getPreservation();
147
        if(getEntity().getPreservation()==null){
148
            preservationMethod = PreservationMethod.NewInstance();
149
            getEntity().setPreservation(preservationMethod);
150
        }
151
        return preservationMethod;
152
    }
153
}
(31-31/32)