- added cascading save to pherogram (Media) of SingleRead
authorPatric Plitzner <p.plitzner@bgbm.org>
Mon, 3 Mar 2014 08:48:20 +0000 (08:48 +0000)
committerPatric Plitzner <p.plitzner@bgbm.org>
Mon, 3 Mar 2014 08:48:20 +0000 (08:48 +0000)
 - added media section to DetailsViews for Amplification (gel photo) and SingelRead (pherogram)

.gitattributes
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationGelPhotoCollectionDetailSection.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SequenceGeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SequenceReferenceCollectionDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SingleReadGeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SingleReadPherogramCollectionDetailSection.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewer.java

index e8fde97eb0a38732eae0c5108935710947eb014a..6d2e5c19da125c3a3dffc39604ffb72d70a913ab 100644 (file)
@@ -1525,6 +1525,7 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occ
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AbstractUnboundEntityCollectionSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationCloningDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationCloningDetailSection.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationGelPhotoCollectionDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationGeneralDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationGeneralDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationPrimerDetailElement.java -text
@@ -1537,6 +1538,7 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occ
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SequenceReferenceCollectionDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SingleReadGeneralDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SingleReadGeneralDetailSection.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SingleReadPherogramCollectionDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/TissueSampleGeneralDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/TissueSampleGeneralDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/media/LivingPlantPhotoGeneralDetailElement.java -text
index 600dbabe0ff66a8d2a28cb6bc12cf802f7511738..6689b3def355bb64c9ac338f0ec867c67c9ac14e 100644 (file)
@@ -228,6 +228,7 @@ import eu.etaxonomy.taxeditor.ui.section.occurrence.derivedUnit.PreservedSpecime
 import eu.etaxonomy.taxeditor.ui.section.occurrence.derivedUnit.PreservedSpecimenSourceCollectionDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationCloningDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationCloningDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationGelPhotoCollectionDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationGeneralDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationGeneralDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationPrimerDetailElement;
@@ -236,6 +237,7 @@ import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaSampleGeneralDetailEl
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaSampleGeneralDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SequenceGeneralDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SequenceGeneralDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SingleReadPherogramCollectionDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SequenceReferenceCollectionDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SequenceReferenceCollectionDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SingleReadGeneralDetailElement;
@@ -1699,6 +1701,12 @@ public class CdmFormFactory extends FormToolkit {
         return section;
     }
 
+    public SingleReadPherogramCollectionDetailSection createSingleReadPherogramCollectionDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        SingleReadPherogramCollectionDetailSection section = new SingleReadPherogramCollectionDetailSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
     public SequenceReferenceCollectionDetailSection createSequenceReferenceCollectionDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
         SequenceReferenceCollectionDetailSection section = new SequenceReferenceCollectionDetailSection(this, conversation, parentElement, style);
         addAndAdaptSection(parentElement, section);
@@ -1729,6 +1737,12 @@ public class CdmFormFactory extends FormToolkit {
         return section;
     }
 
