*/
package eu.etaxonomy.taxeditor.ui.section.occurrence;
+import org.eclipse.swt.widgets.Label;
+
import eu.etaxonomy.cdm.model.agent.AgentBase;
import eu.etaxonomy.cdm.model.common.DefinedTerm;
import eu.etaxonomy.cdm.model.molecular.Amplification;
+import eu.etaxonomy.cdm.model.molecular.Cloning;
+import eu.etaxonomy.cdm.model.molecular.Primer;
+import eu.etaxonomy.cdm.model.molecular.Sequence;
+import eu.etaxonomy.cdm.model.occurrence.MaterialOrMethodEvent;
import eu.etaxonomy.cdm.model.reference.Reference;
import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
numberGelRunningTime = formFactory.createNumberTextWithLabelElement(formElement, "Gel Ruinning Time (Min)", entity.getGelRunningTime(), style);
textLadderUsed = formFactory.createTextWithLabelElement(formElement, "Ladder Used", entity.getLadderUsed(), style);
textGelPhoto = formFactory.createTextWithLabelElement(formElement, "Gel Photo", "XXX", style);
- comboPurificationMaterialOrMethod = formFactory.createTermComboElement(DefinedTerm.class, formElement, "Purification Mat. & Meth.", entity.getPurification().getDefinedMaterialOrMethod(), style);
+ comboPurificationMaterialOrMethod = formFactory.createTermComboElement(DefinedTerm.class, formElement, "Purification Mat. & Meth.",
+ entity.getPurification()==null?null:entity.getPurification().getDefinedMaterialOrMethod(), style);
+ Label createHorizontalSeparator1 = formFactory.createHorizontalSeparator(formElement, style);
+ createHorizontalSeparator1.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
//first primer
- textPrimerForwardName = formFactory.createTextWithLabelElement(formElement, "Forward Primer", entity.getForwardPrimer().getLabel(), style);
- textPrimerForwardSequence = formFactory.createTextWithLabelElement(formElement, "Fw. Primer Sequence", entity.getForwardPrimer().getSequence().getSequenceString(), style);
- selectionPrimerForwardReference = formFactory.createSelectionElement(Reference.class, getConversationHolder(), formElement, "Fw. Primer Reference", entity.getForwardPrimer().getPublishedIn(), EntitySelectionElement.ALL, style);
+ Primer forwardPrimer = entity.getForwardPrimer();
+ String initialName;
+ String initalSequenceString;
+ Reference initialReference;
+ if(forwardPrimer==null){
+ initialName = "";
+ initalSequenceString = null;
+ initialReference = null;
+ }
+ else{
+ initialName = forwardPrimer.getLabel();
+ initialReference = forwardPrimer.getPublishedIn();
+ if(forwardPrimer.getSequence()==null){
+ initalSequenceString = "";
+ }
+ else{
+ initalSequenceString = forwardPrimer.getSequence().getSequenceString();
+ }
+ }
+ textPrimerForwardName = formFactory.createTextWithLabelElement(formElement, "Forward Primer", initialName, style);
+ textPrimerForwardSequence = formFactory.createTextWithLabelElement(formElement, "Fw. Primer Sequence", initalSequenceString, style);
+ selectionPrimerForwardReference = formFactory.createSelectionElement(Reference.class, getConversationHolder(), formElement, "Fw. Primer Reference", initialReference, EntitySelectionElement.ALL, style);
//second primer
- textPrimerReverseName = formFactory.createTextWithLabelElement(formElement, "Reverse Primer", entity.getReversePrimer().getLabel(), style);
- textPrimerReverseSequence = formFactory.createTextWithLabelElement(formElement, "Rv. Primer Sequence", entity.getReversePrimer().getSequence().getSequenceString(), style);
- selectionPrimerReverseReference = formFactory.createSelectionElement(Reference.class, getConversationHolder(), formElement, "Rv. Primer Reference", entity.getReversePrimer().getPublishedIn(), EntitySelectionElement.ALL, style);
-
- textCloningStrain = formFactory.createTextWithLabelElement(formElement, "Cloning Strain", entity.getCloning().getStrain(), style);
- dateCloning = formFactory.createTimePeriodElement(formElement, "Cloning Date", entity.getCloning().getTimeperiod(), style);
- selectionCloningStaff = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Cloning Staff", entity.getCloning().getActor(), EntitySelectionElement.ALL, style);
- comboCloningMaterialOrMethod = formFactory.createTermComboElement(DefinedTerm.class, formElement, "Cloning Mat. & Meth.", entity.getCloning().getDefinedMaterialOrMethod(), style);
+ Primer reversePrimer = entity.getForwardPrimer();
+ String initialNameReverse;
+ String initalSequenceStringReverse;
+ Reference initialReferenceReverse;
+ if(reversePrimer==null){
+ initialNameReverse = "";
+ initalSequenceStringReverse = null;
+ initialReferenceReverse = null;
+ }
+ else{
+ initialNameReverse = reversePrimer.getLabel();
+ initialReferenceReverse = reversePrimer.getPublishedIn();
+ if(reversePrimer.getSequence()==null){
+ initalSequenceStringReverse = "";
+ }
+ else{
+ initalSequenceStringReverse = reversePrimer.getSequence().getSequenceString();
+ }
+ }
+ textPrimerReverseName = formFactory.createTextWithLabelElement(formElement, "Reverse Primer", initialNameReverse, style);
+ textPrimerReverseSequence = formFactory.createTextWithLabelElement(formElement, "Rv. Primer Sequence", initalSequenceStringReverse, style);
+ selectionPrimerReverseReference = formFactory.createSelectionElement(Reference.class, getConversationHolder(), formElement, "Rv. Primer Reference", initialReferenceReverse, EntitySelectionElement.ALL, style);
+
+ Label createHorizontalSeparator = formFactory.createHorizontalSeparator(formElement, style);
+ createHorizontalSeparator.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+
+ Cloning cloning = entity.getCloning();
+ textCloningStrain = formFactory.createTextWithLabelElement(formElement, "Cloning Strain", cloning==null?"":cloning.getStrain(), style);
+ dateCloning = formFactory.createTimePeriodElement(formElement, "Cloning Date", cloning==null?null:cloning.getTimeperiod(), style);
+ selectionCloningStaff = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Cloning Staff", cloning==null?null:cloning.getActor(), EntitySelectionElement.ALL, style);
+ comboCloningMaterialOrMethod = formFactory.createTermComboElement(DefinedTerm.class, formElement, "Cloning Mat. & Meth.", cloning==null?null:cloning.getDefinedMaterialOrMethod(), style);
}
/*
*/
@Override
public void handleEvent(Object eventSource) {
+ if(eventSource==comboMarker){
+ getEntity().setDnaMarker(comboMarker.getSelection());
+ }
+ else if(eventSource==dateAmplification){
+ getEntity().setTimeperiod(dateAmplification.getTimePeriod());
+ }
+ else if(eventSource==selectionAmplificationStaff){
+ getEntity().setActor(selectionAmplificationStaff.getEntity());
+ }
+ else if(eventSource==textAmplificationSuccess){
+ getEntity().setSuccessful(Boolean.valueOf(textAmplificationSuccess.getText()));
+ }
+ else if(eventSource==textAmplificationSuccessDetails){
+ getEntity().setSuccessText(textAmplificationSuccessDetails.getText());
+ }
+ else if(eventSource==comboAmplificationMaterialOrMethod){
+
+ }
+ else if(eventSource==numberGelVoltage){
+ getEntity().setElectrophoresisVoltage(numberGelVoltage.getDouble());
+ }
+ else if(eventSource==numberGelConcentration){
+ getEntity().setGelConcentration(numberGelConcentration.getDouble());
+ }
+ else if(eventSource==numberGelRunningTime){
+ getEntity().setGelRunningTime(numberGelRunningTime.getDouble());
+ }
+ else if(eventSource==textLadderUsed){
+ getEntity().setLadderUsed(textLadderUsed.getText());
+ }
+ else if(eventSource==textGelPhoto){
+// getEntity().
+ }
+ else if(eventSource==comboPurificationMaterialOrMethod){
+ MaterialOrMethodEvent purification = getEntity().getPurification();
+ if(purification==null){
+ purification = MaterialOrMethodEvent.NewInstance();
+ getEntity().setPurification(purification);
+ }
+ purification.setDefinedMaterialOrMethod(comboPurificationMaterialOrMethod.getSelection());
+ }
+ else if(eventSource==textPrimerForwardName || eventSource==textPrimerForwardSequence || eventSource==selectionPrimerForwardReference){
+ Primer forwardPrimer = getEntity().getForwardPrimer();
+ if(forwardPrimer==null){
+ forwardPrimer = Primer.NewInstance("");
+ getEntity().setForwardPrimer(forwardPrimer);
+ }
+ if(eventSource==textPrimerForwardName){
+ forwardPrimer.setLabel(textPrimerForwardName.getText());
+ }
+ else if(eventSource==textPrimerForwardSequence){
+ Sequence sequence = forwardPrimer.getSequence();
+ if(sequence==null){
+ sequence = Sequence.NewInstance(textPrimerForwardSequence.getText());
+ forwardPrimer.setSequence(sequence);
+ }
+ else{
+ sequence.setSequenceString(textPrimerForwardSequence.getText());
+ }
+ }
+ else if(eventSource==selectionPrimerForwardReference){
+ forwardPrimer.setPublishedIn(selectionPrimerForwardReference.getSelection());
+ }
+ }
+ else if(eventSource==textPrimerReverseName || eventSource==textPrimerReverseSequence || eventSource==selectionPrimerReverseReference){
+ Primer reversePrimer = getEntity().getReversePrimer();
+ if(reversePrimer==null){
+ reversePrimer = Primer.NewInstance("");
+ getEntity().setReversePrimer(reversePrimer);
+ }
+ if(eventSource==textPrimerReverseName){
+ reversePrimer.setLabel(textPrimerReverseName.getText());
+ }
+ else if(eventSource==textPrimerReverseSequence){
+ Sequence sequence = reversePrimer.getSequence();
+ if(sequence==null){
+ sequence = Sequence.NewInstance(textPrimerReverseSequence.getText());
+ reversePrimer.setSequence(sequence);
+ }
+ else{
+ sequence.setSequenceString(textPrimerReverseSequence.getText());
+ }
+ }
+ else if(eventSource==selectionPrimerReverseReference){
+ reversePrimer.setPublishedIn(selectionPrimerReverseReference.getSelection());
+ }
+ }
+ else if(eventSource==textCloningStrain || eventSource==dateCloning|| eventSource==selectionCloningStaff || eventSource==comboCloningMaterialOrMethod){
+ Cloning cloning = getEntity().getCloning();
+ if(cloning==null){
+ cloning = Cloning.NewInstance();
+ getEntity().setCloning(cloning);
+ }
+ if(eventSource==textCloningStrain){
+ cloning.setStrain(textCloningStrain.getText());
+ }
+ else if(eventSource==dateCloning){
+ cloning.setTimeperiod(dateCloning.getTimePeriod());
+ }
+ else if(eventSource==selectionCloningStaff){
+ cloning.setActor(selectionCloningStaff.getSelection());
+ }
+ else if(eventSource==comboCloningMaterialOrMethod){
+ cloning.setDefinedMaterialOrMethod(comboCloningMaterialOrMethod.getSelection());
+ }
+ }
}
}
\ No newline at end of file