From abc0d35a03e03cb582adf5da951e3b13a96bea6b Mon Sep 17 00:00:00 2001 From: Patric Plitzner Date: Thu, 4 Dec 2014 09:02:48 +0000 Subject: [PATCH] - adapted to method signature change in cdmlib --- .../TransientOccurenceService.java | 19 ++++++------ .../TaxonAssociationDetailElement.java | 30 +++++++++++++++++-- 2 files changed, 38 insertions(+), 11 deletions(-) diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientOccurenceService.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientOccurenceService.java index ac721ba2d..90b6096e4 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientOccurenceService.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientOccurenceService.java @@ -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> listAssociatedTaxa(SpecimenOrObservationBase specimen, Integer limit, - Integer start, List orderHints, List propertyPaths) { - return defaultService.listAssociatedTaxa(specimen, limit, start, orderHints, propertyPaths); + public Collection listIndividualsAssociations(SpecimenOrObservationBase specimen, + Integer limit, Integer start, List orderHints, List 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> listTypedTaxa(SpecimenOrObservationBase specimen, Integer limit, Integer start, - List orderHints, List propertyPaths) { - return defaultService.listTypedTaxa(specimen, limit, start, orderHints, propertyPaths); + public Collection listTypeDesignations(SpecimenOrObservationBase specimen, + Integer limit, Integer start, List orderHints, List propertyPaths) { + return defaultService.listTypeDesignations(specimen, limit, start, orderHints, propertyPaths); } } diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/association/TaxonAssociationDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/association/TaxonAssociationDetailElement.java index eacf2c694..28a59e19d 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/association/TaxonAssociationDetailElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/association/TaxonAssociationDetailElement.java @@ -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> associatedTaxa = CdmStore.getService(IOccurrenceService.class).listAssociatedTaxa(entity.innerDerivedUnit(), null, null, null, null); + Collection 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> associatedTaxa = new HashSet>(); + 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> typedTaxa = CdmStore.getService(IOccurrenceService.class).listTypedTaxa(entity.innerDerivedUnit(), null, null, null, null); + Collection 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> typedTaxa = new HashSet>(); + 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); } -- 2.34.1