- generalized sample designation GUI elements
authorPatric Plitzner <p.plitzner@bgbm.org>
Wed, 22 Oct 2014 11:57:52 +0000 (11:57 +0000)
committerPatric Plitzner <p.plitzner@bgbm.org>
Wed, 22 Oct 2014 11:57:52 +0000 (11:57 +0000)
 - added sample designation to TissueSample details view
 - added some more parameters to TissueSample details view

13 files changed:
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateContentProvider.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateDropListener.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/CreateDerivateContextMenu.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AbstractSampleDesignationDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/CurrentSampleDesignationDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationHistoryDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationTextDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/TissueSampleGeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/TissueSampleGeneralDetailSection.java
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 3d27e75c8f5ae1459f5ff177f5d97b5cf044f945..263d12a243fb7f5dd281ed1cef05cb5a4cc47aca 100644 (file)
@@ -16,6 +16,7 @@ import eu.etaxonomy.cdm.model.molecular.SingleRead;
 import eu.etaxonomy.cdm.model.occurrence.DerivationEvent;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 
 public class DerivateContentProvider implements ITreeContentProvider {
@@ -56,7 +57,7 @@ public class DerivateContentProvider implements ITreeContentProvider {
             value = ((TreeNode) element).getValue();
         }
         Set<Object> children = new LinkedHashSet<Object>();
-        if(value instanceof DnaSample){
+        if(value instanceof DnaSample && ((DnaSample) value).getRecordBasis()==SpecimenOrObservationType.DnaSample){
             DnaSample dnaSample = (DnaSample)value;
             Set<Sequence> sequences = dnaSample.getSequences();
             for (Sequence sequence : sequences) {
@@ -101,7 +102,7 @@ public class DerivateContentProvider implements ITreeContentProvider {
             element = ((TreeNode) element).getValue();
         }
 
-        if(element instanceof DnaSample){
+        if(element instanceof DnaSample && ((DnaSample) element).getRecordBasis()==SpecimenOrObservationType.DnaSample){
             DnaSample dnaSample = (DnaSample)element;
             if(!dnaSample.getSequences().isEmpty()){// || !dnaSample.getAmplifications().isEmpty()){
                 return true;
index 69f175743e030568b3e904015de829284f4a00b2..6f6967c038f948167626c97871efeac87f0ddfe3 100644 (file)
@@ -21,6 +21,7 @@ import eu.etaxonomy.cdm.model.molecular.Sequence;
 import eu.etaxonomy.cdm.model.molecular.SingleRead;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -103,7 +104,7 @@ public class DerivateDropListener extends ViewerDropAdapter {
         TreeNode fromParentNode = draggedNode.getParent();
         Object fromParentSpecimen = null;
         if(fromParentNode!=null){
-            fromParentNode.getValue();
+            fromParentSpecimen = fromParentNode.getValue();
         }
 
         // drag'n'drop for SpecimenOrObservationBase
@@ -112,8 +113,9 @@ public class DerivateDropListener extends ViewerDropAdapter {
             DerivedUnit draggedSpecimen = (DerivedUnit) draggedNodeValue;
             SpecimenOrObservationBase<?> targetSpecimen = (SpecimenOrObservationBase<?>) targetNodeValue;
             //check if type is a sub derivate type
-            if(!fromParentNode.equals(targetNode)//don't drag on direct parent node
-                    && fromParentSpecimen instanceof SpecimenOrObservationBase<?>){
+            if(fromParentSpecimen instanceof SpecimenOrObservationBase<?>
+            && fromParentNode!=null
+            && !fromParentNode.equals(targetNode)){//don't drag on direct parent node)
                 return occurrenceService.moveDerivate((SpecimenOrObservationBase<?>)fromParentSpecimen, targetSpecimen, draggedSpecimen);
             }
         }
@@ -127,7 +129,7 @@ public class DerivateDropListener extends ViewerDropAdapter {
         }
 
         // drag'n'drop for Sequence
-        else if(draggedNodeValue instanceof Sequence && targetNodeValue instanceof DnaSample ){
+        else if(draggedNodeValue instanceof Sequence && targetNodeValue instanceof DnaSample && ((SpecimenOrObservationBase<?>) targetNodeValue).getRecordBasis()==SpecimenOrObservationType.DnaSample){
             Sequence sequence = (Sequence)draggedNodeValue;
             if(fromParentSpecimen instanceof DnaSample){
                 return occurrenceService.moveSequence((DnaSample)fromParentSpecimen, (DnaSample)targetNodeValue, sequence);
index b2d6da8bcbfe59f3106467702fa9563068742fa2..9c65824d4ca8af488788ae8978e07b318adefd25 100644 (file)
@@ -57,24 +57,24 @@ public class CreateDerivateContextMenu extends CompoundContributionItem {
                             if(selectedTreeNode.getValue() instanceof FieldUnit){
                                 createMenuItem(addMenu, "Specimen", selectedTreeNode, DerivedUnit.class, SpecimenOrObservationType.PreservedSpecimen);
                                 new MenuItem(addMenu, SWT.SEPARATOR);
-                                createMenuItem(addMenu, "Tissue Sample", selectedTreeNode, DerivedUnit.class, SpecimenOrObservationType.TissueSample);
+                                createMenuItem(addMenu, "Tissue Sample", selectedTreeNode, DnaSample.class, SpecimenOrObservationType.TissueSample);
                                 createMenuItem(addMenu, "DNA Sample", selectedTreeNode, DnaSample.class, SpecimenOrObservationType.DnaSample);
                                 createMenuItem(addMenu, "Media Specimen", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media);
                             }
                             //context menu for Specimen
                             else if(selectedTreeNode.getValue() instanceof DerivedUnit && ((DerivedUnit)selectedTreeNode.getValue()).getRecordBasis()==SpecimenOrObservationType.PreservedSpecimen){
 
-                                createMenuItem(addMenu, "Tissue Sample", selectedTreeNode, DerivedUnit.class, SpecimenOrObservationType.TissueSample);
+                                createMenuItem(addMenu, "Tissue Sample", selectedTreeNode, DnaSample.class, SpecimenOrObservationType.TissueSample);
                                 createMenuItem(addMenu, "DNA Sample", selectedTreeNode, DnaSample.class, SpecimenOrObservationType.DnaSample);
                                 createMenuItem(addMenu, "Media Specimen", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media);
                             }
                             //context menu for TissueSample
-                            else if(selectedTreeNode.getValue() instanceof DerivedUnit && ((DerivedUnit)selectedTreeNode.getValue()).getRecordBasis()==SpecimenOrObservationType.TissueSample){
+                            else if(selectedTreeNode.getValue() instanceof DnaSample && ((DnaSample)selectedTreeNode.getValue()).getRecordBasis()==SpecimenOrObservationType.TissueSample){
                                createMenuItem(addMenu, "DnaSample", selectedTreeNode, DnaSample.class, null);
                                createMenuItem(addMenu, "Media Specimen", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media);
                             }
                             //context menu for DnaSample
-                            else if(selectedTreeNode.getValue() instanceof DnaSample){
+                            else if(selectedTreeNode.getValue() instanceof DnaSample && ((DnaSample)selectedTreeNode.getValue()).getRecordBasis()==SpecimenOrObservationType.DnaSample){
                                 createMenuItem(addMenu, "Consensus Sequence", selectedTreeNode, Sequence.class, null);
                                 createMenuItem(addMenu, "Media Specimen", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media);
                             }
@@ -127,7 +127,7 @@ public class CreateDerivateContextMenu extends CompoundContributionItem {
         public void widgetSelected(SelectionEvent e) {
             Object createdElement = null;
             Object selectedDerivate = selectedNode.getValue();
-            if(selectedDerivate instanceof DnaSample){
+            if(selectedDerivate instanceof DnaSample && ((DnaSample) selectedDerivate).getRecordBasis()==SpecimenOrObservationType.DnaSample){
                 DnaSample dnaSample = (DnaSample)selectedDerivate;
                 if(childClass.equals(Sequence.class)){
                     Sequence newInstance = Sequence.NewInstance("");
@@ -145,6 +145,12 @@ public class CreateDerivateContextMenu extends CompoundContributionItem {
                 DerivedUnit derivedUnit;
                 if(childClass.equals(DnaSample.class)){
                     derivedUnit = DnaSample.NewInstance();
+                    if(specimenType==SpecimenOrObservationType.DnaSample){
+                        derivedUnit.setRecordBasis(SpecimenOrObservationType.DnaSample);
+                    }
+                    else if(specimenType==SpecimenOrObservationType.TissueSample){
+                        derivedUnit.setRecordBasis(SpecimenOrObservationType.TissueSample);
+                    }
                 }
                 else if(childClass.equals(MediaSpecimen.class)){
                     derivedUnit = MediaSpecimen.NewInstance(specimenType);
index 394143d9058607edc4bfad846d6ba04f83c72643..beae890df00451b47e6cea5c9b89a68cbe530ffb 100644 (file)
@@ -11,8 +11,8 @@
 package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
 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;
@@ -25,7 +25,7 @@ import eu.etaxonomy.taxeditor.view.derivateSearch.DerivateLabelProvider;
  *
  */
 public abstract class AbstractSampleDesignationDetailSection extends
-               AbstractEntityCollectionSection<DnaSample, Identifier<DnaSample>> {
+               AbstractEntityCollectionSection<IdentifiableEntity<?>, Identifier> {
 
        public AbstractSampleDesignationDetailSection(CdmFormFactory formFactory,
                        ConversationHolder conversation, ICdmFormElement parentElement,
@@ -38,7 +38,7 @@ public abstract class AbstractSampleDesignationDetailSection extends
         */
        /** {@inheritDoc} */
        @Override
-       public Identifier<DnaSample> createNewElement() {
+       public Identifier createNewElement() {
            Identifier identifier = getEntity().addIdentifier(null, DerivateLabelProvider.getSampleDesignationTerm());
                return identifier;
        }
@@ -48,7 +48,7 @@ public abstract class AbstractSampleDesignationDetailSection extends
         */
        /** {@inheritDoc} */
        @Override
-       public void removeElement(Identifier<DnaSample> sampleDesignation) {
+       public void removeElement(Identifier sampleDesignation) {
                getEntity().removeIdentifier(sampleDesignation);
        }
 
index 472f80ef9e243fecbbb70e2ebc98ca882891ea2e..322631e3e7ec8c8a5332ad63735dc0e59218a6e9 100644 (file)
@@ -14,8 +14,8 @@ import java.util.Collection;
 import java.util.Collections;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
 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;
@@ -43,8 +43,8 @@ public class CurrentSampleDesignationDetailSection extends AbstractSampleDesigna
         * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getCollection(java.lang.Object)
         */
        @Override
-       public Collection<Identifier<DnaSample>> getCollection(DnaSample entity) {
-           Identifier<DnaSample> currentSampleDesignation = DerivateLabelProvider.getCurrentSampleDesignation(entity);
+       public Collection<Identifier> getCollection(IdentifiableEntity<?> entity) {
+           Identifier currentSampleDesignation = DerivateLabelProvider.getCurrentSampleDesignation(entity);
            if(currentSampleDesignation!=null){
                return Collections.singleton(currentSampleDesignation);
            }
@@ -67,7 +67,7 @@ public class CurrentSampleDesignationDetailSection extends AbstractSampleDesigna
      */
     /** {@inheritDoc} */
     @Override
-    public void addElement(Identifier<DnaSample> sampleDesignation) {
+    public void addElement(Identifier sampleDesignation) {
         //The current sample designation is always the first one found.
         //The following are recent sample designations with the most recent being
         //the second one found and so on
index 1f01ddc8fb8f3da8a77ecb5b9e98e7b2bc7f500e..3a12bfd2e94b29fbac75b6056a3e9e49af17f173 100644 (file)
@@ -12,7 +12,7 @@ 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.cdm.model.common.IdentifiableEntity;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
@@ -24,7 +24,7 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
  * @date Oct 20, 2014
  *
  */
-public class SampleDesignationDetailElement extends AbstractCdmDetailElement<DnaSample> {
+public class SampleDesignationDetailElement extends AbstractCdmDetailElement<IdentifiableEntity<?>> {
 
        private CurrentSampleDesignationDetailSection sectionCurrentSampleDesignation;
 
@@ -44,7 +44,7 @@ public class SampleDesignationDetailElement extends AbstractCdmDetailElement<Dna
         */
        @Override
        protected void createControls(ICdmFormElement formElement,
-               DnaSample entity, int style) {
+               IdentifiableEntity<?> entity, int style) {
 
         sectionCurrentSampleDesignation = formFactory.createCurrentSampleDesignationDetailSection(getConversationHolder(), formElement, ExpandableComposite.EXPANDED);
         sectionCurrentSampleDesignation.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
index f10974c2814cccbfffe8e6546ae0f76b35774fae..45f573100b4e6864c891601703da975188ef7f83 100644 (file)
@@ -13,7 +13,7 @@ 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.cdm.model.common.IdentifiableEntity;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
@@ -24,7 +24,7 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
  * @created May 11, 2011
  * @version 1.0
  */
-public class SampleDesignationDetailSection extends AbstractCdmDetailSection<DnaSample> {
+public class SampleDesignationDetailSection extends AbstractCdmDetailSection<IdentifiableEntity<?>> {
 
        /**
         * @param formFactory
@@ -57,7 +57,7 @@ public class SampleDesignationDetailSection extends AbstractCdmDetailSection<Dna
         * @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) {
+       protected AbstractCdmDetailElement<IdentifiableEntity<?>> createCdmDetailElement(AbstractCdmDetailSection<IdentifiableEntity<?>> parentElement, int style) {
            return formFactory.createSampleDesignationDetailElement(parentElement);
        }
 
index c7b6f8c5e0d6e3742a8dbd3b592f91d51ec581d0..77e44fa294c4c3567d9b66db4d1cc11a4b3cbc36 100644 (file)
@@ -14,8 +14,8 @@ import java.util.Collection;
 import java.util.LinkedList;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
 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;
@@ -43,9 +43,9 @@ public class SampleDesignationHistoryDetailSection extends AbstractSampleDesigna
         * @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()) {
+       public Collection<Identifier> getCollection(IdentifiableEntity<?> entity) {
+           LinkedList<Identifier> sampleDesignations = new LinkedList<Identifier>();
+           for (Identifier identifier : entity.getIdentifiers()) {
                if(identifier.getType()!=null && identifier.getType().equals(DerivateLabelProvider.getSampleDesignationTerm())){
                    sampleDesignations.add(identifier);
                }
@@ -76,11 +76,11 @@ public class SampleDesignationHistoryDetailSection extends AbstractSampleDesigna
      */
     /** {@inheritDoc} */
     @Override
-    public void addElement(Identifier<DnaSample> sampleDesignation) {
+    public void addElement(Identifier sampleDesignation) {
         //The current sample designation is always the first one found.
         //The following are recent sample designations with the most recent being
         //the second one found and so on
-        Identifier<DnaSample> currentSampleDesignation = DerivateLabelProvider.getCurrentSampleDesignation(getEntity());
+        Identifier currentSampleDesignation = DerivateLabelProvider.getCurrentSampleDesignation(getEntity());
         int indexOfCurrentSampleDesignation = getEntity().getIdentifiers().indexOf(currentSampleDesignation);
         getEntity().addIdentifier(indexOfCurrentSampleDesignation+1, sampleDesignation);
     }
index 1fe760365fe4168dde5ce843514741013ca8793b..ef54fb2daf9bdde72fd0b045ce9b015bb14f65a9 100644 (file)
@@ -14,7 +14,6 @@ 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;
@@ -29,7 +28,7 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
  * @param <T>
  */
 public class SampleDesignationTextDetailElement extends
-               AbstractEntityCollectionElement<Identifier<DnaSample>> {
+               AbstractEntityCollectionElement<Identifier> {
 
     protected TextWithLabelElement text_description;
 
@@ -42,7 +41,7 @@ public class SampleDesignationTextDetailElement extends
      * @param style
      */
     public SampleDesignationTextDetailElement(CdmFormFactory formFactory, AbstractFormSection<?> section,
-            Identifier<DnaSample> entity, SelectionListener removeListener, Color backgroundColor, int style) {
+            Identifier entity, SelectionListener removeListener, Color backgroundColor, int style) {
         super(formFactory, section, entity, removeListener, backgroundColor, style);
     }
 
@@ -74,7 +73,7 @@ public class SampleDesignationTextDetailElement extends
      * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement#setEntity(java.lang.Object)
      */
     @Override
-    public void setEntity(Identifier<DnaSample> entity) {
+    public void setEntity(Identifier entity) {
         this.entity = entity;
         text_description.setText(entity.getIdentifier());
     }
index b4545e78fa2c73e7cf07acb00a7e40626d9ec2a1..a4ae72d756244b79458c8d96ad32df17d0c97b88 100644 (file)
@@ -11,15 +11,13 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
 import org.apache.log4j.Logger;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
-import eu.etaxonomy.cdm.api.facade.MethodNotSupportedByDerivedUnitTypeException;
 import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.common.DefinedTerm;
 import eu.etaxonomy.cdm.model.common.TermType;
 import eu.etaxonomy.cdm.model.common.TimePeriod;
+import eu.etaxonomy.cdm.model.molecular.DnaSample;
 import eu.etaxonomy.cdm.model.occurrence.Collection;
 import eu.etaxonomy.cdm.model.occurrence.PreservationMethod;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -33,17 +31,14 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
  * @date 16.12.2013
  *
  */
-public class TissueSampleGeneralDetailElement extends AbstractCdmDetailElement<DerivedUnitFacade> {
+public class TissueSampleGeneralDetailElement extends AbstractCdmDetailElement<DnaSample> {
 
     static private final Logger logger = Logger.getLogger(TissueSampleGeneralDetailElement.class);
 
-    //title cache
-    //sample designation
     private TimePeriodElement datePreparation;
     private EntitySelectionElement<AgentBase> selectionPreparedBy;
     private TermComboElement<DefinedTerm> comboPreservationMedium;
     private TimePeriodElement datePreservation;
-    private EntitySelectionElement<AgentBase> selectionStoredAt;
     private EntitySelectionElement<Collection> selectionCollection;
     private TextWithLabelElement textAccessionNumber;
     private TextWithLabelElement textBarcode;
@@ -65,24 +60,20 @@ public class TissueSampleGeneralDetailElement extends AbstractCdmDetailElement<D
      * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
      */
     @Override
-    protected void createControls(ICdmFormElement formElement, DerivedUnitFacade entity, int style) {
-        //FIXME handle all parameters here and in handleEvent()
-        datePreparation = formFactory.createTimePeriodElement(formElement, "Preparation date", null, style);
-        selectionPreparedBy = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Prepared By", null, EntitySelectionElement.ALL, style);
+    protected void createControls(ICdmFormElement formElement, DnaSample entity, int style) {
+        //TODO handle all parameters here and in handleEvent()
         TimePeriod preservationDate = null;
         DefinedTerm preservationMedium = null;
-        try {
-            if(entity.getPreservationMethod()!=null){
-                preservationDate = entity.getPreservationMethod().getTimeperiod();
-                preservationMedium = entity.getPreservationMethod().getMedium();
-            }
-        } catch (MethodNotSupportedByDerivedUnitTypeException e) {
-            // we ignore this
-            MessagingUtils.info(e.getMessage());
+//        TimePeriod preparationDate = null;
+//        AgentBase preparedBy = null;
+        if(entity.getPreservation()!=null){
+            preservationDate = entity.getPreservation().getTimeperiod();
+            preservationMedium = entity.getPreservation().getMedium();
         }
+//        datePreparation = formFactory.createTimePeriodElement(formElement, "Preparation date", preparationDate, style);
+//        selectionPreparedBy = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Prepared By", preparedBy, EntitySelectionElement.ALL, style);
         comboPreservationMedium = formFactory.createDefinedTermComboElement(TermType.MaterialOrMethod, formElement, "Preservation medium", preservationMedium, style);
         datePreservation = formFactory.createTimePeriodElement(formElement, "Preservation date", preservationDate, style);
-        selectionStoredAt = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Stored at", null, EntitySelectionElement.ALL, style);
         selectionCollection = formFactory.createSelectionElement(Collection.class, getConversationHolder(), formElement, "Collection", entity.getCollection(), EntitySelectionElement.ALL, style);
         textAccessionNumber = formFactory.createTextWithLabelElement(formElement, "Accession Number", entity.getAccessionNumber(), style);
         textBarcode = formFactory.createTextWithLabelElement(formElement, "Barcode", entity.getBarcode(), style);
@@ -98,34 +89,32 @@ public class TissueSampleGeneralDetailElement extends AbstractCdmDetailElement<D
      */
     @Override
     public void handleEvent(Object eventSource) {
-//        if (eventSource==comboPreservationMedium) {
-//            addPreservationMethod().setMedium(comboPreservationMedium.getSelection());
-//        }
-//        else if (eventSource==datePreservation) {
-//            addPreservationMethod().setTimeperiod(datePreservation.getTimePeriod());
-//        }
-//        else if(eventSource==selectionCollection){
-//            getEntity().setCollection(selectionCollection.getSelection());
-//        }
-//        else if(eventSource==textAccessionNumber){
-//            getEntity().setAccessionNumber(textAccessionNumber.getText());
-//        }
-//        else if(eventSource==textBarcode){
-//            getEntity().setBarcode(textBarcode.getText());
-//        }
+        if(eventSource==selectionPreparedBy) {
+            addPreservationMethod().setActor(selectionPreparedBy.getSelection());
+        }
+        else if(eventSource==comboPreservationMedium) {
+            addPreservationMethod().setMedium(comboPreservationMedium.getSelection());
+        }
+        else if (eventSource==datePreservation) {
+            addPreservationMethod().setTimeperiod(datePreservation.getTimePeriod());
+        }
+        else if(eventSource==selectionCollection){
+            getEntity().setCollection(selectionCollection.getSelection());
+        }
+        else if(eventSource==textAccessionNumber){
+            getEntity().setAccessionNumber(textAccessionNumber.getText());
+        }
+        else if(eventSource==textBarcode){
+            getEntity().setBarcode(textBarcode.getText());
+        }
     }
 
     private PreservationMethod addPreservationMethod(){
         PreservationMethod preservationMethod = null;
-        try {
-            preservationMethod = getEntity().getPreservationMethod();
-            if(getEntity().getPreservationMethod()==null){
-                preservationMethod = PreservationMethod.NewInstance();
-                getEntity().setPreservationMethod(preservationMethod);
-            }
-        } catch (MethodNotSupportedByDerivedUnitTypeException e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
+        preservationMethod = getEntity().getPreservation();
+        if(getEntity().getPreservation()==null){
+            preservationMethod = PreservationMethod.NewInstance();
+            getEntity().setPreservation(preservationMethod);
         }
         return preservationMethod;
     }
index 5ae74b7566b1e55aa17ca61731b3308755107105..df89f176b17e246dd01b5649b1baf38a52618af7 100644 (file)
@@ -12,7 +12,7 @@ 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.api.facade.DerivedUnitFacade;
+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;
@@ -23,7 +23,7 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
  * @date 12.12.2013
  *
  */
-public class TissueSampleGeneralDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> {
+public class TissueSampleGeneralDetailSection extends AbstractCdmDetailSection<DnaSample> {
 
     /**
      * @param formFactory
@@ -51,7 +51,7 @@ public class TissueSampleGeneralDetailSection extends AbstractCdmDetailSection<D
      * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
      */
     @Override
-    protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
+    protected AbstractCdmDetailElement<DnaSample> createCdmDetailElement(AbstractCdmDetailSection<DnaSample> parentElement, int style) {
         return formFactory.createTissueSampleGeneralDetailElement(parentElement);
     }
 
index e675771936f58d0cab41ac42ecf70202b9b74281..2d06fd31650d5461ff1bfef90095c9eef95f6da9 100644 (file)
@@ -163,7 +163,7 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
             FieldUnit fieldUnit = (FieldUnit)derivate;
             if(fieldUnit.getGatheringEvent()!=null){
                 GatheringEvent gatheringEvent = fieldUnit.getGatheringEvent();
-                if(!conversation.getSession().contains(gatheringEvent)){
+                if(CdmStore.getService(IOccurrenceService.class).exists(fieldUnit.getUuid()) && !conversation.getSession().contains(gatheringEvent)){
                     fieldUnit = (FieldUnit) CdmStore.getService(IOccurrenceService.class).load(fieldUnit.getUuid());
                     gatheringEvent = fieldUnit.getGatheringEvent();
                 }
@@ -235,7 +235,9 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
                 label += derivedUnit.getBarcode()!=null?derivedUnit.getBarcode():emptyString;
             }
             else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.TissueSample){
-                label += derivedUnit.getKindOfUnit() + NO_SAMPLE_DESIGNATION;
+                //TissueSample should only be created by using it's own class
+                //in future using only one class with different SpecimenOrObservationTypes is desired
+//                label += derivedUnit.getKindOfUnit() + NO_SAMPLE_DESIGNATION;
             }
         }
         //Sequence
index 231a10e0dea26b116f29f82ca737d94d291d09a0..bfe64abd77b1e20b89a5968f0469efb0b1c29a91 100644 (file)
@@ -292,7 +292,9 @@ public class DetailsViewer extends AbstractCdmDataViewer {
                 createDerivedUnitBaseElementSection(rootElement);
             }
             else if(((DerivedUnitFacade) input).getType()==SpecimenOrObservationType.TissueSample){
-                createTissueSampleSection(rootElement);
+                //TissueSample should only be created by using it's own class
+                //in future using only one class with different SpecimenOrObservationTypes is desired
+//                createTissueSampleSection(rootElement);
             }
             else if(((DerivedUnitFacade) input).getType()==SpecimenOrObservationType.StillImage){
                 createSpecimenScanSection(rootElement);
@@ -307,7 +309,13 @@ public class DetailsViewer extends AbstractCdmDataViewer {
                 createDerivedUnitBaseElementSection(rootElement);
             }
         } else if (input instanceof DnaSample){
-            createDnaSampleSection(rootElement);
+            DnaSample dnaSample = (DnaSample)input;
+            if(dnaSample.getRecordBasis()==SpecimenOrObservationType.TissueSample){
+                createTissueSampleSection(rootElement);
+            }
+            else if(dnaSample.getRecordBasis()==SpecimenOrObservationType.DnaSample){
+                createDnaSampleSection(rootElement);
+            }
         } else if (input instanceof MediaSpecimen){
             createMediaSpecimenSection(rootElement);
         }
@@ -759,7 +767,12 @@ public class DetailsViewer extends AbstractCdmDataViewer {
 
         TissueSampleGeneralDetailSection section = formFactory.createTissueSampleGeneralDetailSection(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(sampleDesignationDetailSection);
     }
 
     private void createDnaSampleSection(RootElement parent) {
@@ -771,7 +784,6 @@ public class DetailsViewer extends AbstractCdmDataViewer {
 
         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);