3 * Copyright (C) 2014 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
;
12 import eu
.etaxonomy
.cdm
.model
.agent
.AgentBase
;
13 import eu
.etaxonomy
.cdm
.model
.common
.DefinedTerm
;
14 import eu
.etaxonomy
.cdm
.model
.molecular
.Primer
;
15 import eu
.etaxonomy
.cdm
.model
.molecular
.Sequence
;
16 import eu
.etaxonomy
.cdm
.model
.molecular
.SequenceString
;
17 import eu
.etaxonomy
.cdm
.model
.molecular
.SingleRead
;
18 import eu
.etaxonomy
.cdm
.model
.reference
.Reference
;
19 import eu
.etaxonomy
.taxeditor
.ui
.combo
.TermComboElement
;
20 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmFormFactory
;
21 import eu
.etaxonomy
.taxeditor
.ui
.element
.ICdmFormElement
;
22 import eu
.etaxonomy
.taxeditor
.ui
.element
.NumberWithLabelElement
;
23 import eu
.etaxonomy
.taxeditor
.ui
.element
.TextWithLabelElement
;
24 import eu
.etaxonomy
.taxeditor
.ui
.element
.TimePeriodElement
;
25 import eu
.etaxonomy
.taxeditor
.ui
.section
.AbstractCdmDetailElement
;
26 import eu
.etaxonomy
.taxeditor
.ui
.selection
.EntitySelectionElement
;
33 public class SingleReadGeneralDetailElement
extends AbstractCdmDetailElement
<SingleRead
> {
36 private TimePeriodElement dateElement
;
37 private EntitySelectionElement
<AgentBase
> selectionSequencingStaff
;
38 private TermComboElement
<DefinedTerm
> comboMaterialOrMethod
;
39 private NumberWithLabelElement numberReadLength
;
40 private TextWithLabelElement textEditedSequence
;
41 private TextWithLabelElement textPrimerName
;
42 private TextWithLabelElement textPrimerSequence
;
43 private EntitySelectionElement
<Reference
> selectionReference
;
49 public SingleReadGeneralDetailElement(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
, SingleRead entity
, int style
) {
63 // dateElement = formFactory.createTimePeriodElement(formElement, "Sequencing Date", entity.getDateSequenced(), style);
64 // selectionSequencingStaff = formFactory
65 // .createSelectionElement(AgentBase.class,
66 // getConversationHolder(), formElement, "Sequencing Staff",
68 // EntitySelectionElement.ALL, style);
69 // MaterialOrMethodEvent materialOrMethod = entity.getMaterialOrMethod();
70 // DefinedTerm definedMaterialOrMethod = null;
71 // if(materialOrMethod!=null){
72 // definedMaterialOrMethod = materialOrMethod.getDefinedMaterialOrMethod();
74 // comboMaterialOrMethod = formFactory.createTermComboElement(DefinedTerm.class, formElement, "Mat. & Meth.", definedMaterialOrMethod, style);
76 // //TODO sequence can be null if DerivateView is opened again. Why?? When initially created it is not null
77 // SequenceString editedSequence = entity.getSequence();
78 // Integer readLength = 0;
79 // String editedSequenceString = "";
80 // if(editedSequence!=null){
81 // Integer length = editedSequence.getLength();
83 // readLength = length;
85 // editedSequenceString = editedSequence.getString();
87 // textReadLength = formFactory.createNumberTextWithLabelElement(formElement, "Read Length", readLength, style);
88 // textEditedSequence = formFactory.createTextWithLabelElement(formElement, "Edited Sequence 5'->3'", editedSequenceString, style);
90 Primer primer
= entity
.getPrimer();
91 String primerLabel
= "";
92 String primerSequence
= "";
93 Reference primerReference
= null;
95 primerLabel
= primer
.getLabel();
96 primerSequence
= primer
.getSequence()==null?
"":primer
.getSequence().getSequenceString();
97 primerReference
= primer
.getPublishedIn();
99 textPrimerName
= formFactory
.createTextWithLabelElement(formElement
, "Primer Name", primerLabel
, style
);
100 textPrimerSequence
= formFactory
.createTextWithLabelElement(formElement
, "Primer seq. 5'->3'", primerSequence
, style
);
102 selectionReference
= formFactory
103 .createSelectionElement(Reference
.class,
104 getConversationHolder(), formElement
, "Reference",
106 EntitySelectionElement
.ALL
, style
);
113 * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
117 public void handleEvent(Object eventSource
) {
118 if(eventSource
==dateElement
){
119 getEntity().setDateSequenced(dateElement
.getTimePeriod());
121 else if(eventSource
==selectionSequencingStaff
){
122 getEntity().setActor(selectionSequencingStaff
.getSelection());
124 else if(eventSource
==comboMaterialOrMethod
){
125 getEntity().getMaterialOrMethod().setDefinedMaterialOrMethod(comboMaterialOrMethod
.getSelection());
127 else if(eventSource
==numberReadLength
){
128 getEditedSequence().setLength(numberReadLength
.getInteger());
130 else if(eventSource
==textEditedSequence
){
131 getEditedSequence().setString(textEditedSequence
.getText());
133 else if(eventSource
==textPrimerName
){
134 getPrimer().setLabel(textPrimerName
.getText());
136 else if(eventSource
==textPrimerSequence
){
137 Sequence sequence
= getPrimer().getSequence();
139 sequence
= Sequence
.NewInstance("");
141 sequence
.setSequenceString(textPrimerSequence
.getText());
143 else if(eventSource
==selectionReference
){
144 getPrimer().setPublishedIn(selectionReference
.getSelection());
151 private SequenceString
getEditedSequence() {
152 SequenceString sequence
= getEntity().getSequence();
154 sequence
= SequenceString
.NewInstance();
159 private Primer
getPrimer(){
160 Primer primer
= getEntity().getPrimer();
162 primer
= Primer
.NewInstance("");