+    public AmplificationGelPhotoCollectionDetailSection createAmplificationGelPhotoCollectionDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        AmplificationGelPhotoCollectionDetailSection section = new AmplificationGelPhotoCollectionDetailSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
     public SpecimenScanGeneralDetailSection createSpecimenScanGeneralDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
         SpecimenScanGeneralDetailSection section = new SpecimenScanGeneralDetailSection(this, conversation, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationGelPhotoCollectionDetailSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationGelPhotoCollectionDetailSection.java
new file mode 100644 (file)
index 0000000..deb4e57
--- /dev/null
@@ -0,0 +1,100 @@
+// $Id$
+/**
+* Copyright (C) 2014 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
+
+import java.util.Collection;
+import java.util.Collections;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.media.Media;
+import eu.etaxonomy.cdm.model.molecular.Amplification;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
+
+/**
+ * @author pplitzner
+ * @date 26.02.2014
+ *
+ */
+public class AmplificationGelPhotoCollectionDetailSection extends AbstractEntityCollectionSection<Amplification, Media> {
+
+    /**
+     * @param formFactory
+     * @param conversation
+     * @param parentElement
+     * @param title
+     * @param style
+     */
+    public AmplificationGelPhotoCollectionDetailSection(CdmFormFactory formFactory, ConversationHolder conversation,
+            ICdmFormElement parentElement, int style) {
+        super(formFactory, conversation, parentElement, "Gel Photo", style);
+    }
+
+
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getCollection(java.lang.Object)
+     */
+    @Override
+    public Collection<Media> getCollection(Amplification entity) {
+        if(entity.getGelPhoto()!=null){
+            return Collections.singleton(entity.getGelPhoto());
+        }
+        return Collections.EMPTY_LIST;
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#createNewElement()
+     */
+    @Override
+    public Media createNewElement() {
+        if(getEntity().getGelPhoto()==null){
+            return Media.NewInstance();
+        }
+        return null;
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#addElement(java.lang.Object)
+     */
+    @Override
+    public void addElement(Media element) {
+        if(getEntity().getGelPhoto()==null){
+            getEntity().setGelPhoto(element);
+        }
+
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#removeElement(java.lang.Object)
+     */
+    @Override
+    public void removeElement(Media element) {
+        getEntity().setGelPhoto(null);
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getEmptyString()
+     */
+    @Override
+    public String getEmptyString() {
+        return "No gel photos yet";
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getTooltipString()
+     */
+    @Override
+    protected String getTooltipString() {
+        return "Add a gel photo";
+    }
+
+}
index 686412d12e5dcfca647cdadc6c4affbbf7ef2ab1..194ad3ae1cdd29808120de7a63aec772970379dc 100644 (file)
@@ -9,15 +9,12 @@
 */
 package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-
 import eu.etaxonomy.cdm.model.common.DefinedTerm;
 import eu.etaxonomy.cdm.model.molecular.Sequence;
 import eu.etaxonomy.cdm.model.molecular.SequenceString;
 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.LayoutConstants;
 import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.element.UriWithLabelElement;
@@ -39,8 +36,6 @@ public class SequenceGeneralDetailElement extends AbstractCdmDetailElement<Seque
     private TextWithLabelElement textBoldProcessID;
     private UriWithLabelElement textBoldUri;
 
-    private SequenceReferenceCollectionDetailSection sectionReferenceCollection;
-
     /**
      * @param formFactory
      * @param formElement
@@ -71,9 +66,6 @@ public class SequenceGeneralDetailElement extends AbstractCdmDetailElement<Seque
         textBoldUri = formFactory.createUriWithLabelElement(formElement, "BOLD URI", entity.getBoldUri(), style);
         textBoldUri.setEnabled(false);
 
-        sectionReferenceCollection = formFactory.createSequenceReferenceCollectionDetailSection(getConversationHolder(), formElement, ExpandableComposite.TWISTIE);
-        sectionReferenceCollection.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-        sectionReferenceCollection.setEntity(entity);
     }
 
     /*
index f65c16a1d1b8a84f2b56be972d668aa301d89ba3..5f823311133d5333db23174fe143146ffdacd88f 100644 (file)
@@ -55,9 +55,7 @@ public class SequenceReferenceCollectionDetailSection extends AbstractUnboundEnt
     /** {@inheritDoc} */
     @Override
     public void addElement(Reference element) {
-        if(element!=null){
-            getEntity().addCitation(element);
-        }
+        //never gets called
     }
 
     /* (non-Javadoc)
index fa08589e8664a525768347064c266f1eb42e7b97..1645eda023933dc309800cdc457c441d16087383 100644 (file)
@@ -78,10 +78,13 @@ public class SingleReadGeneralDetailElement extends AbstractCdmDetailElement<Sin
 
         //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;
+        Integer readLength = 0;
         String editedSequenceString = "";
         if(editedSequence!=null){
-            readLength = editedSequence.getLength();
+            Integer length = editedSequence.getLength();
+            if(length!=null){
+                readLength = length;
+            }
             editedSequenceString = editedSequence.getString();
         }
         textReadLength = formFactory.createNumberTextWithLabelElement(formElement, "Read Length", readLength, style);
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SingleReadPherogramCollectionDetailSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SingleReadPherogramCollectionDetailSection.java
new file mode 100644 (file)
index 0000000..ac5485a
--- /dev/null
@@ -0,0 +1,98 @@
+// $Id$
+/**
+* Copyright (C) 2014 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
+
+import java.util.Collection;
+import java.util.Collections;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.media.Media;
+import eu.etaxonomy.cdm.model.molecular.SingleRead;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
+
+/**
+ * @author pplitzner
+ * @date 03.03.2014
+ *
+ */
+public class SingleReadPherogramCollectionDetailSection extends AbstractEntityCollectionSection<SingleRead, Media> {
+
+    /**
+     * @param formFactory
+     * @param conversation
+     * @param parentElement
+     * @param title
+     * @param style
+     */
+    public SingleReadPherogramCollectionDetailSection(CdmFormFactory formFactory, ConversationHolder conversation,
+            ICdmFormElement parentElement, int style) {
+        super(formFactory, conversation, parentElement, "Pherogram", style);
+    }
+
+
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getCollection(java.lang.Object)
+     */
+    @Override
+    public Collection<Media> getCollection(SingleRead entity) {
+        if(entity.getPherogram()!=null){
+            return Collections.singleton(entity.getPherogram());
+        }
+        return Collections.EMPTY_LIST;
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#createNewElement()
+     */
+    @Override
+    public Media createNewElement() {
+        if(getEntity().getPherogram()==null){
+            return Media.NewInstance();
+        }
+        return null;
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#addElement(java.lang.Object)
+     */
+    @Override
+    public void addElement(Media element) {
+        if(getEntity().getPherogram()==null){
+            getEntity().setPherogram(element);
+        }
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#removeElement(java.lang.Object)
+     */
+    @Override
+    public void removeElement(Media element) {
+        getEntity().setPherogram(null);
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getEmptyString()
+     */
+    @Override
+    public String getEmptyString() {
+        return "No pherogram yet";
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getTooltipString()
+     */
+    @Override
+    protected String getTooltipString() {
+        return "Add a pherogram";
+    }
+}
index 1c1c5f81db6e252de54391898f2ff81ff8f9c464..198676e8e681e71a24656450398b59df77abe27c 100644 (file)
@@ -95,10 +95,12 @@ import eu.etaxonomy.taxeditor.ui.section.occurrence.derivedUnit.PreservedSpecime
 import eu.etaxonomy.taxeditor.ui.section.occurrence.derivedUnit.PreservedSpecimenDeterminationDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.derivedUnit.PreservedSpecimenGeneralDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationCloningDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationGelPhotoCollectionDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationGeneralDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationPrimerDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaSampleGeneralDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SequenceGeneralDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SingleReadPherogramCollectionDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SingleReadGeneralDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.TissueSampleGeneralDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.media.LivingPlantPhotoGeneralDetailSection;
@@ -743,14 +745,20 @@ public class DetailsViewer extends AbstractCdmDataViewer {
 
         AmplificationCloningDetailSection cloningSection = formFactory.createAmplificationCloningDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
 
+        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+
+        AmplificationGelPhotoCollectionDetailSection gelPhotoSection = formFactory.createAmplificationGelPhotoCollectionDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
+
 
         addPart(generalSection);
         addPart(primerSection);
         addPart(cloningSection);
+        addPart(gelPhotoSection);
     }
 
     private void createSequenceSection(RootElement parent) {
         destroySections();
+
         SequenceGeneralDetailSection section = formFactory.createSequenceGeneralDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
 
         addPart(section);
@@ -758,9 +766,15 @@ public class DetailsViewer extends AbstractCdmDataViewer {
 
     private void createSingleReadSection(RootElement parent) {
         destroySections();
+
         SingleReadGeneralDetailSection section = formFactory.createSingleReadGeneralDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
 
+        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+
+        SingleReadPherogramCollectionDetailSection pherogramSection = formFactory.createSingleReadPherogramCollectionDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
+
         addPart(section);
+        addPart(pherogramSection);
     }
 
     private void createSpecimenScanSection(RootElement parent) {