import eu.etaxonomy.cdm.model.agent.AgentBase;
import eu.etaxonomy.cdm.model.common.DefinedTerm;
+import eu.etaxonomy.cdm.model.molecular.Primer;
+import eu.etaxonomy.cdm.model.molecular.Sequence;
+import eu.etaxonomy.cdm.model.molecular.SequenceString;
import eu.etaxonomy.cdm.model.molecular.SingleRead;
+import eu.etaxonomy.cdm.model.occurrence.MaterialOrMethodEvent;
import eu.etaxonomy.cdm.model.reference.Reference;
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
getConversationHolder(), formElement, "Sequencing Staff",
null,
EntitySelectionElement.ALL, style);
-// comboMaterialOrMethod = formFactory.createTermComboElement(DefinedTerm.class, formElement, "Mat. & Meth.", entity.getMaterialOrMethod().getDefinedMaterialOrMethod(), style);
+ MaterialOrMethodEvent materialOrMethod = entity.getMaterialOrMethod();
+ DefinedTerm definedMaterialOrMethod = null;
+ if(materialOrMethod!=null){
+ definedMaterialOrMethod = materialOrMethod.getDefinedMaterialOrMethod();
+ }
+ comboMaterialOrMethod = formFactory.createTermComboElement(DefinedTerm.class, formElement, "Mat. & Meth.", definedMaterialOrMethod, style);
textChromatogram = formFactory.createTextWithLabelElement(formElement, "Read Chromatogram", "XXX", style);
-// textReadLength = formFactory.createNumberTextWithLabelElement(formElement, "Read Length", entity.getSequence().getLength(), style);
-// textEditedSequence = formFactory.createTextWithLabelElement(formElement, "Edited Sequence 5'->3'", entity.getSequenceString(), style);
-// textPrimerName = formFactory.createTextWithLabelElement(formElement, "Primer Name", entity.getPrimer().getLabel(), style);
-// textPrimerSequence = formFactory.createTextWithLabelElement(formElement, "Primer seq. 5'->3'", entity.getPrimer().getSequence().getSequenceString(), style);
+
+ //TODO sequence can be null if DerivateView is opened again. Why?? When initially created it is not null
+ SequenceString editedSequence = entity.getSequence();
+ int readLength = 0;
+ String editedSequenceString = "";
+ if(editedSequence!=null){
+ readLength = editedSequence.getLength();
+ editedSequenceString = editedSequence.getString();
+ }
+ textReadLength = formFactory.createNumberTextWithLabelElement(formElement, "Read Length", readLength, style);
+ textEditedSequence = formFactory.createTextWithLabelElement(formElement, "Edited Sequence 5'->3'", editedSequenceString, style);
+
+ Primer primer = entity.getPrimer();
+ String primerLabel = "";
+ String primerSequence = "";
+ Reference primerReference = null;
+ if(primer!=null){
+ primerLabel = primer.getLabel();
+ primerSequence = primer.getSequence()==null?"":primer.getSequence().getSequenceString();
+ primerReference = primer.getPublishedIn();
+ }
+ textPrimerName = formFactory.createTextWithLabelElement(formElement, "Primer Name", primerLabel, style);
+ textPrimerSequence = formFactory.createTextWithLabelElement(formElement, "Primer seq. 5'->3'", primerSequence, style);
selectionReference = formFactory
.createSelectionElement(Reference.class,
getConversationHolder(), formElement, "Reference",
- null,
+ primerReference,
EntitySelectionElement.ALL, style);
}
*/
@Override
public void handleEvent(Object eventSource) {
+ if(eventSource==dateElement){
+ getEntity().setDateSequenced(dateElement.getTimePeriod());
+ }
+ else if(eventSource==selectionSequencingStaff){
+ getEntity().setActor(selectionSequencingStaff.getSelection());
+ }
+ else if(eventSource==comboMaterialOrMethod){
+ getEntity().getMaterialOrMethod().setDefinedMaterialOrMethod(comboMaterialOrMethod.getSelection());
+ }
+ else if(eventSource==textChromatogram){
+ //TODO implement
+ }
+ else if(eventSource==textReadLength){
+ getEditedSequence().setLength(textReadLength.getInteger());
+ }
+ else if(eventSource==textEditedSequence){
+ getEditedSequence().setString(textEditedSequence.getText());
+ }
+ else if(eventSource==textPrimerName){
+ getPrimer().setLabel(textPrimerName.getText());
+ }
+ else if(eventSource==textPrimerSequence){
+ Sequence sequence = getPrimer().getSequence();
+ if(sequence==null){
+ sequence = Sequence.NewInstance("");
+ }
+ sequence.setSequenceString(textPrimerSequence.getText());
+ }
+ else if(eventSource==selectionReference){
+ getPrimer().setPublishedIn(selectionReference.getSelection());
+ }
+ }
+
+ /**
+ * @return
+ */
+ private SequenceString getEditedSequence() {
+ SequenceString sequence = getEntity().getSequence();
+ if(sequence==null){
+ sequence = SequenceString.NewInstance();
+ }
+ return sequence;
+ }
+
+ private Primer getPrimer(){
+ Primer primer = getEntity().getPrimer();
+ if(primer==null){
+ primer = Primer.NewInstance("");
+ }
+ return primer;
}
}