- added sampleDesignation section to DnaSample details view (#4237)
authorPatric Plitzner <p.plitzner@bgbm.org>
Mon, 20 Oct 2014 08:47:23 +0000 (08:47 +0000)
committerPatric Plitzner <p.plitzner@bgbm.org>
Mon, 20 Oct 2014 08:47:23 +0000 (08:47 +0000)
 - added sampleDesignation to DerivateLabelProvider

12 files changed:
.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/CurrentDeterminationDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AbstractSampleDesignationDetailSection.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/CurrentSampleDesignationDetailSection.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/DnaSampleGeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationDetailElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationDetailSection.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationHistoryDetailSection.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationTextDetailElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateLabelProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewer.java

index 686340b0de0ae41260cadbd365fa28c5daf7a2e6..65aff74d8144ce86b964f8a679035bb0e691ac17 100644 (file)
@@ -1673,6 +1673,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/derivedUnit/PreservedSpecimenGeneralDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/derivedUnit/PreservedSpecimenGeneralDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/derivedUnit/PreservedSpecimenSourceCollectionDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/derivedUnit/PreservedSpecimenGeneralDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/derivedUnit/PreservedSpecimenGeneralDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/derivedUnit/PreservedSpecimenSourceCollectionDetailSection.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AbstractSampleDesignationDetailSection.java -text
 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/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
@@ -1682,11 +1683,16 @@ 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/AmplificationGeneralDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationPrimerDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationPrimerDetailSection.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
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationPrimerDetailSection.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/CurrentSampleDesignationDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/DnaQualityDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/DnaQualityDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/DnaSampleGeneralDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/DnaSampleGeneralDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/PrimerGeneralDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/DnaQualityDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/DnaQualityDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/DnaSampleGeneralDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/DnaSampleGeneralDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/PrimerGeneralDetailElement.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationDetailElement.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationDetailSection.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationHistoryDetailSection.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationTextDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SequenceContigFileCollectionDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SequenceGeneralDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SequenceGeneralDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SequenceContigFileCollectionDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SequenceGeneralDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SequenceGeneralDetailSection.java -text
index 771a1f068f73ecf12057aecfcd8f00c10a36f12f..96ce2035bb52762ea4f0f78e0a3bb83796497753 100644 (file)
@@ -56,6 +56,7 @@ import eu.etaxonomy.cdm.model.common.Group;
 import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.model.common.IEnumTerm;
 import eu.etaxonomy.cdm.model.common.IdentifiableSource;
 import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.model.common.IEnumTerm;
 import eu.etaxonomy.cdm.model.common.IdentifiableSource;
+import eu.etaxonomy.cdm.model.common.Identifier;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.common.Marker;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.common.Marker;
@@ -85,6 +86,7 @@ import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.media.MediaRepresentation;
 import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;
 import eu.etaxonomy.cdm.model.media.Rights;
 import eu.etaxonomy.cdm.model.media.MediaRepresentation;
 import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;
 import eu.etaxonomy.cdm.model.media.Rights;
+import eu.etaxonomy.cdm.model.molecular.DnaSample;
 import eu.etaxonomy.cdm.model.name.NameRelationship;
 import eu.etaxonomy.cdm.model.name.NameTypeDesignation;
 import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;
 import eu.etaxonomy.cdm.model.name.NameRelationship;
 import eu.etaxonomy.cdm.model.name.NameTypeDesignation;
 import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;
@@ -237,11 +239,16 @@ import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationGeneralDeta
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationGeneralDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationPrimerDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationPrimerDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationGeneralDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationPrimerDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationPrimerDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.CurrentSampleDesignationDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaQualityDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaQualityDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaSampleGeneralDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaSampleGeneralDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.PrimerGeneralDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaQualityDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaQualityDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaSampleGeneralDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaSampleGeneralDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.PrimerGeneralDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SampleDesignationDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SampleDesignationDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SampleDesignationHistoryDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SampleDesignationTextDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SequenceContigFileCollectionDetailSection;
 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.SequenceContigFileCollectionDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SequenceGeneralDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SequenceGeneralDetailSection;
@@ -1810,6 +1817,12 @@ public class CdmFormFactory extends FormToolkit {
         return section;
     }
 
         return section;
     }
 
