Project

General

Profile

Download (5.94 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 java.net.URI;
12
import java.net.URISyntaxException;
13

    
14
import org.eclipse.swt.widgets.Text;
15

    
16
import eu.etaxonomy.cdm.model.common.DefinedTerm;
17
import eu.etaxonomy.cdm.model.common.TermType;
18
import eu.etaxonomy.cdm.model.molecular.Sequence;
19
import eu.etaxonomy.cdm.model.molecular.SequenceString;
20
import eu.etaxonomy.taxeditor.preference.Resources;
21
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
22
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
23
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
24
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
25
import eu.etaxonomy.taxeditor.ui.element.UriWithLabelElement;
26
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
27

    
28
/**
29
 * @author pplitzner
30
 * @date 19.12.2013
31
 *
32
 */
33
public class SequenceGeneralDetailElement extends AbstractCdmDetailElement<Sequence> {
34

    
35
    private TermComboElement<DefinedTerm> comboMarker;
36
    private TextWithLabelElement textConsensusSequence;
37
    private TextWithLabelElement textGeneticAccessNo;
38
    private UriWithLabelElement textNCBIUri;
39
    private UriWithLabelElement textENAUri;
40
    private UriWithLabelElement textDDBJUri;
41
    private TextWithLabelElement textBoldProcessID;
42
    private UriWithLabelElement textBoldUri;
43

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

    
52
    /*
53
     * (non-Javadoc)
54
     *
55
     * @see
56
     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
57
     * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
58
     */
59
    @Override
60
    protected void createControls(ICdmFormElement formElement, Sequence entity, int style) {
61
        comboMarker = formFactory.createDefinedTermComboElement(TermType.DnaMarker, formElement, "DNA Marker", entity.getDnaMarker(), style);
62
        textConsensusSequence = formFactory.createTextWithLabelElement(formElement, "Consensus Sequence 5'->3'", entity.getConsensusSequence().getString(), style);
63

    
64
        URI genBankUri = null;
65
        URI emblUri = null;
66
        URI ddbjUri = null;
67
        URI boldUri = null;
68
        try{
69
            genBankUri = entity.getGenBankUri();
70
            emblUri = entity.getEmblUri();
71
            ddbjUri = entity.getDdbjUri();
72
            boldUri = entity.getBoldUri();
73
        }
74
        catch(URISyntaxException e){
75

    
76
        }
77
        textGeneticAccessNo = formFactory.createTextWithLabelElement(formElement, "Genetic Acc. No.", entity.getGeneticAccessionNumber(), style);
78
        textNCBIUri = formFactory.createUriWithLabelElement(formElement, "NCBI URI", genBankUri, style);
79
        ((Text) textNCBIUri.getMainControl()).setEditable(false);
80
        textENAUri = formFactory.createUriWithLabelElement(formElement, "ENA URI", emblUri, style);
81
        ((Text) textENAUri.getMainControl()).setEditable(false);
82
        textDDBJUri = formFactory.createUriWithLabelElement(formElement, "DDBJ URI", ddbjUri, style);
83
        ((Text) textDDBJUri.getMainControl()).setEditable(false);
84
        textBoldProcessID = formFactory.createTextWithLabelElement(formElement, "BOLD Process ID", entity.getBoldProcessId(), style);
85
        textBoldUri = formFactory.createUriWithLabelElement(formElement, "BOLD URI", boldUri, style);
86
        ((Text) textBoldUri.getMainControl()).setEditable(false);
87
        ((Text) textBoldUri.getMainControl()).setToolTipText("Query BOLD");
88
    }
89

    
90
    /*
91
     * (non-Javadoc)
92
     *
93
     * @see
94
     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
95
     * .lang.Object)
96
     */
97
    @Override
98
    public void handleEvent(Object eventSource) {
99
        if(eventSource==comboMarker){
100
            getEntity().setDnaMarker(comboMarker.getSelection());
101
        }
102
        else if(eventSource==textConsensusSequence){
103
            SequenceString consensusSequence = getEntity().getConsensusSequence();
104
            if(consensusSequence==null){
105
                consensusSequence = SequenceString.NewInstance();
106
            }
107
            consensusSequence.setString(textConsensusSequence.getText());
108
            getEntity().setConsensusSequence(consensusSequence);
109
        }
110
        else if(eventSource==textGeneticAccessNo){
111
            textGeneticAccessNo.setBackground(getPersistentBackground());
112
            getEntity().setGeneticAccessionNumber(textGeneticAccessNo.getText());
113
            if(textGeneticAccessNo.getText()!=null && !textGeneticAccessNo.getText().isEmpty()){
114
                try {
115
                    textNCBIUri.setParsedText(getEntity().getGenBankUri());
116
                    textENAUri.setParsedText(getEntity().getEmblUri());
117
                    textDDBJUri.setParsedText(getEntity().getDdbjUri());
118
                } catch (URISyntaxException e) {
119
                    textGeneticAccessNo.setBackground(getColor(Resources.COLOR_PARSE_ERROR));
120
                }
121
            }
122
            else{
123
                textNCBIUri.setText("");
124
                textENAUri.setText("");
125
                textDDBJUri.setText("");
126
            }
127
        }
128
        else if(eventSource==textBoldProcessID){
129
            textBoldProcessID.setBackground(getPersistentBackground());
130
            getEntity().setBoldProcessId(textBoldProcessID.getText());
131
            if(textBoldProcessID.getText()!=null && !textBoldProcessID.getText().isEmpty()){
132
                try {
133
                    textBoldUri.setParsedText(getEntity().getBoldUri());
134
                } catch (URISyntaxException e) {
135
                    textBoldProcessID.setBackground(getColor(Resources.COLOR_PARSE_ERROR));
136
                }
137
            }
138
            else{
139
                textBoldUri.setText("");
140
            }
141
        }
142
    }
143

    
144
}
(24-24/32)