Project

General

Profile

Download (6.61 KB) Statistics
| Branch: | Tag: | Revision:
1
// $Id$
2
/**
3
 * Copyright (C) 2014 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.common.DefinedTerm;
14
import eu.etaxonomy.cdm.model.molecular.Primer;
15
import eu.etaxonomy.cdm.model.molecular.Sequence;
16
import eu.etaxonomy.cdm.model.molecular.SequenceString;
17
import eu.etaxonomy.cdm.model.molecular.SingleRead;
18
import eu.etaxonomy.cdm.model.reference.Reference;
19
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
20
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
21
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
22
import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
23
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
24
import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
25
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
26
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
27

    
28
/**
29
 * @author pplitzner
30
 * @date 06.01.2014
31
 *
32
 */
33
public class SingleReadGeneralDetailElement extends AbstractCdmDetailElement<SingleRead> {
34

    
35

    
36
    private TimePeriodElement dateElement;
37
    private EntitySelectionElement<AgentBase> selectionSequencingStaff;
38
    private TermComboElement<DefinedTerm> comboMaterialOrMethod;
39
    private NumberWithLabelElement numberReadLength;
40
    private TextWithLabelElement textEditedSequence;
41
    private TextWithLabelElement textPrimerName;
42
    private TextWithLabelElement textPrimerSequence;
43
    private EntitySelectionElement<Reference> selectionReference;
44

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

    
53
    /*
54
     * (non-Javadoc)
55
     *
56
     * @see
57
     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
58
     * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
59
     */
60
    @Override
61
    protected void createControls(ICdmFormElement formElement, SingleRead entity, int style) {
62

    
63
//        dateElement = formFactory.createTimePeriodElement(formElement, "Sequencing Date", entity.getDateSequenced(), style);
64
//        selectionSequencingStaff = formFactory
65
//                .createSelectionElement(AgentBase.class,
66
//                        getConversationHolder(), formElement, "Sequencing Staff",
67
//                        null,
68
//                        EntitySelectionElement.ALL, style);
69
//        MaterialOrMethodEvent materialOrMethod = entity.getMaterialOrMethod();
70
//        DefinedTerm definedMaterialOrMethod = null;
71
//        if(materialOrMethod!=null){
72
//            definedMaterialOrMethod = materialOrMethod.getDefinedMaterialOrMethod();
73
//        }
74
//        comboMaterialOrMethod = formFactory.createTermComboElement(DefinedTerm.class, formElement, "Mat. & Meth.", definedMaterialOrMethod, style);
75
//
76
//        //TODO sequence can be null if DerivateView is opened again. Why?? When initially created it is not null
77
//        SequenceString editedSequence = entity.getSequence();
78
//        Integer readLength = 0;
79
//        String editedSequenceString = "";
80
//        if(editedSequence!=null){
81
//            Integer length = editedSequence.getLength();
82
//            if(length!=null){
83
//                readLength = length;
84
//            }
85
//            editedSequenceString = editedSequence.getString();
86
//        }
87
//        textReadLength = formFactory.createNumberTextWithLabelElement(formElement, "Read Length", readLength, style);
88
//        textEditedSequence = formFactory.createTextWithLabelElement(formElement, "Edited Sequence 5'->3'", editedSequenceString, style);
89

    
90
        Primer primer = entity.getPrimer();
91
        String primerLabel = "";
92
        String primerSequence = "";
93
        Reference primerReference = null;
94
        if(primer!=null){
95
           primerLabel = primer.getLabel();
96
           primerSequence = primer.getSequence()==null?"":primer.getSequence().getSequenceString();
97
           primerReference = primer.getPublishedIn();
98
        }
99
        textPrimerName = formFactory.createTextWithLabelElement(formElement, "Primer Name", primerLabel, style);
100
        textPrimerSequence = formFactory.createTextWithLabelElement(formElement, "Primer seq. 5'->3'", primerSequence, style);
101

    
102
        selectionReference = formFactory
103
                .createSelectionElement(Reference.class,
104
                        getConversationHolder(), formElement, "Reference",
105
                        primerReference,
106
                        EntitySelectionElement.ALL, style);
107
    }
108

    
109
    /*
110
     * (non-Javadoc)
111
     *
112
     * @see
113
     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
114
     * .lang.Object)
115
     */
116
    @Override
117
    public void handleEvent(Object eventSource) {
118
        if(eventSource==dateElement){
119
            getEntity().setDateSequenced(dateElement.getTimePeriod());
120
        }
121
        else if(eventSource==selectionSequencingStaff){
122
            getEntity().setActor(selectionSequencingStaff.getSelection());
123
        }
124
        else if(eventSource==comboMaterialOrMethod){
125
            getEntity().getMaterialOrMethod().setDefinedMaterialOrMethod(comboMaterialOrMethod.getSelection());
126
        }
127
        else if(eventSource==numberReadLength){
128
            getEditedSequence().setLength(numberReadLength.getInteger());
129
        }
130
        else if(eventSource==textEditedSequence){
131
            getEditedSequence().setString(textEditedSequence.getText());
132
        }
133
        else if(eventSource==textPrimerName){
134
            getPrimer().setLabel(textPrimerName.getText());
135
        }
136
        else if(eventSource==textPrimerSequence){
137
            Sequence sequence = getPrimer().getSequence();
138
            if(sequence==null){
139
                sequence = Sequence.NewInstance("");
140
            }
141
            sequence.setSequenceString(textPrimerSequence.getText());
142
        }
143
        else if(eventSource==selectionReference){
144
            getPrimer().setPublishedIn(selectionReference.getSelection());
145
        }
146
    }
147

    
148
    /**
149
     * @return
150
     */
151
    private SequenceString getEditedSequence() {
152
        SequenceString sequence = getEntity().getSequence();
153
        if(sequence==null){
154
            sequence = SequenceString.NewInstance();
155
        }
156
        return sequence;
157
    }
158

    
159
    private Primer getPrimer(){
160
        Primer primer = getEntity().getPrimer();
161
        if(primer==null){
162
            primer = Primer.NewInstance("");
163
        }
164
        return primer;
165
    }
166

    
167
}
(18-18/22)