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
.model
.occurrence
.SpecimenOrObservationBase
;
14 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonNode
;
15 import eu
.etaxonomy
.taxeditor
.editor
.EditorUtil
;
16 import eu
.etaxonomy
.taxeditor
.editor
.handler
.OpenDerivateViewHandler
;
17 import eu
.etaxonomy
.taxeditor
.editor
.view
.derivate
.DerivateViewEditorInput
;
18 import eu
.etaxonomy
.taxeditor
.handler
.defaultHandler
.DefaultOpenHandlerBase
;
19 import eu
.etaxonomy
.taxeditor
.model
.MessagingUtils
;
20 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
22 public class OpenDerivativeEditorForTaxonNode
extends DefaultOpenHandlerBase
<TaxonNode
> {
25 protected TaxonNode
getEntity(UUID uuid
) {
26 return CdmStore
.getService(ITaxonNodeService
.class).load(uuid
);
30 protected void open(ExecutionEvent event
, TaxonNode entity
) {
31 List
<SpecimenOrObservationBase
> specimens
= CdmStore
.getService(IOccurrenceService
.class).listByAssociatedTaxon(SpecimenOrObservationBase
.class, null, entity
.getTaxon(), null, null, null, null, null);
32 Collection
<UUID
> specimenUuids
= new ArrayList
<UUID
>();
33 for (SpecimenOrObservationBase specimenOrObservationBase
: specimens
) {
34 specimenUuids
.add(specimenOrObservationBase
.getUuid());
37 EditorUtil
.open(new DerivateViewEditorInput(specimenUuids
));
38 } catch (PartInitException e
) {
39 MessagingUtils
.error(OpenDerivateViewHandler
.class, "Derivative Editor could not be opened", e
);