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
;
12 import org
.eclipse
.swt
.widgets
.Label
;
14 import eu
.etaxonomy
.cdm
.model
.agent
.AgentBase
;
15 import eu
.etaxonomy
.cdm
.model
.common
.DefinedTerm
;
16 import eu
.etaxonomy
.cdm
.model
.molecular
.Amplification
;
17 import eu
.etaxonomy
.cdm
.model
.molecular
.Cloning
;
18 import eu
.etaxonomy
.cdm
.model
.molecular
.Primer
;
19 import eu
.etaxonomy
.cdm
.model
.molecular
.Sequence
;
20 import eu
.etaxonomy
.cdm
.model
.occurrence
.MaterialOrMethodEvent
;
21 import eu
.etaxonomy
.cdm
.model
.reference
.Reference
;
22 import eu
.etaxonomy
.taxeditor
.ui
.campanula
.compatibility
.ICdmFormElement
;
23 import eu
.etaxonomy
.taxeditor
.ui
.combo
.TermComboElement
;
24 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmFormFactory
;
25 import eu
.etaxonomy
.taxeditor
.ui
.element
.LayoutConstants
;
26 import eu
.etaxonomy
.taxeditor
.ui
.element
.NumberWithLabelElement
;
27 import eu
.etaxonomy
.taxeditor
.ui
.element
.TextWithLabelElement
;
28 import eu
.etaxonomy
.taxeditor
.ui
.element
.TimePeriodElement
;
29 import eu
.etaxonomy
.taxeditor
.ui
.section
.AbstractCdmDetailElement
;
30 import eu
.etaxonomy
.taxeditor
.ui
.selection
.EntitySelectionElement
;
37 public class AmplificationGeneralDetailElement
extends AbstractCdmDetailElement
<Amplification
> {
39 private TermComboElement
<DefinedTerm
> comboMarker
;
40 private TimePeriodElement dateAmplification
;
41 private EntitySelectionElement
<AgentBase
> selectionAmplificationStaff
;
42 private TextWithLabelElement textAmplificationSuccess
;
43 private TextWithLabelElement textAmplificationSuccessDetails
;
44 private TermComboElement
<DefinedTerm
> comboAmplificationMaterialOrMethod
;
46 private NumberWithLabelElement numberGelVoltage
;
47 private NumberWithLabelElement numberGelConcentration
;
48 private NumberWithLabelElement numberGelRunningTime
;
49 private TextWithLabelElement textLadderUsed
;
50 private TextWithLabelElement textGelPhoto
;
52 private TermComboElement
<DefinedTerm
> comboPurificationMaterialOrMethod
;
54 private TextWithLabelElement textPrimerForwardName
;
55 private TextWithLabelElement textPrimerForwardSequence
;
56 private EntitySelectionElement
<Reference
> selectionPrimerForwardReference
;
58 private TextWithLabelElement textPrimerReverseName
;
59 private TextWithLabelElement textPrimerReverseSequence
;
60 private EntitySelectionElement
<Reference
> selectionPrimerReverseReference
;
62 private TextWithLabelElement textCloningStrain
;
63 private TimePeriodElement dateCloning
;
64 private EntitySelectionElement
<AgentBase
> selectionCloningStaff
;
65 private TermComboElement
<DefinedTerm
> comboCloningMaterialOrMethod
;
72 public AmplificationGeneralDetailElement(CdmFormFactory formFactory
, ICdmFormElement formElement
) {
73 super(formFactory
, formElement
);
80 * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
81 * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
84 protected void createControls(ICdmFormElement formElement
, Amplification entity
, int style
) {
85 comboMarker
= formFactory
.createTermComboElement(DefinedTerm
.class, formElement
, "Marker", entity
.getDnaMarker(), style
);
86 dateAmplification
= formFactory
.createTimePeriodElement(formElement
, "Amplification Date", entity
.getTimeperiod(), style
);
87 selectionAmplificationStaff
= formFactory
.createSelectionElement(AgentBase
.class, getConversationHolder(), formElement
, "Amplification staff", entity
.getActor(), EntitySelectionElement
.ALL
, style
);
88 textAmplificationSuccess
= formFactory
.createTextWithLabelElement(formElement
, "Amplification Success", entity
.getSuccessful(), style
);
89 textAmplificationSuccessDetails
= formFactory
.createTextWithLabelElement(formElement
, "Ampl. Success Details", entity
.getSuccessText(), style
);
90 // comboAmplificationMaterialOrMethod = formFactory.createTermComboElement(DefinedTerm.class, formElement, "Ampl. Mat. & Meth.", entity.get, style)
91 numberGelVoltage
= formFactory
.createNumberTextWithLabelElement(formElement
, "Gel Voltage (V)", entity
.getElectrophoresisVoltage(), style
);
92 numberGelConcentration
= formFactory
.createNumberTextWithLabelElement(formElement
, "Gel Concentration", entity
.getGelConcentration(), style
);
93 numberGelRunningTime
= formFactory
.createNumberTextWithLabelElement(formElement
, "Gel Ruinning Time (Min)", entity
.getGelRunningTime(), style
);
94 textLadderUsed
= formFactory
.createTextWithLabelElement(formElement
, "Ladder Used", entity
.getLadderUsed(), style
);
95 textGelPhoto
= formFactory
.createTextWithLabelElement(formElement
, "Gel Photo", "XXX", style
);
96 comboPurificationMaterialOrMethod
= formFactory
.createTermComboElement(DefinedTerm
.class, formElement
, "Purification Mat. & Meth.",
97 entity
.getPurification()==null?
null:entity
.getPurification().getDefinedMaterialOrMethod(), style
);
99 Label createHorizontalSeparator1
= formFactory
.createHorizontalSeparator(formElement
, style
);
100 createHorizontalSeparator1
.setLayoutData(LayoutConstants
.FILL_HORIZONTALLY(2, 1));
102 Primer forwardPrimer
= entity
.getForwardPrimer();
104 String initalSequenceString
;
105 Reference initialReference
;
106 if(forwardPrimer
==null){
108 initalSequenceString
= null;
109 initialReference
= null;
112 initialName
= forwardPrimer
.getLabel();
113 initialReference
= forwardPrimer
.getPublishedIn();
114 if(forwardPrimer
.getSequence()==null){
115 initalSequenceString
= "";
118 initalSequenceString
= forwardPrimer
.getSequence().getSequenceString();
121 textPrimerForwardName
= formFactory
.createTextWithLabelElement(formElement
, "Forward Primer", initialName
, style
);
122 textPrimerForwardSequence
= formFactory
.createTextWithLabelElement(formElement
, "Fw. Primer Sequence", initalSequenceString
, style
);
123 selectionPrimerForwardReference
= formFactory
.createSelectionElement(Reference
.class, getConversationHolder(), formElement
, "Fw. Primer Reference", initialReference
, EntitySelectionElement
.ALL
, style
);
126 Primer reversePrimer
= entity
.getForwardPrimer();
127 String initialNameReverse
;
128 String initalSequenceStringReverse
;
129 Reference initialReferenceReverse
;
130 if(reversePrimer
==null){
131 initialNameReverse
= "";
132 initalSequenceStringReverse
= null;
133 initialReferenceReverse
= null;
136 initialNameReverse
= reversePrimer
.getLabel();
137 initialReferenceReverse
= reversePrimer
.getPublishedIn();
138 if(reversePrimer
.getSequence()==null){
139 initalSequenceStringReverse
= "";
142 initalSequenceStringReverse
= reversePrimer
.getSequence().getSequenceString();
145 textPrimerReverseName
= formFactory
.createTextWithLabelElement(formElement
, "Reverse Primer", initialNameReverse
, style
);
146 textPrimerReverseSequence
= formFactory
.createTextWithLabelElement(formElement
, "Rv. Primer Sequence", initalSequenceStringReverse
, style
);
147 selectionPrimerReverseReference
= formFactory
.createSelectionElement(Reference
.class, getConversationHolder(), formElement
, "Rv. Primer Reference", initialReferenceReverse
, EntitySelectionElement
.ALL
, style
);
149 Label createHorizontalSeparator
= formFactory
.createHorizontalSeparator(formElement
, style
);
150 createHorizontalSeparator
.setLayoutData(LayoutConstants
.FILL_HORIZONTALLY(2, 1));
152 Cloning cloning
= entity
.getCloning();
153 textCloningStrain
= formFactory
.createTextWithLabelElement(formElement
, "Cloning Strain", cloning
==null?
"":cloning
.getStrain(), style
);
154 dateCloning
= formFactory
.createTimePeriodElement(formElement
, "Cloning Date", cloning
==null?
null:cloning
.getTimeperiod(), style
);
155 selectionCloningStaff
= formFactory
.createSelectionElement(AgentBase
.class, getConversationHolder(), formElement
, "Cloning Staff", cloning
==null?
null:cloning
.getActor(), EntitySelectionElement
.ALL
, style
);
156 comboCloningMaterialOrMethod
= formFactory
.createTermComboElement(DefinedTerm
.class, formElement
, "Cloning Mat. & Meth.", cloning
==null?
null:cloning
.getDefinedMaterialOrMethod(), style
);
163 * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
167 public void handleEvent(Object eventSource
) {
168 if(eventSource
==comboMarker
){
169 getEntity().setDnaMarker(comboMarker
.getSelection());
171 else if(eventSource
==dateAmplification
){
172 getEntity().setTimeperiod(dateAmplification
.getTimePeriod());
174 else if(eventSource
==selectionAmplificationStaff
){
175 getEntity().setActor(selectionAmplificationStaff
.getEntity());
177 else if(eventSource
==textAmplificationSuccess
){
178 getEntity().setSuccessful(Boolean
.valueOf(textAmplificationSuccess
.getText()));
180 else if(eventSource
==textAmplificationSuccessDetails
){
181 getEntity().setSuccessText(textAmplificationSuccessDetails
.getText());
183 else if(eventSource
==comboAmplificationMaterialOrMethod
){
186 else if(eventSource
==numberGelVoltage
){
187 getEntity().setElectrophoresisVoltage(numberGelVoltage
.getDouble());
189 else if(eventSource
==numberGelConcentration
){
190 getEntity().setGelConcentration(numberGelConcentration
.getDouble());
192 else if(eventSource
==numberGelRunningTime
){
193 getEntity().setGelRunningTime(numberGelRunningTime
.getDouble());
195 else if(eventSource
==textLadderUsed
){
196 getEntity().setLadderUsed(textLadderUsed
.getText());
198 else if(eventSource
==textGelPhoto
){
201 else if(eventSource
==comboPurificationMaterialOrMethod
){
202 MaterialOrMethodEvent purification
= getEntity().getPurification();
203 if(purification
==null){
204 purification
= MaterialOrMethodEvent
.NewInstance();
205 getEntity().setPurification(purification
);
207 purification
.setDefinedMaterialOrMethod(comboPurificationMaterialOrMethod
.getSelection());
209 else if(eventSource
==textPrimerForwardName
|| eventSource
==textPrimerForwardSequence
|| eventSource
==selectionPrimerForwardReference
){
210 Primer forwardPrimer
= getEntity().getForwardPrimer();
211 if(forwardPrimer
==null){
212 forwardPrimer
= Primer
.NewInstance("");
213 getEntity().setForwardPrimer(forwardPrimer
);
215 if(eventSource
==textPrimerForwardName
){
216 forwardPrimer
.setLabel(textPrimerForwardName
.getText());
218 else if(eventSource
==textPrimerForwardSequence
){
219 Sequence sequence
= forwardPrimer
.getSequence();
221 sequence
= Sequence
.NewInstance(textPrimerForwardSequence
.getText());
222 forwardPrimer
.setSequence(sequence
);
225 sequence
.setSequenceString(textPrimerForwardSequence
.getText());
228 else if(eventSource
==selectionPrimerForwardReference
){
229 forwardPrimer
.setPublishedIn(selectionPrimerForwardReference
.getSelection());
232 else if(eventSource
==textPrimerReverseName
|| eventSource
==textPrimerReverseSequence
|| eventSource
==selectionPrimerReverseReference
){
233 Primer reversePrimer
= getEntity().getReversePrimer();
234 if(reversePrimer
==null){
235 reversePrimer
= Primer
.NewInstance("");
236 getEntity().setReversePrimer(reversePrimer
);
238 if(eventSource
==textPrimerReverseName
){
239 reversePrimer
.setLabel(textPrimerReverseName
.getText());
241 else if(eventSource
==textPrimerReverseSequence
){
242 Sequence sequence
= reversePrimer
.getSequence();
244 sequence
= Sequence
.NewInstance(textPrimerReverseSequence
.getText());
245 reversePrimer
.setSequence(sequence
);
248 sequence
.setSequenceString(textPrimerReverseSequence
.getText());
251 else if(eventSource
==selectionPrimerReverseReference
){
252 reversePrimer
.setPublishedIn(selectionPrimerReverseReference
.getSelection());
255 else if(eventSource
==textCloningStrain
|| eventSource
==dateCloning
|| eventSource
==selectionCloningStaff
|| eventSource
==comboCloningMaterialOrMethod
){
256 Cloning cloning
= getEntity().getCloning();
258 cloning
= Cloning
.NewInstance();
259 getEntity().setCloning(cloning
);
261 if(eventSource
==textCloningStrain
){
262 cloning
.setStrain(textCloningStrain
.getText());
264 else if(eventSource
==dateCloning
){
265 cloning
.setTimeperiod(dateCloning
.getTimePeriod());
267 else if(eventSource
==selectionCloningStaff
){
268 cloning
.setActor(selectionCloningStaff
.getSelection());
270 else if(eventSource
==comboCloningMaterialOrMethod
){
271 cloning
.setDefinedMaterialOrMethod(comboCloningMaterialOrMethod
.getSelection());