- added missing parameters for SingleRead DetailsView
authorPatric Plitzner <p.plitzner@bgbm.org>
Thu, 13 Feb 2014 12:16:14 +0000 (12:16 +0000)
committerPatric Plitzner <p.plitzner@bgbm.org>
Thu, 13 Feb 2014 12:16:14 +0000 (12:16 +0000)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SingleReadGeneralDetailElement.java

index 7d27c311628a83e136d76269418f36bd68c090af..fa08589e8664a525768347064c266f1eb42e7b97 100644 (file)
@@ -11,7 +11,11 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
 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;
@@ -64,17 +68,41 @@ public class SingleReadGeneralDetailElement extends AbstractCdmDetailElement<Sin
                         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);
     }
 
@@ -87,6 +115,56 @@ public class SingleReadGeneralDetailElement extends AbstractCdmDetailElement<Sin
      */
     @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;
     }
 
 }