From: Patrick Plitzner Date: Tue, 3 Nov 2015 07:48:38 +0000 (+0100) Subject: Fix type designation filter for derivative search X-Git-Tag: 3.12.0^2~62^2~7^2~5 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/b82f869abaaf3f9b9f209a083d165c2812f6c911 Fix type designation filter for derivative search --- diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/searchFilter/DerivateSearchCompositeController.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/searchFilter/DerivateSearchCompositeController.java index 74d74db84..e87fcc5aa 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/searchFilter/DerivateSearchCompositeController.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/searchFilter/DerivateSearchCompositeController.java @@ -96,22 +96,24 @@ public class DerivateSearchCompositeController implements Listener{ } //filter out (un-)assigned specimens - int selectionIndex = derivateSearchComposite.getComboTaxonAssignment().getSelectionIndex(); - List> specimenWithAssociations = new ArrayList>(); - if(selectionIndex!=DerivateSearchComposite.ALL_SPECIMENS){ - for (SpecimenOrObservationBase specimenOrObservationBase : occurrences) { - Collection> associatedTaxa = CdmStore.getService(IOccurrenceService.class).listAssociatedTaxa(specimenOrObservationBase, null, null, null, null); - if(!associatedTaxa.isEmpty()){ - specimenWithAssociations.add(specimenOrObservationBase); - specimenWithAssociations.addAll(CdmStore.getService(IOccurrenceService.class).getFieldUnits(specimenOrObservationBase.getUuid())); + if(selectedTaxon==null){ + int selectionIndex = derivateSearchComposite.getComboTaxonAssignment().getSelectionIndex(); + List> specimenWithAssociations = new ArrayList>(); + if(selectionIndex!=DerivateSearchComposite.ALL_SPECIMENS){ + for (SpecimenOrObservationBase specimenOrObservationBase : occurrences) { + Collection> associatedTaxa = CdmStore.getService(IOccurrenceService.class).listAssociatedTaxa(specimenOrObservationBase, null, null, null, null); + if(!associatedTaxa.isEmpty()){ + specimenWithAssociations.add(specimenOrObservationBase); + specimenWithAssociations.addAll(CdmStore.getService(IOccurrenceService.class).getFieldUnits(specimenOrObservationBase.getUuid())); + } } } - } - if(selectionIndex==DerivateSearchComposite.UNASSIGNED_SPECIMENS){ - occurrences.removeAll(specimenWithAssociations); - } - else if(selectionIndex==DerivateSearchComposite.ASSIGNED_SPECIMENS){ - occurrences = new ArrayList(specimenWithAssociations); + if(selectionIndex==DerivateSearchComposite.UNASSIGNED_SPECIMENS){ + occurrences.removeAll(specimenWithAssociations); + } + else if(selectionIndex==DerivateSearchComposite.ASSIGNED_SPECIMENS){ + occurrences = new ArrayList(specimenWithAssociations); + } } List derivateUuids = new ArrayList(); for (SpecimenOrObservationBase specimenOrObservationBase : occurrences) {