2 package eu
.etaxonomy
.taxeditor
.editor
.view
.derivate
.handler
;
4 import javax
.inject
.Inject
;
6 import org
.eclipse
.e4
.ui
.workbench
.modeling
.EModelService
;
8 import eu
.etaxonomy
.cdm
.model
.molecular
.DnaSample
;
9 import eu
.etaxonomy
.cdm
.model
.occurrence
.DerivationEventType
;
10 import eu
.etaxonomy
.cdm
.model
.occurrence
.DerivedUnit
;
11 import eu
.etaxonomy
.cdm
.model
.occurrence
.FieldUnit
;
12 import eu
.etaxonomy
.cdm
.model
.occurrence
.MediaSpecimen
;
13 import eu
.etaxonomy
.cdm
.model
.occurrence
.SpecimenOrObservationType
;
15 public class AddMediaSpecimenHandler
extends AbstractAddDerivativeHandler
{
18 private EModelService modelService
;
21 protected boolean isAllowed(Object derivative
) {
22 if(derivative
instanceof FieldUnit
23 || (derivative
instanceof DerivedUnit
&& ((DerivedUnit
) derivative
).getRecordBasis().equals(SpecimenOrObservationType
.PreservedSpecimen
))
24 || (derivative
instanceof DnaSample
&& ((DnaSample
)derivative
).getRecordBasis()==SpecimenOrObservationType
.TissueSample
)
25 || (derivative
instanceof DnaSample
&& ((DnaSample
)derivative
).getRecordBasis()==SpecimenOrObservationType
.DnaSample
)){
35 protected DerivedUnit
createDerivative() {
36 return MediaSpecimen
.NewInstance(SpecimenOrObservationType
.StillImage
);
43 protected DerivationEventType
getDerivationeType() {
44 return DerivationEventType
.ACCESSIONING();