Merge branch 'develop' into feature/cdm-4.7
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / view / derivate / handler / AddMediaSpecimenHandler.java
1
2 package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
3
4 import javax.inject.Inject;
5
6 import org.eclipse.e4.ui.workbench.modeling.EModelService;
7
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;
14
15 public class AddMediaSpecimenHandler extends AbstractAddDerivativeHandler{
16
17 @Inject
18 private EModelService modelService;
19
20 @Override
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)){
26 return true;
27 }
28 return false;
29 }
30
31 /**
32 * {@inheritDoc}
33 */
34 @Override
35 protected DerivedUnit createDerivative() {
36 return MediaSpecimen.NewInstance(SpecimenOrObservationType.StillImage);
37 }
38
39 /**
40 * {@inheritDoc}
41 */
42 @Override
43 protected DerivationEventType getDerivationeType() {
44 return DerivationEventType.ACCESSIONING();
45 }
46
47 }