Fix type designation filter for derivative search
authorPatrick Plitzner <p.plitzner@bgbm.org>
Tue, 3 Nov 2015 07:48:38 +0000 (08:48 +0100)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Tue, 3 Nov 2015 07:48:38 +0000 (08:48 +0100)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/searchFilter/DerivateSearchCompositeController.java

index 74d74db844b0d4df94700562b8b611935c061fed..e87fcc5aa4b7b4af58379b51f6f7a24485697511 100644 (file)
@@ -96,22 +96,24 @@ public class DerivateSearchCompositeController implements Listener{
         }
 
         //filter out (un-)assigned specimens
         }
 
         //filter out (un-)assigned specimens
-        int selectionIndex = derivateSearchComposite.getComboTaxonAssignment().getSelectionIndex();
-        List<SpecimenOrObservationBase<?>> specimenWithAssociations = new ArrayList<SpecimenOrObservationBase<?>>();
-        if(selectionIndex!=DerivateSearchComposite.ALL_SPECIMENS){
-            for (SpecimenOrObservationBase specimenOrObservationBase : occurrences) {
-                Collection<TaxonBase<?>> 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<SpecimenOrObservationBase<?>> specimenWithAssociations = new ArrayList<SpecimenOrObservationBase<?>>();
+            if(selectionIndex!=DerivateSearchComposite.ALL_SPECIMENS){
+                for (SpecimenOrObservationBase specimenOrObservationBase : occurrences) {
+                    Collection<TaxonBase<?>> 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<SpecimenOrObservationBase>(specimenWithAssociations);
+            if(selectionIndex==DerivateSearchComposite.UNASSIGNED_SPECIMENS){
+                occurrences.removeAll(specimenWithAssociations);
+            }
+            else if(selectionIndex==DerivateSearchComposite.ASSIGNED_SPECIMENS){
+                occurrences = new ArrayList<SpecimenOrObservationBase>(specimenWithAssociations);
+            }
         }
         List<UUID> derivateUuids = new ArrayList<UUID>();
         for (SpecimenOrObservationBase specimenOrObservationBase : occurrences) {
         }
         List<UUID> derivateUuids = new ArrayList<UUID>();
         for (SpecimenOrObservationBase specimenOrObservationBase : occurrences) {