ref #6190 removing svn property place holder in first line of code - java files
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / occurrence / dna / SequenceGeneralDetailElement.java
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 }