1 package eu
.etaxonomy
.taxeditor
.editor
.view
.derivate
.handler
;
3 import java
.util
.ArrayList
;
4 import java
.util
.Collection
;
8 import org
.eclipse
.core
.commands
.ExecutionEvent
;
9 import org
.eclipse
.ui
.PartInitException
;
11 import eu
.etaxonomy
.cdm
.api
.service
.IOccurrenceService
;
12 import eu
.etaxonomy
.cdm
.api
.service
.ITaxonNodeService
;
13 import eu
.etaxonomy
.cdm
.api
.service
.config
.FindOccurrencesConfigurator
;
14 import eu
.etaxonomy
.cdm
.model
.occurrence
.SpecimenOrObservationBase
;
15 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonNode
;
16 import eu
.etaxonomy
.taxeditor
.editor
.EditorUtil
;
17 import eu
.etaxonomy
.taxeditor
.editor
.handler
.OpenDerivateViewHandler
;
18 import eu
.etaxonomy
.taxeditor
.editor
.view
.derivate
.DerivateViewEditorInput
;
19 import eu
.etaxonomy
.taxeditor
.handler
.defaultHandler
.DefaultOpenHandlerBase
;
20 import eu
.etaxonomy
.taxeditor
.model
.MessagingUtils
;
21 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
23 public class OpenDerivativeEditorForTaxonNode
extends DefaultOpenHandlerBase
<TaxonNode
> {
26 protected TaxonNode
getEntity(UUID uuid
) {
27 return CdmStore
.getService(ITaxonNodeService
.class).load(uuid
);
31 protected void open(ExecutionEvent event
, TaxonNode entity
) {
32 FindOccurrencesConfigurator config
= new FindOccurrencesConfigurator();
33 UUID taxonUuid
= entity
.getTaxon().getUuid();
34 config
.setAssociatedTaxonUuid(taxonUuid
);
35 List
<SpecimenOrObservationBase
> specimens
= CdmStore
.getService(IOccurrenceService
.class).findByTitle(config
).getRecords();
36 Collection
<UUID
> specimenUuids
= new ArrayList
<UUID
>();
37 for (SpecimenOrObservationBase specimenOrObservationBase
: specimens
) {
38 specimenUuids
.add(specimenOrObservationBase
.getUuid());
41 EditorUtil
.open(new DerivateViewEditorInput(specimenUuids
, taxonUuid
));
42 } catch (PartInitException e
) {
43 MessagingUtils
.error(OpenDerivateViewHandler
.class, "Derivative Editor could not be opened", e
);