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
.e4
.ui
.model
.application
.ui
.basic
.MPart
;
10 import org
.eclipse
.e4
.ui
.workbench
.modeling
.EPartService
;
11 import org
.eclipse
.e4
.ui
.workbench
.modeling
.EPartService
.PartState
;
13 import eu
.etaxonomy
.cdm
.api
.service
.IOccurrenceService
;
14 import eu
.etaxonomy
.cdm
.api
.service
.ITaxonNodeService
;
15 import eu
.etaxonomy
.cdm
.api
.service
.config
.FindOccurrencesConfigurator
;
16 import eu
.etaxonomy
.cdm
.model
.occurrence
.SpecimenOrObservationBase
;
17 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonNode
;
18 import eu
.etaxonomy
.taxeditor
.editor
.AppModelId
;
19 import eu
.etaxonomy
.taxeditor
.editor
.l10n
.Messages
;
20 import eu
.etaxonomy
.taxeditor
.editor
.view
.derivate
.DerivateView
;
21 import eu
.etaxonomy
.taxeditor
.editor
.view
.derivate
.DerivateViewEditorInput
;
22 import eu
.etaxonomy
.taxeditor
.handler
.defaultHandler
.DefaultOpenHandlerBase
;
23 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
24 import eu
.etaxonomy
.taxeditor
.store
.internal
.TaxeditorStorePlugin
;
26 public class OpenDerivativeEditorForTaxonNode
extends DefaultOpenHandlerBase
<TaxonNode
> {
28 protected static final String OPEN_DERIVATIVE_EDITOR_FOR_TAXON_NODE_COULD_NOT_OPEN
= Messages
.OpenDerivativeEditorForTaxonNode_COULD_NOT_OPEN
;
31 protected TaxonNode
getEntity(UUID uuid
) {
32 return CdmStore
.getService(ITaxonNodeService
.class).load(uuid
);
36 protected void open(ExecutionEvent event
, TaxonNode entity
) {
37 FindOccurrencesConfigurator config
= new FindOccurrencesConfigurator();
38 UUID taxonUuid
= entity
.getTaxon().getUuid();
39 config
.setAssociatedTaxonUuid(taxonUuid
);
40 List
<SpecimenOrObservationBase
> specimens
= CdmStore
.getService(IOccurrenceService
.class).findByTitle(config
).getRecords();
41 Collection
<UUID
> specimenUuids
= new ArrayList
<UUID
>();
42 for (SpecimenOrObservationBase specimenOrObservationBase
: specimens
) {
43 specimenUuids
.add(specimenOrObservationBase
.getUuid());
45 DerivateViewEditorInput input
= new DerivateViewEditorInput(specimenUuids
, taxonUuid
);
46 MPart part
= TaxeditorStorePlugin
.getDefault().getWorkbench().getService(EPartService
.class).showPart(
47 AppModelId
.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_DERIVATEVIEW
, PartState
.ACTIVATE
);
48 DerivateView derivateView
= (DerivateView
) part
.getObject();
49 derivateView
.init(input
);