1 package eu
.etaxonomy
.taxeditor
.editor
.view
.derivate
.handler
;
3 import java
.util
.Collections
;
6 import org
.eclipse
.core
.commands
.ExecutionEvent
;
7 import org
.eclipse
.ui
.PartInitException
;
9 import eu
.etaxonomy
.cdm
.api
.service
.IDescriptionService
;
10 import eu
.etaxonomy
.cdm
.model
.description
.DescriptionElementBase
;
11 import eu
.etaxonomy
.cdm
.model
.description
.IndividualsAssociation
;
12 import eu
.etaxonomy
.cdm
.model
.occurrence
.SpecimenOrObservationBase
;
13 import eu
.etaxonomy
.taxeditor
.editor
.EditorUtil
;
14 import eu
.etaxonomy
.taxeditor
.editor
.handler
.OpenDerivateViewHandler
;
15 import eu
.etaxonomy
.taxeditor
.editor
.view
.derivate
.DerivateViewEditorInput
;
16 import eu
.etaxonomy
.taxeditor
.handler
.defaultHandler
.DefaultOpenHandlerBase
;
17 import eu
.etaxonomy
.taxeditor
.model
.MessagingUtils
;
18 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
20 public class OpenDerivativeEditorForDescriptionElement
extends DefaultOpenHandlerBase
<IndividualsAssociation
> {
23 protected IndividualsAssociation
getEntity(UUID uuid
) {
24 DescriptionElementBase descriptionElement
= CdmStore
.getService(IDescriptionService
.class).loadDescriptionElement(uuid
, null);
25 if(descriptionElement
!=null && descriptionElement
.isInstanceOf(IndividualsAssociation
.class)){
26 return (IndividualsAssociation
) descriptionElement
;
32 protected void open(ExecutionEvent event
, IndividualsAssociation entity
) {
33 SpecimenOrObservationBase associatedSpecimenOrObservation
= entity
.getAssociatedSpecimenOrObservation();
34 if(associatedSpecimenOrObservation
!=null){
35 UUID specimenUuid
= associatedSpecimenOrObservation
.getUuid();
37 EditorUtil
.open(new DerivateViewEditorInput(Collections
.singletonList(specimenUuid
)));
38 } catch (PartInitException e
) {
39 MessagingUtils
.error(OpenDerivateViewHandler
.class, "Derivative Editor could not be opened", e
);