Project

General

Profile

Download (6.49 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.facade.DerivedUnitFacade;
14
import eu.etaxonomy.cdm.api.service.IVocabularyService;
15
import eu.etaxonomy.cdm.model.agent.AgentBase;
16
import eu.etaxonomy.cdm.model.agent.Institution;
17
import eu.etaxonomy.cdm.model.common.TimePeriod;
18
import eu.etaxonomy.cdm.model.occurrence.Collection;
19
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
20
import eu.etaxonomy.cdm.model.occurrence.PreservationMethod;
21
import eu.etaxonomy.cdm.model.term.DefinedTerm;
22
import eu.etaxonomy.cdm.model.term.TermType;
23
import eu.etaxonomy.cdm.model.term.TermVocabulary;
24
import eu.etaxonomy.cdm.model.term.VocabularyEnum;
25
import eu.etaxonomy.taxeditor.store.CdmStore;
26
import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
27
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
28
import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
29
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
30
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
31
import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
32
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
33
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
34

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

    
41
    @SuppressWarnings("unused")
42
    static private final Logger logger = Logger.getLogger(TissueSampleGeneralDetailElement.class);
43

    
44
    private final TermVocabulary<?> plantKindOfUnitVocabulary = CdmStore.getService(IVocabularyService.class).find(VocabularyEnum.PlantKindOfUnit.getUuid());
45

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

    
56
    public TissueSampleGeneralDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
57
        super(formFactory, formElement);
58
    }
59

    
60
    @Override
61
    protected void createControls(ICdmFormElement formElement, DerivedUnitFacade facade, int style) {
62
        DerivedUnit entity = getEntity().innerDerivedUnit();
63

    
64
        comboKindOfTissue = formFactory.createDefinedTermComboElement(plantKindOfUnitVocabulary, formElement, "Kind Of Tissue", entity.getKindOfUnit(), style);
65
        TimePeriod preparationDate = null;
66
        DefinedTerm preservationMedium = null;
67
        AgentBase<?> staff = null;
68
        Institution institution = null;
69
        if(entity.getDerivedFrom()!=null){
70
            staff = entity.getDerivedFrom().getActor();
71
            preparationDate = entity.getDerivedFrom().getTimeperiod();
72
            institution = entity.getDerivedFrom().getInstitution();
73
        }
74
        if(entity.getPreservation()!=null){
75
            preservationMedium = entity.getPreservation().getMedium();
76
        }
77
        selectionInstitution = formFactory.createSelectionElement(Institution.class,
78
                formElement, "Institution", institution, EntitySelectionElement.ALL, style);
79
        selectionStaff = formFactory.createSelectionElement(AgentBase.class,
80
                formElement, "Staff", staff, EntitySelectionElement.ALL,style);
81
        datePreparation = formFactory.createTimePeriodElement(formElement, "Preparation date", preparationDate, style);
82
        comboPreservationMedium = formFactory.createDefinedTermComboElement(TermType.MaterialOrMethod, formElement, "Preservation medium", preservationMedium, style);
83
        selectionCollection = formFactory.createSelectionElement(Collection.class,
84
                formElement, "Collection", entity.getCollection(), EntitySelectionElement.ALL, style);
85
        textAccessionNumber = formFactory.createTextWithLabelElement(formElement, "Accession Number", entity.getAccessionNumber(), style);
86
        textBarcode = formFactory.createTextWithLabelElement(formElement, "Barcode", entity.getBarcode(), style);
87
        checkIsPublish = formFactory.createCheckbox(formElement, "Publish", entity.isPublish(), style);
88

    
89
    }
90

    
91
    @Override
92
    public void handleEvent(Object eventSource) {
93
        DerivedUnit entity = getEntity().innerDerivedUnit();
94
        if(eventSource==comboKindOfTissue) {
95
            entity.setKindOfUnit(comboKindOfTissue.getSelection());
96
        }
97
        else if(eventSource==comboPreservationMedium) {
98
            addPreservationMethod().setMedium(comboPreservationMedium.getSelection());
99
        }
100
        else if(eventSource==selectionCollection){
101
            getEntity().setCollection(selectionCollection.getSelection());
102
        }
103
        else if(eventSource==textAccessionNumber){
104
            getEntity().setAccessionNumber(textAccessionNumber.getText());
105
        }
106
        else if(eventSource==textBarcode){
107
            getEntity().setBarcode(textBarcode.getText());
108
        }
109
        else if(eventSource==datePreparation){
110
            if(entity.getDerivedFrom()!=null){
111
                entity.getDerivedFrom().setTimeperiod(datePreparation.getTimePeriod());
112
            }
113
        }
114
        else if(eventSource==selectionInstitution){
115
            if(entity.getDerivedFrom()!=null){
116
                entity.getDerivedFrom().setInstitution(selectionInstitution.getSelection());
117
            }
118
        }
119
        else if(eventSource==selectionStaff){
120
            if(entity.getDerivedFrom()!=null){
121
                entity.getDerivedFrom().setActor(selectionStaff.getSelection());
122
            }
123
        }
124
        else if(eventSource==checkIsPublish){
125
            entity.setPublish(checkIsPublish.getSelection());
126
        }
127
    }
128

    
129
    private PreservationMethod addPreservationMethod(){
130
        DerivedUnit entity = getEntity().innerDerivedUnit();
131
        PreservationMethod preservationMethod = null;
132
        preservationMethod = entity.getPreservation();
133
        if(entity.getPreservation()==null){
134
            preservationMethod = PreservationMethod.NewInstance();
135
            entity.setPreservation(preservationMethod);
136
        }
137
        return preservationMethod;
138
    }
139
}
(31-31/32)