Set taxon filter when opening derivativwe editor from taxon navigator
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / view / derivate / handler / OpenDerivativeEditorForTaxonNode.java
index 6fdbcd4fe7d32a4e54ab5b641ab33c66c0af411e..fbaa4e8773e7699920a2d96a85ce2b6762f105c1 100644 (file)
@@ -10,6 +10,7 @@ import org.eclipse.ui.PartInitException;
 
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
+import eu.etaxonomy.cdm.api.service.config.FindOccurrencesConfigurator;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
@@ -28,13 +29,16 @@ public class OpenDerivativeEditorForTaxonNode extends DefaultOpenHandlerBase<Tax
 
     @Override
     protected void open(ExecutionEvent event, TaxonNode entity) {
-        List<SpecimenOrObservationBase> specimens = CdmStore.getService(IOccurrenceService.class).listByAssociatedTaxon(SpecimenOrObservationBase.class, null, entity.getTaxon(), null, null, null, null, null);
+        FindOccurrencesConfigurator config = new FindOccurrencesConfigurator();
+        UUID taxonUuid = entity.getTaxon().getUuid();
+        config.setAssociatedTaxonUuid(taxonUuid);
+        List<SpecimenOrObservationBase> specimens = CdmStore.getService(IOccurrenceService.class).findByTitle(config).getRecords();
         Collection<UUID> specimenUuids = new ArrayList<UUID>();
         for (SpecimenOrObservationBase specimenOrObservationBase : specimens) {
             specimenUuids.add(specimenOrObservationBase.getUuid());
         }
         try {
-            EditorUtil.open(new DerivateViewEditorInput(specimenUuids));
+            EditorUtil.open(new DerivateViewEditorInput(specimenUuids, taxonUuid));
         } catch (PartInitException e) {
             MessagingUtils.error(OpenDerivateViewHandler.class, "Derivative Editor could not be opened", e);
         }