+    public SampleDesignationDetailSection createSampleDesignationDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        SampleDesignationDetailSection section = new SampleDesignationDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
     public PreservedSpecimenDeterminationDetailSection createPreservedSpecimenDeterminationDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
         PreservedSpecimenDeterminationDetailSection section = new PreservedSpecimenDeterminationDetailSection(this, conversation, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
     public PreservedSpecimenDeterminationDetailSection createPreservedSpecimenDeterminationDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
         PreservedSpecimenDeterminationDetailSection section = new PreservedSpecimenDeterminationDetailSection(this, conversation, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
@@ -2179,6 +2192,12 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
         return element;
     }
 
+    public SampleDesignationDetailElement createSampleDesignationDetailElement(ICdmFormElement parentElement) {
+        SampleDesignationDetailElement element = new SampleDesignationDetailElement(this, parentElement);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
     /**
      * @param parentElement
      * @param element
     /**
      * @param parentElement
      * @param element
@@ -2333,6 +2352,12 @@ public class CdmFormFactory extends FormToolkit {
         return section;
     }
 
         return section;
     }
 
+    public CurrentSampleDesignationDetailSection createCurrentSampleDesignationDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        CurrentSampleDesignationDetailSection section = new CurrentSampleDesignationDetailSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
     public CurrentDeterminationDetailSection createCurrentDeterminationDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
         CurrentDeterminationDetailSection section = new CurrentDeterminationDetailSection(this, conversation, parentElement, style);
         addAndAdaptSection(parentElement, section);
     public CurrentDeterminationDetailSection createCurrentDeterminationDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
         CurrentDeterminationDetailSection section = new CurrentDeterminationDetailSection(this, conversation, parentElement, style);
         addAndAdaptSection(parentElement, section);
@@ -2345,6 +2370,12 @@ public class CdmFormFactory extends FormToolkit {
         return section;
     }
 
         return section;
     }
 
+    public SampleDesignationHistoryDetailSection createSampleDesignationHistoryDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        SampleDesignationHistoryDetailSection section = new SampleDesignationHistoryDetailSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
     public DeterminationHistoryDetailSection createDeterminationHistoryDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
         DeterminationHistoryDetailSection section = new DeterminationHistoryDetailSection(this, conversation, parentElement, style);
         addAndAdaptSection(parentElement, section);
     public DeterminationHistoryDetailSection createDeterminationHistoryDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
         DeterminationHistoryDetailSection section = new DeterminationHistoryDetailSection(this, conversation, parentElement, style);
         addAndAdaptSection(parentElement, section);
@@ -2555,6 +2586,8 @@ public class CdmFormFactory extends FormToolkit {
             if (descriptionElement.getFeature().equals(Feature.PROTOLOGUE())) {
                 element = new ProtologueElement(this, parentElement, descriptionElement, removeListener, style);
             }
             if (descriptionElement.getFeature().equals(Feature.PROTOLOGUE())) {
                 element = new ProtologueElement(this, parentElement, descriptionElement, removeListener, style);
             }
+        } else if (entity instanceof Identifier) {
+            element = new SampleDesignationTextDetailElement(this, parentElement, (Identifier<DnaSample>) entity, removeListener, backgroundColor, style);
         }
 
         if (element == null) {
         }
 
         if (element == null) {
index 34f1cbbcc2b2a3b05c392f1ca94c658796673ee9..1d4a8cc3388c4fcd9565413acfedad9edf98e9da 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
 * 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.
 */
 * 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.
 */
@@ -14,6 +14,7 @@ import java.util.Arrays;
 import java.util.Collection;
 
 import org.eclipse.jface.action.Action;
 import java.util.Collection;
 
 import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
 import org.eclipse.jface.action.ToolBarManager;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.swt.SWT;
 import org.eclipse.jface.action.ToolBarManager;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.swt.SWT;
@@ -46,43 +47,44 @@ public class CurrentDeterminationDetailSection extends
                        int style) {
                super(formFactory, conversation, parentElement, "Current Determination", style);
        }
                        int style) {
                super(formFactory, conversation, parentElement, "Current Determination", style);
        }
