- adapted to method signature change in cdmlib
authorPatric Plitzner <p.plitzner@bgbm.org>
Thu, 4 Dec 2014 09:02:48 +0000 (09:02 +0000)
committerPatric Plitzner <p.plitzner@bgbm.org>
Thu, 4 Dec 2014 09:02:48 +0000 (09:02 +0000)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientOccurenceService.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/association/TaxonAssociationDetailElement.java

index ac721ba2d580f7dbe63b50da21860e887eb0ff00..90b6096e41820aaaad4073bcd15d46b6a3ec07c5 100644 (file)
@@ -47,11 +47,13 @@ import eu.etaxonomy.cdm.model.common.Marker;
 import eu.etaxonomy.cdm.model.common.MarkerType;
 import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
+import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
 import eu.etaxonomy.cdm.model.location.Country;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.media.Rights;
 import eu.etaxonomy.cdm.model.molecular.DnaSample;
 import eu.etaxonomy.cdm.model.molecular.Sequence;
+import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
 import eu.etaxonomy.cdm.model.occurrence.DerivationEvent;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
@@ -959,23 +961,22 @@ public class TransientOccurenceService implements IOccurrenceService {
         return defaultService.delete(specimen, config);
     }
 
-
     /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listAssociatedTaxa(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
+     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listIndividualsAssociations(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
      */
     @Override
-    public Collection<TaxonBase<?>> listAssociatedTaxa(SpecimenOrObservationBase<?> specimen, Integer limit,
-            Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.listAssociatedTaxa(specimen, limit, start, orderHints, propertyPaths);
+    public Collection<IndividualsAssociation> listIndividualsAssociations(SpecimenOrObservationBase<?> specimen,
+            Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
+        return defaultService.listIndividualsAssociations(specimen, limit, start, orderHints, propertyPaths);
     }
 
     /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listTypedTaxa(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
+     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listTypeDesignations(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
      */
     @Override
-    public Collection<TaxonBase<?>> listTypedTaxa(SpecimenOrObservationBase<?> specimen, Integer limit, Integer start,
-            List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.listTypedTaxa(specimen, limit, start, orderHints, propertyPaths);
+    public Collection<SpecimenTypeDesignation> listTypeDesignations(SpecimenOrObservationBase<?> specimen,
+            Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
+        return defaultService.listTypeDesignations(specimen, limit, start, orderHints, propertyPaths);
     }
 
 }
index eacf2c694ebdf079ac68a23eaa4e708a2ff7c310..28a59e19db07323b7cfe815e440893c87fbaa530 100644 (file)
@@ -11,6 +11,8 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence.association;
 
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.HashSet;
+import java.util.Set;
 
 import org.eclipse.core.commands.Command;
 import org.eclipse.core.commands.ExecutionException;
@@ -34,6 +36,10 @@ import org.eclipse.ui.handlers.IHandlerService;
 
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
+import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
+import eu.etaxonomy.cdm.model.description.TaxonDescription;
+import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -69,7 +75,15 @@ public class TaxonAssociationDetailElement extends AbstractCdmDetailElement<Deri
         associationsViewer = new TableViewer(getLayoutComposite(), SWT.FULL_SELECTION);
         associationsViewer.getTable().setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
         associationsViewer.setContentProvider(new ArrayContentProvider());
-        Collection<TaxonBase<?>> associatedTaxa = CdmStore.getService(IOccurrenceService.class).listAssociatedTaxa(entity.innerDerivedUnit(), null, null, null, null);
+        Collection<IndividualsAssociation> individualsAssociations = CdmStore.getService(IOccurrenceService.class).listIndividualsAssociations(entity.innerDerivedUnit(), null, null, null, null);
+        //TODO implement service method for this which is just used in the label provider
+        Collection<TaxonBase<?>> associatedTaxa = new HashSet<TaxonBase<?>>();
+        for (IndividualsAssociation individualsAssociation : individualsAssociations) {
+            if(individualsAssociation.getInDescription() instanceof TaxonDescription){
+                TaxonDescription taxonDescription = (TaxonDescription)individualsAssociation.getInDescription();
+                associatedTaxa.add(taxonDescription.getTaxon());
+            }
+        }
         associationsViewer.setInput(associatedTaxa);
         associationsViewer.addDoubleClickListener(this);
 
@@ -79,7 +93,19 @@ public class TaxonAssociationDetailElement extends AbstractCdmDetailElement<Deri
         typeDesignationViewer = new TableViewer(getLayoutComposite(), SWT.FULL_SELECTION);
         typeDesignationViewer.getTable().setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
         typeDesignationViewer.setContentProvider(new ArrayContentProvider());
-        Collection<TaxonBase<?>> typedTaxa = CdmStore.getService(IOccurrenceService.class).listTypedTaxa(entity.innerDerivedUnit(), null, null, null, null);
+        Collection<SpecimenTypeDesignation> typeDesignations = CdmStore.getService(IOccurrenceService.class).listTypeDesignations(entity.innerDerivedUnit(), null, null, null, null);
+        //TODO implement service method for this which is just used in the label provider
+        Collection<TaxonBase<?>> typedTaxa = new HashSet<TaxonBase<?>>();
+        for (SpecimenTypeDesignation specimenTypeDesignation : typeDesignations) {
+            for (TaxonNameBase taxonNameBase : specimenTypeDesignation.getTypifiedNames()) {
+                Set taxa = taxonNameBase.getTaxa();
+                for (Object taxon : taxa) {
+                    if(taxon instanceof TaxonBase<?>){
+                        typedTaxa.add((TaxonBase<?>) taxon);
+                    }
+                }
+            }
+        }
         typeDesignationViewer.setInput(typedTaxa);
         typeDesignationViewer.addDoubleClickListener(this);
     }