merge
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / occurrence / dna / SequenceGeneralDetailElement.java
1 // $Id$
2 /**
3 * Copyright (C) 2013 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 java.net.URI;
13 import java.net.URISyntaxException;
14
15 import org.eclipse.swt.widgets.Text;
16
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;
28
29 /**
30 * @author pplitzner
31 * @date 19.12.2013
32 *
33 */
34 public class SequenceGeneralDetailElement extends AbstractCdmDetailElement<Sequence> {
35
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;
44
45 /**
46 * @param formFactory
47 * @param formElement
48 */
49 public SequenceGeneralDetailElement(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, 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);
64
65 URI genBankUri = null;
66 URI emblUri = null;
67 URI ddbjUri = null;
68 URI boldUri = null;
69 try{
70 genBankUri = entity.getGenBankUri();
71 emblUri = entity.getEmblUri();
72 ddbjUri = entity.getDdbjUri();
73 boldUri = entity.getBoldUri();
74 }
75 catch(URISyntaxException e){
76
77 }
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");
89 }
90
91 /*
92 * (non-Javadoc)
93 *
94 * @see
95 * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
96 * .lang.Object)
97 */
98 @Override
99 public void handleEvent(Object eventSource) {
100 if(eventSource==comboMarker){
101 getEntity().setDnaMarker(comboMarker.getSelection());
102 }
103 else if(eventSource==textConsensusSequence){
104 SequenceString consensusSequence = getEntity().getConsensusSequence();
105 if(consensusSequence==null){
106 consensusSequence = SequenceString.NewInstance();
107 }
108 consensusSequence.setString(textConsensusSequence.getText());
109 getEntity().setConsensusSequence(consensusSequence);
110 }
111 else if(eventSource==textGeneticAccessNo){
112 textGeneticAccessNo.setBackground(getPersistentBackground());
113 getEntity().setGeneticAccessionNumber(textGeneticAccessNo.getText());
114 if(textGeneticAccessNo.getText()!=null && !textGeneticAccessNo.getText().isEmpty()){
115 try {
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));
121 }
122 }
123 else{
124 textNCBIUri.setText("");
125 textENAUri.setText("");
126 textDDBJUri.setText("");
127 }
128 }
129 else if(eventSource==textBoldProcessID){
130 textBoldProcessID.setBackground(getPersistentBackground());
131 getEntity().setBoldProcessId(textBoldProcessID.getText());
132 if(textBoldProcessID.getText()!=null && !textBoldProcessID.getText().isEmpty()){
133 try {
134 textBoldUri.setParsedText(getEntity().getBoldUri());
135 } catch (URISyntaxException e) {
136 textBoldProcessID.setBackground(getColor(Resources.COLOR_PARSE_ERROR));
137 }
138 }
139 else{
140 textBoldUri.setText("");
141 }
142 }
143 }
144
145 }