-       
+
        @Override
        protected Control createToolbar() {
                ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT);
        @Override
        protected Control createToolbar() {
                ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT);
-               
-               Action addAction = new Action("add", Action.AS_PUSH_BUTTON){
+
+               Action addAction = new Action("add", IAction.AS_PUSH_BUTTON){
                        /* (non-Javadoc)
                         * @see org.eclipse.jface.action.Action#run()
                         */
                        @Override
                        public void run() {
                                DeterminationEvent element = createNewElement();
                        /* (non-Javadoc)
                         * @see org.eclipse.jface.action.Action#run()
                         */
                        @Override
                        public void run() {
                                DeterminationEvent element = createNewElement();
-                               
+
                                // set as preferred determination
                                getEntity().setPreferredDetermination(element);
                                // set as preferred determination
                                getEntity().setPreferredDetermination(element);
-                               
+
                                if(element != null){
                                if(element != null){
-                                       if(! getSection().isExpanded())
-                                               getSection().setExpanded(true);
-                                       internalUpdateSection(true); 
+                                       if(! getSection().isExpanded()) {
+                        getSection().setExpanded(true);
+                    }
+                                       internalUpdateSection(true);
                                }
                        }
                };
                addAction.setImageDescriptor(new ImageDescriptor() {
                                }
                        }
                };
                addAction.setImageDescriptor(new ImageDescriptor() {
-                       
+
                        @Override
                        public ImageData getImageData() {
                                return ImageResources.getImage(ImageResources.ADD_ICON).getImageData();
                        }
                });
                addAction.setToolTipText(getTooltipString());
                        @Override
                        public ImageData getImageData() {
                                return ImageResources.getImage(ImageResources.ADD_ICON).getImageData();
                        }
                });
                addAction.setToolTipText(getTooltipString());
-               
+
                toolBarManager.add(addAction);
                toolBarManager.add(addAction);
-               
+
                return toolBarManager.createControl(this);
        }
                return toolBarManager.createControl(this);
        }
-       
+
        @Override
        public void refresh() {
                internalUpdateSection(false);
        @Override
        public void refresh() {
                internalUpdateSection(false);
@@ -96,7 +98,7 @@ public class CurrentDeterminationDetailSection extends
                DeterminationEvent preferredDetermination = entity.getPreferredDetermination();
                return preferredDetermination != null ? Arrays.asList(new DeterminationEvent[]{preferredDetermination}) : null;
        }
                DeterminationEvent preferredDetermination = entity.getPreferredDetermination();
                return preferredDetermination != null ? Arrays.asList(new DeterminationEvent[]{preferredDetermination}) : null;
        }
-       
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.ui.section.occurrence.AbstractDeterminationEventDetailSection#createNewElement()
         */
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.ui.section.occurrence.AbstractDeterminationEventDetailSection#createNewElement()
         */
@@ -106,7 +108,7 @@ public class CurrentDeterminationDetailSection extends
                newElement.setPreferredFlag(true);
                return newElement;
        }
                newElement.setPreferredFlag(true);
                return newElement;
        }
