3 * Copyright (C) 2013 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
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.
10 package eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.dna
;
13 import java
.net
.URISyntaxException
;
15 import org
.eclipse
.swt
.widgets
.Text
;
17 import eu
.etaxonomy
.cdm
.model
.common
.DefinedTerm
;
18 import eu
.etaxonomy
.cdm
.model
.common
.TermType
;
19 import eu
.etaxonomy
.cdm
.model
.molecular
.Sequence
;
20 import eu
.etaxonomy
.cdm
.model
.molecular
.SequenceString
;
21 import eu
.etaxonomy
.taxeditor
.preference
.Resources
;
22 import eu
.etaxonomy
.taxeditor
.ui
.combo
.TermComboElement
;
23 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmFormFactory
;
24 import eu
.etaxonomy
.taxeditor
.ui
.element
.ICdmFormElement
;
25 import eu
.etaxonomy
.taxeditor
.ui
.element
.TextWithLabelElement
;
26 import eu
.etaxonomy
.taxeditor
.ui
.element
.UriWithLabelElement
;
27 import eu
.etaxonomy
.taxeditor
.ui
.section
.AbstractCdmDetailElement
;
34 public class SequenceGeneralDetailElement
extends AbstractCdmDetailElement
<Sequence
> {
36 private TermComboElement
<DefinedTerm
> comboMarker
;
37 private TextWithLabelElement textConsensusSequence
;
38 private TextWithLabelElement textGeneticAccessNo
;
39 private UriWithLabelElement textNCBIUri
;
40 private UriWithLabelElement textENAUri
;
41 private UriWithLabelElement textDDBJUri
;
42 private TextWithLabelElement textBoldProcessID
;
43 private UriWithLabelElement textBoldUri
;
49 public SequenceGeneralDetailElement(CdmFormFactory formFactory
, ICdmFormElement formElement
) {
50 super(formFactory
, formElement
);
57 * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
58 * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
61 protected void createControls(ICdmFormElement formElement
, Sequence entity
, int style
) {
62 comboMarker
= formFactory
.createDefinedTermComboElement(TermType
.DnaMarker
, formElement
, "DNA Marker", entity
.getDnaMarker(), style
);
63 textConsensusSequence
= formFactory
.createTextWithLabelElement(formElement
, "Consensus Sequence 5'->3'", entity
.getConsensusSequence().getString(), style
);
65 URI genBankUri
= null;
70 genBankUri
= entity
.getGenBankUri();
71 emblUri
= entity
.getEmblUri();
72 ddbjUri
= entity
.getDdbjUri();
73 boldUri
= entity
.getBoldUri();
75 catch(URISyntaxException e
){
78 textGeneticAccessNo
= formFactory
.createTextWithLabelElement(formElement
, "Genetic Acc. No.", entity
.getGeneticAccessionNumber(), style
);
79 textNCBIUri
= formFactory
.createUriWithLabelElement(formElement
, "NCBI URI", genBankUri
, style
);
80 ((Text
) textNCBIUri
.getMainControl()).setEditable(false);
81 textENAUri
= formFactory
.createUriWithLabelElement(formElement
, "ENA URI", emblUri
, style
);
82 ((Text
) textENAUri
.getMainControl()).setEditable(false);
83 textDDBJUri
= formFactory
.createUriWithLabelElement(formElement
, "DDBJ URI", ddbjUri
, style
);
84 ((Text
) textDDBJUri
.getMainControl()).setEditable(false);
85 textBoldProcessID
= formFactory
.createTextWithLabelElement(formElement
, "BOLD Process ID", entity
.getBoldProcessId(), style
);
86 textBoldUri
= formFactory
.createUriWithLabelElement(formElement
, "BOLD URI", boldUri
, style
);
87 ((Text
) textBoldUri
.getMainControl()).setEditable(false);
88 ((Text
) textBoldUri
.getMainControl()).setToolTipText("Query BOLD");
95 * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
99 public void handleEvent(Object eventSource
) {
100 if(eventSource
==comboMarker
){
101 getEntity().setDnaMarker(comboMarker
.getSelection());
103 else if(eventSource
==textConsensusSequence
){
104 SequenceString consensusSequence
= getEntity().getConsensusSequence();
105 if(consensusSequence
==null){
106 consensusSequence
= SequenceString
.NewInstance();
108 consensusSequence
.setString(textConsensusSequence
.getText());
109 getEntity().setConsensusSequence(consensusSequence
);
111 else if(eventSource
==textGeneticAccessNo
){
112 textGeneticAccessNo
.setBackground(getPersistentBackground());
113 getEntity().setGeneticAccessionNumber(textGeneticAccessNo
.getText());
114 if(textGeneticAccessNo
.getText()!=null && !textGeneticAccessNo
.getText().isEmpty()){
116 textNCBIUri
.setParsedText(getEntity().getGenBankUri());
117 textENAUri
.setParsedText(getEntity().getEmblUri());
118 textDDBJUri
.setParsedText(getEntity().getDdbjUri());
119 } catch (URISyntaxException e
) {
120 textGeneticAccessNo
.setBackground(getColor(Resources
.COLOR_PARSE_ERROR
));
124 textNCBIUri
.setText("");
125 textENAUri
.setText("");
126 textDDBJUri
.setText("");
129 else if(eventSource
==textBoldProcessID
){
130 textBoldProcessID
.setBackground(getPersistentBackground());
131 getEntity().setBoldProcessId(textBoldProcessID
.getText());
132 if(textBoldProcessID
.getText()!=null && !textBoldProcessID
.getText().isEmpty()){
134 textBoldUri
.setParsedText(getEntity().getBoldUri());
135 } catch (URISyntaxException e
) {
136 textBoldProcessID
.setBackground(getColor(Resources
.COLOR_PARSE_ERROR
));
140 textBoldUri
.setText("");