1 package eu
.etaxonomy
.taxeditor
.editor
.view
.derivate
.handler
;
3 import java
.util
.ArrayList
;
4 import java
.util
.Collection
;
8 import org
.eclipse
.e4
.ui
.workbench
.modeling
.EPartService
;
9 import org
.eclipse
.swt
.widgets
.Shell
;
11 import eu
.etaxonomy
.cdm
.api
.service
.IEventBaseService
;
12 import eu
.etaxonomy
.cdm
.api
.service
.IOccurrenceService
;
13 import eu
.etaxonomy
.cdm
.hibernate
.HibernateProxyHelper
;
14 import eu
.etaxonomy
.cdm
.model
.common
.ICdmBase
;
15 import eu
.etaxonomy
.cdm
.model
.occurrence
.FieldUnit
;
16 import eu
.etaxonomy
.cdm
.model
.occurrence
.GatheringEvent
;
17 import eu
.etaxonomy
.taxeditor
.editor
.AppModelId
;
18 import eu
.etaxonomy
.taxeditor
.editor
.EditorUtil
;
19 import eu
.etaxonomy
.taxeditor
.editor
.l10n
.Messages
;
20 import eu
.etaxonomy
.taxeditor
.editor
.view
.derivate
.DerivateViewEditorInput
;
21 import eu
.etaxonomy
.taxeditor
.handler
.defaultHandler
.e4
.DefaultOpenHandlerBaseE4
;
22 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
24 public class OpenDerivativeEditorForGatheringEvent
extends DefaultOpenHandlerBaseE4
<GatheringEvent
> {
26 protected static final String OPEN_DERIVATIVE_EDITOR_FOR_TAXON_NODE_COULD_NOT_OPEN
= Messages
.OpenDerivativeEditorForTaxonNode_COULD_NOT_OPEN
;
29 protected GatheringEvent
getEntity(UUID uuid
) {
30 ICdmBase load
= CdmStore
.getService(IEventBaseService
.class).load(uuid
);
31 return HibernateProxyHelper
.deproxy(load
, GatheringEvent
.class );
35 protected void open(GatheringEvent entity
, Shell shell
, EPartService partService
) {
36 Collection
<UUID
> specimenUuids
= new ArrayList
<UUID
>();
37 List
<FieldUnit
> fieldUnits
= CdmStore
.getService(IOccurrenceService
.class).findFieldUnitsForGatheringEvent(entity
.getUuid());
38 fieldUnits
.forEach(fieldUnit
->specimenUuids
.add(fieldUnit
.getUuid()));
39 DerivateViewEditorInput input
= new DerivateViewEditorInput(specimenUuids
);
40 EditorUtil
.openSpecimenEditor(input
, modelService
, partService
, application
);
47 protected boolean canExecute(GatheringEvent entity
) {
52 protected String
getPartId() {
53 return AppModelId
.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_DERIVATEVIEW
;