-       
+
 
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getTooltipString()
 
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getTooltipString()
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AbstractSampleDesignationDetailSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AbstractSampleDesignationDetailSection.java
new file mode 100644 (file)
index 0000000..50f8bf0
--- /dev/null
@@ -0,0 +1,73 @@
+// $Id$
+/**
+* Copyright (C) 2007 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 eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.common.Identifier;
+import eu.etaxonomy.cdm.model.molecular.DnaSample;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
+import eu.etaxonomy.taxeditor.view.derivateSearch.DerivateLabelProvider;
+
+/**
+ *
+ * @author pplitzner
+ * @date Oct 16, 2014
+ *
+ */
+public abstract class AbstractSampleDesignationDetailSection extends
+               AbstractEntityCollectionSection<DnaSample, Identifier<DnaSample>> {
+
+       public AbstractSampleDesignationDetailSection(CdmFormFactory formFactory,
+                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       String title, int style) {
+               super(formFactory, conversation, parentElement, title, style);
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#createNewElement()
+        */
+       /** {@inheritDoc} */
+       @Override
+       public Identifier<DnaSample> createNewElement() {
+           Identifier identifier = getEntity().addIdentifier(null, DerivateLabelProvider.getSampleDesignationTerm());
+               return identifier;
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#addElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
+        */
+       /** {@inheritDoc} */
+       @Override
+       public void addElement(Identifier<DnaSample> sampleDesignation) {
+               getEntity().addIdentifier(sampleDesignation);
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#removeElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
+        */
+       /** {@inheritDoc} */
+       @Override
+       public void removeElement(Identifier<DnaSample> sampleDesignation) {
+               getEntity().removeIdentifier(sampleDesignation);
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getEmptyString()
+        */
+       /** {@inheritDoc} */
+       @Override
+       public String getEmptyString() {
+               return "No sample designations yet.";
+       }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/CurrentSampleDesignationDetailSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/CurrentSampleDesignationDetailSection.java
new file mode 100644 (file)
index 0000000..4c782d2
--- /dev/null
@@ -0,0 +1,118 @@
+// $Id$
+/**
+* Copyright (C) 2007 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 java.util.LinkedList;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.ToolBarManager;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.ImageData;
+import org.eclipse.swt.widgets.Control;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.common.Identifier;
+import eu.etaxonomy.cdm.model.molecular.DnaSample;
+import eu.etaxonomy.taxeditor.model.ImageResources;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.view.derivateSearch.DerivateLabelProvider;
+
+/**
+ *
+ * @author pplitzner
+ * @date Oct 16, 2014
+ *
+ */
+public class CurrentSampleDesignationDetailSection extends AbstractSampleDesignationDetailSection {
+
+       public CurrentSampleDesignationDetailSection(CdmFormFactory formFactory,
+                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       int style) {
+               super(formFactory, conversation, parentElement, "Current Sample Designation", style);
+       }
+
+       @Override
+       protected Control createToolbar() {
+               ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT);
+
+               Action addAction = new Action("add", IAction.AS_PUSH_BUTTON){
+                       /* (non-Javadoc)
+                        * @see org.eclipse.jface.action.Action#run()
+                        */
+                       @Override
+                       public void run() {
+                           Identifier<DnaSample> element = createNewElement();
+
+                               getEntity().addIdentifier(element);
+
+                               if(element != null){
+                                       if(! getSection().isExpanded()) {
+                        getSection().setExpanded(true);
+                    }
+                                       internalUpdateSection(true);
+                               }
+                       }
+               };
+               addAction.setImageDescriptor(new ImageDescriptor() {
+
+                       @Override
+                       public ImageData getImageData() {
+                               return ImageResources.getImage(ImageResources.ADD_ICON).getImageData();
+                       }
+               });
+               addAction.setToolTipText(getTooltipString());
+
+               toolBarManager.add(addAction);
+
+               return toolBarManager.createControl(this);
+       }
+
+       @Override
+       public void refresh() {
+               internalUpdateSection(false);
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getCollection(java.lang.Object)
+        */
+       @Override
+       public Collection<Identifier<DnaSample>> getCollection(DnaSample entity) {
+           LinkedList<Identifier<DnaSample>> sampleDesignations = new LinkedList<Identifier<DnaSample>>();
+           for (Identifier<DnaSample> identifier : entity.getIdentifiers()) {
+            if(identifier.getType()!=null && identifier.getType().equals(DerivateLabelProvider.getSampleDesignationTerm())){
+                sampleDesignations.add(identifier);
+            }
+        }
+        Collections.reverse(sampleDesignations);
+        if(sampleDesignations.size()>0){
+            //last sample designation is the current
+            return Collections.singleton(sampleDesignations.getFirst());
+        }
+        else{
+            return Collections.emptyList();
+        }
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getTooltipString()
+        */
+       /** {@inheritDoc} */
+       @Override
+       protected String getTooltipString() {
+               return "Create new current sample designation";
+       }
+
+}
index d0dd9c4dd32735fba4dbee5880b3c4bb6ba48dfb..3b5dc4d88b17fb69ed89ac15cfa7e0f4b5e96eed 100644 (file)
@@ -31,7 +31,6 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
  */
 public class DnaSampleGeneralDetailElement extends AbstractCdmDetailElement<DnaSample> {
 
  */
 public class DnaSampleGeneralDetailElement extends AbstractCdmDetailElement<DnaSample> {
 
-
     private TimePeriodElement datePreservationDate;
     private EntitySelectionElement<AgentBase> selectionPreparedBy;
     private NumberWithLabelElement numberPreservationTemperature;
     private TimePeriodElement datePreservationDate;
     private EntitySelectionElement<AgentBase> selectionPreparedBy;
     private NumberWithLabelElement numberPreservationTemperature;
@@ -56,7 +55,7 @@ public class DnaSampleGeneralDetailElement extends AbstractCdmDetailElement<DnaS
     @Override
     protected void createControls(ICdmFormElement formElement, DnaSample entity, int style) {
         TimePeriod timePeriod = null;
     @Override
     protected void createControls(ICdmFormElement formElement, DnaSample entity, int style) {
         TimePeriod timePeriod = null;
-        AgentBase actor = null;
+        AgentBase<?> actor = null;
         Double temperature = null;
         DefinedTerm definedMaterialOrMethod = null;
         if(entity.getPreservation()!=null){
         Double temperature = null;
         DefinedTerm definedMaterialOrMethod = null;
         if(entity.getPreservation()!=null){
@@ -66,13 +65,13 @@ public class DnaSampleGeneralDetailElement extends AbstractCdmDetailElement<DnaS
             definedMaterialOrMethod = entity.getPreservation().getDefinedMaterialOrMethod();
         }
         datePreservationDate = formFactory.createTimePeriodElement(formElement, "Preservation date", timePeriod, style);
             definedMaterialOrMethod = entity.getPreservation().getDefinedMaterialOrMethod();
         }
         datePreservationDate = formFactory.createTimePeriodElement(formElement, "Preservation date", timePeriod, style);
-        // TODO sample designation
         selectionPreparedBy = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Prepared by", actor, EntitySelectionElement.ALL, style);
         numberPreservationTemperature = formFactory.createNumberTextWithLabelElement(formElement, "Preservation Temp. [C°]", temperature, style);
         comboMaterialOrMethods = formFactory.createDefinedTermComboElement(TermType.MaterialOrMethod, formElement, "Materials & Methods", definedMaterialOrMethod, style);
         //TODO preparation date
         //TODO sample type
         textBarcode = formFactory.createTextWithLabelElement(formElement, "Barcode", entity.getBarcode(), style);
         selectionPreparedBy = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Prepared by", actor, EntitySelectionElement.ALL, style);
         numberPreservationTemperature = formFactory.createNumberTextWithLabelElement(formElement, "Preservation Temp. [C°]", temperature, style);
         comboMaterialOrMethods = formFactory.createDefinedTermComboElement(TermType.MaterialOrMethod, formElement, "Materials & Methods", definedMaterialOrMethod, style);
         //TODO preparation date
         //TODO sample type
         textBarcode = formFactory.createTextWithLabelElement(formElement, "Barcode", entity.getBarcode(), style);
+
     }
 
     /*
     }
 
     /*
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationDetailElement.java
new file mode 100644 (file)
index 0000000..1f01ddc
--- /dev/null
@@ -0,0 +1,69 @@
+// $Id$
+/**
+* Copyright (C) 2007 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 org.eclipse.ui.forms.widgets.ExpandableComposite;
+
+import eu.etaxonomy.cdm.model.molecular.DnaSample;
+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.section.AbstractCdmDetailElement;
+
+/**
+ *
+ * @author pplitzner
+ * @date Oct 20, 2014
+ *
+ */
+public class SampleDesignationDetailElement extends AbstractCdmDetailElement<DnaSample> {
+
+       private CurrentSampleDesignationDetailSection sectionCurrentSampleDesignation;
+
+       private SampleDesignationHistoryDetailSection sectionSampleDesignationHistory;
+
+       /**
+        * @param formFactory
+        * @param formElement
+        */
+       public SampleDesignationDetailElement(CdmFormFactory formFactory,
+                       ICdmFormElement formElement) {
+               super(formFactory, formElement);
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement#createControls(eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement, java.lang.Object, int)
+        */
+       @Override
+       protected void createControls(ICdmFormElement formElement,
+               DnaSample entity, int style) {
+
+        sectionCurrentSampleDesignation = formFactory.createCurrentSampleDesignationDetailSection(getConversationHolder(), formElement, ExpandableComposite.EXPANDED);
+        sectionCurrentSampleDesignation.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+        sectionCurrentSampleDesignation.setEntity(entity);
+
+        sectionSampleDesignationHistory = formFactory.createSampleDesignationHistoryDetailSection(getConversationHolder(), formElement, ExpandableComposite.TWISTIE);
+        sectionSampleDesignationHistory.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+        sectionSampleDesignationHistory.setEntity(entity);
+
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement#handleEvent(java.lang.Object)
+        */
+       @Override
+       public void handleEvent(Object eventSource) {
+               if(eventSource == sectionCurrentSampleDesignation){
+                       sectionSampleDesignationHistory.refresh();
+               }
+       }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationDetailSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationDetailSection.java
new file mode 100644 (file)
index 0000000..f10974c
--- /dev/null
@@ -0,0 +1,64 @@
+// $Id$
+/**
+* Copyright (C) 2007 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 org.eclipse.jface.viewers.ISelectionProvider;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.molecular.DnaSample;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
+
+/**
+ * @author n.hoffmann
+ * @created May 11, 2011
+ * @version 1.0
+ */
+public class SampleDesignationDetailSection extends AbstractCdmDetailSection<DnaSample> {
+
+       /**
+        * @param formFactory
+        * @param conversation
+        * @param parentElement
+        * @param selectionProvider
+        * @param style
+        */
+       public SampleDesignationDetailSection(CdmFormFactory formFactory,
+                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ISelectionProvider selectionProvider, int style) {
+               super(formFactory, conversation, parentElement, selectionProvider, style);
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#getHeading()
+        */
+       @Override
+       public String getHeading() {
+               return "Sample Designations";
+       }
+
+       @Override
+    protected void setSectionTitle() {
+           this.setText(getHeading());
+           setTextClient(createToolbar());
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
+        */
+       @Override
+       protected AbstractCdmDetailElement<DnaSample> createCdmDetailElement(AbstractCdmDetailSection<DnaSample> parentElement, int style) {
+           return formFactory.createSampleDesignationDetailElement(parentElement);
+       }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationHistoryDetailSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationHistoryDetailSection.java
new file mode 100644 (file)
index 0000000..08a05af
--- /dev/null
@@ -0,0 +1,76 @@
+// $Id$
+/**
+* Copyright (C) 2007 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 java.util.LinkedList;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.common.Identifier;
+import eu.etaxonomy.cdm.model.molecular.DnaSample;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.view.derivateSearch.DerivateLabelProvider;
+
+/**
+ * @author n.hoffmann
+ * @created May 11, 2011
+ * @version 1.0
+ */
+public class SampleDesignationHistoryDetailSection extends AbstractSampleDesignationDetailSection {
+
+       /**
+        * @param formFactory
+        * @param conversation
+        * @param parentElement
+        * @param style
+        */
+       public SampleDesignationHistoryDetailSection(CdmFormFactory formFactory,
+                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       int style) {
+               super(formFactory, conversation, parentElement, "Sample Designation History", style);
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getCollection(java.lang.Object)
+        */
+       @Override
+       public Collection<Identifier<DnaSample>> getCollection(DnaSample entity) {
+           LinkedList<Identifier<DnaSample>> sampleDesignations = new LinkedList<Identifier<DnaSample>>();
+           for (Identifier<DnaSample> identifier : entity.getIdentifiers()) {
+               if(identifier.getType()!=null && identifier.getType().equals(DerivateLabelProvider.getSampleDesignationTerm())){
+                   sampleDesignations.add(identifier);
+               }
+           }
+           Collections.reverse(sampleDesignations);
+           if(sampleDesignations.size()>0){
+               sampleDesignations.removeFirst();//last is the current sample designation
+           }
+           return sampleDesignations;
+       }
+
+       @Override
+       public void refresh() {
+               internalUpdateSection(false);
+       }
+
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getTooltipString()
+        */
+       /** {@inheritDoc} */
+       @Override
+       protected String getTooltipString() {
+               return "Add a sample designation to the history";
+       }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationTextDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationTextDetailElement.java
new file mode 100644 (file)
index 0000000..1fe7603
--- /dev/null
@@ -0,0 +1,82 @@
+// $Id$
+/**
+ * Copyright (C) 2007 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 org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Color;
+
+import eu.etaxonomy.cdm.model.common.Identifier;
+import eu.etaxonomy.cdm.model.molecular.DnaSample;
+import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
+
+/**
+ *
+ * @author pplitzner
+ * @date Oct 16, 2014
+ *
+ * @param <T>
+ */
+public class SampleDesignationTextDetailElement extends
+               AbstractEntityCollectionElement<Identifier<DnaSample>> {
+
+    protected TextWithLabelElement text_description;
+
+       /**
+     * @param formFactory
+     * @param section
+     * @param entity
+     * @param removeListener
+     * @param backgroundColor
+     * @param style
+     */
+    public SampleDesignationTextDetailElement(CdmFormFactory formFactory, AbstractFormSection<?> section,
+            Identifier<DnaSample> entity, SelectionListener removeListener, Color backgroundColor, int style) {
+        super(formFactory, section, entity, removeListener, backgroundColor, style);
+    }
+
+       /*
+        * (non-Javadoc)
+        *
+        * @see
+        * eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement#createControls
+        * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, int)
+        */
+       /** {@inheritDoc} */
+       @Override
+       public void createControls(ICdmFormElement element, int style) {
+               text_description = formFactory.createTextWithLabelElement(element,
+                               "Sample Designation", null, style);
+       }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement#handleEvent(java.lang.Object)
+     */
+    @Override
+    public void handleEvent(Object eventSource) {
+        if(eventSource==text_description){
+            this.entity.setIdentifier(text_description.getText());
+        }
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement#setEntity(java.lang.Object)
+     */
+    @Override
+    public void setEntity(Identifier<DnaSample> entity) {
+        this.entity = entity;
+        text_description.setText(entity.getIdentifier());
+    }
+
+}
index e7e014a1be012519800d0b078e1e6536a1c22e09..1a1b4833f1fa6463e824093187ef44195c12991e 100644 (file)
@@ -52,6 +52,7 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
     private static DefinedTerm drawingTerm = null;
     private static DefinedTerm specimenScanTerm = null;
     private static DefinedTerm detailImageTerm = null;
     private static DefinedTerm drawingTerm = null;
     private static DefinedTerm specimenScanTerm = null;
     private static DefinedTerm detailImageTerm = null;
+    private static DefinedTerm sampleDesignationTerm = null;
 
     private static void initializeTerms() {
         List<DefinedTerm> preferredTerms = CdmStore.getTermManager().getPreferredTerms(DefinedTerm.class);
 
     private static void initializeTerms() {
         List<DefinedTerm> preferredTerms = CdmStore.getTermManager().getPreferredTerms(DefinedTerm.class);
@@ -68,6 +69,9 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
             else if(definedTerm.getUuid().equals(UUID.fromString("31eb8d02-bf5d-437c-bcc6-87a626445f34"))){
                 detailImageTerm = definedTerm;
             }
             else if(definedTerm.getUuid().equals(UUID.fromString("31eb8d02-bf5d-437c-bcc6-87a626445f34"))){
                 detailImageTerm = definedTerm;
             }
+            else if(definedTerm.getUuid().equals(UUID.fromString("fadeba12-1be3-4bc7-9ff5-361b088d86fc"))){
+                sampleDesignationTerm = definedTerm;
+            }
         }
     }
 
         }
     }
 
@@ -99,6 +103,13 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
         return detailImageTerm;
     }
 
         return detailImageTerm;
     }
 
+    public static DefinedTerm getSampleDesignationTerm(){
+        if(sampleDesignationTerm==null){
+            initializeTerms();
+        }
+        return sampleDesignationTerm;
+    }
+
 
     /** {@inheritDoc} */
     @Override
 
     /** {@inheritDoc} */
     @Override
@@ -166,7 +177,15 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
         else if(element instanceof DnaSample
                 || (element instanceof DerivedUnit
                         && ((SpecimenOrObservationBase<?>) element).getRecordBasis()==SpecimenOrObservationType.DnaSample)){
         else if(element instanceof DnaSample
                 || (element instanceof DerivedUnit
                         && ((SpecimenOrObservationBase<?>) element).getRecordBasis()==SpecimenOrObservationType.DnaSample)){
-            label += "[no sample designation]";
+            DerivedUnit derivedUnit = (DerivedUnit)element;
+            Set<String> identifiers = derivedUnit.getIdentifiers(getSampleDesignationTerm());
+            if(identifiers.isEmpty()){
+                label += "[no sample designation]";
+            }
+            else{
+                String identifier = identifiers.iterator().next();
+                label += identifier==null?"":identifier;
+            }
 
         }
         else if(element instanceof DerivedUnit){
 
         }
         else if(element instanceof DerivedUnit){
index bedd1ffe717fd0619d1bef34a25d2e59eef552ee..231a10e0dea26b116f29f82ca737d94d291d09a0 100644 (file)
@@ -101,6 +101,7 @@ import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationGeneralDeta
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationPrimerDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaQualityDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaSampleGeneralDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationPrimerDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaQualityDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaSampleGeneralDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SampleDesignationDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SequenceContigFileCollectionDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SequenceGeneralDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SequenceReferenceCollectionDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SequenceContigFileCollectionDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SequenceGeneralDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SequenceReferenceCollectionDetailSection;
@@ -770,8 +771,14 @@ public class DetailsViewer extends AbstractCdmDataViewer {
 
         DnaQualityDetailSection qualitySection = formFactory.createDnaQualityDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
 
 
         DnaQualityDetailSection qualitySection = formFactory.createDnaQualityDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
 
+
+        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+
+        SampleDesignationDetailSection sampleDesignationDetailSection = formFactory.createSampleDesignationDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
+
         addPart(section);
         addPart(qualitySection);
         addPart(section);
         addPart(qualitySection);
+        addPart(sampleDesignationDetailSection);
     }
 
     private void createAmplificationSection(RootElement parent) {
     }
 
     private void createAmplificationSection(RootElement parent) {