Project

General

Profile

Download (4.29 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.common.DefinedTerm;
13
import eu.etaxonomy.cdm.model.molecular.Primer;
14
import eu.etaxonomy.cdm.model.molecular.SequenceString;
15
import eu.etaxonomy.cdm.model.reference.Reference;
16
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
17
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
18
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
19
import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
20
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
21
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
22
import eu.etaxonomy.taxeditor.ui.section.supplemental.AnnotationSection;
23
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
24

    
25
/**
26
 * @author pplitzner
27
 * @date 06.01.2014
28
 *
29
 */
30
public class PrimerGeneralDetailElement extends AbstractCdmDetailElement<Primer> {
31

    
32

    
33
    private TextWithLabelElement textPrimerName;
34
    // we are using a basic text field which is backed up by a Sequence object modelwise.
35
    // This is a bit of a overhead as we may just need the sequence string. This may change in future in both directions:
36
    // either extending this view to support the remaining fields of Sequence or by switching to the more basic SequenceString model element
37
    private TextWithLabelElement textPrimerSequence;
38
    private TermComboElement<DefinedTerm> comboMarker;
39
    private EntitySelectionElement<Reference> selectionReference;
40

    
41
    /**
42
     * @param formFactory
43
     * @param formElement
44
     */
45
    public PrimerGeneralDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
46
        super(formFactory, formElement);
47
    }
48

    
49
    /*
50
     * (non-Javadoc)
51
     *
52
     * @see
53
     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
54
     * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
55
     */
56
    @Override
57
    protected void createControls(ICdmFormElement formElement, Primer entity, int style) {
58
        textPrimerName = formFactory.createTextWithLabelElement(formElement, "Primer Name", entity.getLabel(), style);
59
        String sequenceString = "";
60
        if(entity.getSequence()!=null){
61
            sequenceString = entity.getSequence().getString();
62
        }
63
        textPrimerSequence = formFactory.createTextWithLabelElement(formElement, "Primer seq. 5'->3'", sequenceString, style);
64

    
65
        //TODO dnaMarker
66
//        comboMarker = formFactory.createDefinedTermComboElement(TermType.DnaMarker, formElement, "DNA Marker", entity.getDnaMarker(), style);
67

    
68
        selectionReference = formFactory
69
                .createSelectionElement(Reference.class,
70
                        getConversationHolder(), formElement, "Reference",
71
                        entity.getPublishedIn(),
72
                        EntitySelectionElement.ALL, style);
73

    
74
        AnnotationSection annotationSection = formFactory.createAnnotationSection(getConversationHolder(), formElement, style);
75
        annotationSection.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
76
        annotationSection.setEntity(entity);
77
    }
78

    
79
    /*
80
     * (non-Javadoc)
81
     *
82
     * @see
83
     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
84
     * .lang.Object)
85
     */
86
    @Override
87
    public void handleEvent(Object eventSource) {
88
        if(eventSource==textPrimerName){
89
            getEntity().setLabel(textPrimerName.getText());
90
        }
91
        else if(eventSource==comboMarker){
92
            //TODO dnaMarker
93
//            getEntity().setDnaMarker(comboMarker.getSelection());
94
        }
95
        else if(eventSource==textPrimerSequence){
96
            SequenceString sequenceString = getEntity().getSequence();
97
            if(sequenceString==null){
98
                sequenceString = SequenceString.NewInstance("");
99
                getEntity().setSequence(sequenceString);
100
            }
101
            sequenceString.setString(textPrimerSequence.getText());
102
        }
103
        else if(eventSource==selectionReference){
104
            getEntity().setPublishedIn(selectionReference.getSelection());
105
        }
106
    }
107
}
(16-16/30)