- fixed possible NPE when entering DnaQuality data
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / occurrence / dna / DnaQualityDetailElement.java
index f8ce69eb1ee92939825a325ae222fef4cc211567..039f2f745c00364d16aab23fcaad5a05bf2634a6 100644 (file)
@@ -9,12 +9,16 @@
 */
 package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
+import org.joda.time.DateTime;
+
 import eu.etaxonomy.cdm.model.common.DefinedTerm;
+import eu.etaxonomy.cdm.model.molecular.DnaQuality;
 import eu.etaxonomy.cdm.model.molecular.DnaSample;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
+import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.mvc.element.DateElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
@@ -25,12 +29,15 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
  */
 public class DnaQualityDetailElement extends AbstractCdmDetailElement<DnaSample> {
 
+    //TODO: add vocabulary
+//    private final TermType qualityTermVocabulary = CdmStore.getService(IVocabularyService.class).find(VocabularyEnum.DnaQualityTerm.getUuid());
+
+    private TextWithLabelElement textPurificationMethod;
     private NumberWithLabelElement numberRatioOfAbsorbance260_280;
     private NumberWithLabelElement numberRatioOfAbsorbance260_230;
     private NumberWithLabelElement numberConcentration;
     private TermComboElement<DefinedTerm> comboQualityTerm;
     private DateElement dateQualityCheck;
-    private DateElement dateNanoDrop;
 
     /**
      * @param formFactory
@@ -49,14 +56,22 @@ public class DnaQualityDetailElement extends AbstractCdmDetailElement<DnaSample>
      */
     @Override
     protected void createControls(ICdmFormElement formElement, DnaSample entity, int style) {
-        //TODO DNA purification details
-        //TODO Ratio of absorbance 260-280
-        //TODO Ratio of absorbance 260-230
-        //TODO concentration unit
-        //TODO concentration
-        //TODO DNA quality
-        //TODO Quality check date
-        //TODO Descritpion
+        DnaQuality dnaQuality = entity.getDnaQuality();
+        if(dnaQuality==null){
+            dnaQuality = DnaQuality.NewInstance();
+            entity.setDnaQuality(dnaQuality);
+        }
+        Double ratioOfAbsorbance260_230 = dnaQuality.getRatioOfAbsorbance260_230();
+        Double ratioOfAbsorbance260_280 = dnaQuality.getRatioOfAbsorbance260_280();
+        Double concentration = dnaQuality.getConcentration();
+        DefinedTerm qualityTerm = dnaQuality.getQualityTerm();
+
+//        textPurificationMethod = formFactory.createTextWithLabelElement(formElement, "Purification Method", dnaQuality.getPurificationMethod(), style);
+        numberRatioOfAbsorbance260_280 = formFactory.createNumberTextWithLabelElement(formElement, "Ratio of absorbance 260-280", ratioOfAbsorbance260_280, style);
+        numberRatioOfAbsorbance260_230 = formFactory.createNumberTextWithLabelElement(formElement, "Ratio of absorbance 260-230", ratioOfAbsorbance260_230, style);
+        numberConcentration = formFactory.createNumberTextWithLabelElement(formElement, "Concentration", concentration, style);
+//        comboQualityTerm = formFactory.createDefinedTermComboElement(qualityTermVocabulary, formElement, "Quality Term", qualityTerm, style);
+        dateQualityCheck = formFactory.createDateElement(formElement, "Quality Check", dnaQuality.getQualityCheckDate(), style);
     }
 
     /*
@@ -68,5 +83,26 @@ public class DnaQualityDetailElement extends AbstractCdmDetailElement<DnaSample>
      */
     @Override
     public void handleEvent(Object eventSource) {
+        DnaQuality dnaQuality = getEntity().getDnaQuality();
+        if(eventSource==textPurificationMethod){
+            //TODO
+//            dnaQuality.setPurificationMethod(textPurificationMethod.getText());
+        }
+        else if(eventSource==numberRatioOfAbsorbance260_230){
+            dnaQuality.setRatioOfAbsorbance260_230(numberRatioOfAbsorbance260_230.getDouble());
+        }
+        else if(eventSource==numberRatioOfAbsorbance260_280){
+            dnaQuality.setRatioOfAbsorbance260_280(numberRatioOfAbsorbance260_280.getDouble());
+        }
+        else if(eventSource==numberConcentration){
+            dnaQuality.setConcentration(numberConcentration.getDouble());
+        }
+        else if(eventSource==comboQualityTerm){
+            dnaQuality.setQualityTerm(comboQualityTerm.getSelection());
+        }
+        else if(eventSource==dateQualityCheck.getController()){
+            DateTime dateTime = dateQualityCheck.getController().getDateTime();
+            dnaQuality.setQualityCheckDate(dateTime);
+        }
     }
 }