<handlers xmi:id="_E5l4wDVqEee_b7RlBzTDRw" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.handler.CreateFieldUnitHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.CreateFieldUnitHandler" command="_BjF3ADVqEee_b7RlBzTDRw"/>
<handlers xmi:id="_ha1I4DmBEeeOos_QXKSXcA" elementId="eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddSpecimenHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddSpecimenHandler" command="_qqMbcDmBEeeOos_QXKSXcA"/>
<handlers xmi:id="_FOiO0DocEeecLdI14WMq7w" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddTissueSampleHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddTissueSampleHandler" command="_I2LD4DocEeecLdI14WMq7w"/>
+ <handlers xmi:id="_mrTfkDonEeecLdI14WMq7w" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddDnaSampleHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddDnaSampleHandler" command="_jsbToDonEeecLdI14WMq7w"/>
<menus xsi:type="menu:PopupMenu" xmi:id="_CYXZ0DQEEeeTNOFVGI4q2w" elementId="eu.etaxonomy.taxeditor.editor.popupmenu.specimeneditor">
<children xsi:type="menu:HandledMenuItem" xmi:id="_um1oYDVpEee_b7RlBzTDRw" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.create_field_unit_for_taxon" label="Create Field Unit For ..." command="_BjF3ADVqEee_b7RlBzTDRw"/>
<children xsi:type="menu:HandledMenuItem" xmi:id="_5GMRcDWQEeeNfoZ3nN0K8Q" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.createfieldunit" label="Create Field Unit" command="_BjF3ADVqEee_b7RlBzTDRw"/>
<children xsi:type="menu:Menu" xmi:id="_cdjzEDmAEeeOos_QXKSXcA" elementId="eu.etaxonomy.taxeditor.editor.menu.add" label="Add...">
<children xsi:type="menu:HandledMenuItem" xmi:id="_R27WIDmBEeeOos_QXKSXcA" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.specimen" label="Specimen" command="_qqMbcDmBEeeOos_QXKSXcA"/>
<children xsi:type="menu:HandledMenuItem" xmi:id="_TKz_4DmBEeeOos_QXKSXcA" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.tissuesample" label="Tissue Sample" command="_I2LD4DocEeecLdI14WMq7w"/>
- <children xsi:type="menu:HandledMenuItem" xmi:id="_UukRoDmBEeeOos_QXKSXcA" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.dnasample" label="DNA Sample"/>
+ <children xsi:type="menu:HandledMenuItem" xmi:id="_UukRoDmBEeeOos_QXKSXcA" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.dnasample" label="DNA Sample" command="_jsbToDonEeecLdI14WMq7w"/>
<children xsi:type="menu:HandledMenuItem" xmi:id="_WwK9ADmBEeeOos_QXKSXcA" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.mediaspecimen" label="Media Specimen"/>
<children xsi:type="menu:HandledMenuItem" xmi:id="_YYSxYDmBEeeOos_QXKSXcA" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.consensussequence" label="Consensus Sequence"/>
<children xsi:type="menu:HandledMenuItem" xmi:id="_Z-LKEDmBEeeOos_QXKSXcA" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.singleread" label="Single Read"/>
<elements xsi:type="commands:Command" xmi:id="_BjF3ADVqEee_b7RlBzTDRw" elementId="eu.etaxonomy.taxeditor.editor.command.specimeneditor.create_field_unit" commandName="Create Field Unit"/>
<elements xsi:type="commands:Command" xmi:id="_qqMbcDmBEeeOos_QXKSXcA" elementId="eu.etaxonomy.taxeditor.editor.command.add_derivate.add_specimen" commandName="Add Specimen"/>
<elements xsi:type="commands:Command" xmi:id="_I2LD4DocEeecLdI14WMq7w" elementId="eu.etaxonomy.taxeditor.editor.command.add_derivate.add_tissue_sample" commandName="Add Tissue Sample"/>
+ <elements xsi:type="commands:Command" xmi:id="_jsbToDonEeecLdI14WMq7w" elementId="eu.etaxonomy.taxeditor.editor.command.add_derivate.add_dna_sample" commandName="Add DNA Sample"/>
</fragments>
</fragment:ModelFragments>
import eu.etaxonomy.cdm.model.occurrence.DerivationEventType;
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
-import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.store.CdmStore;
-public abstract class AbstractAddDerivateHandler {
+public abstract class AbstractAddDerivativeHandler {
@Execute
public void execute(@Named(IServiceConstants.ACTIVE_SELECTION) TreeNode node, @Named(IServiceConstants.ACTIVE_PART) MPart part) {
private Object addElement(Object selectedDerivative){
Object createdElement = null;
SpecimenOrObservationBase<?> specimenOrObservationBase = (SpecimenOrObservationBase<?>) selectedDerivative;
- DerivedUnit derivedUnit = DerivedUnit.NewInstance(getSpecimenType());
+ DerivedUnit derivedUnit = createDerivative();
specimenOrObservationBase.addDerivationEvent(DerivationEvent.NewSimpleInstance(specimenOrObservationBase, derivedUnit, getDerivationeType()));
derivedUnit.setCacheStrategy(new DerivedUnitFacadeCacheStrategy());
derivedUnit.getTitleCache(); //update title cache
return createdElement;
}
- protected abstract SpecimenOrObservationType getSpecimenType();
+ protected abstract DerivedUnit createDerivative();
protected abstract DerivationEventType getDerivationeType();
--- /dev/null
+
+package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
+
+import eu.etaxonomy.cdm.model.molecular.DnaSample;
+import eu.etaxonomy.cdm.model.occurrence.DerivationEventType;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+
+public class AddDnaSampleHandler extends AbstractAddDerivativeHandler{
+
+ @Override
+ protected boolean isAllowed(Object derivative) {
+ if(derivative instanceof FieldUnit || (derivative instanceof DerivedUnit
+ && ((DerivedUnit) derivative).getRecordBasis().equals(SpecimenOrObservationType.PreservedSpecimen))
+ || (derivative instanceof DerivedUnit
+ && ((DerivedUnit) derivative).getRecordBasis().equals(SpecimenOrObservationType.TissueSample))){
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected DerivedUnit createDerivative() {
+ return DnaSample.NewInstance();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected DerivationEventType getDerivationeType() {
+ return DerivationEventType.ACCESSIONING();
+ }
+
+}
\ No newline at end of file
package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
import eu.etaxonomy.cdm.model.occurrence.DerivationEventType;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
-public class AddSpecimenHandler extends AbstractAddDerivateHandler{
+public class AddSpecimenHandler extends AbstractAddDerivativeHandler{
@Override
protected boolean isAllowed(Object derivative) {
* {@inheritDoc}
*/
@Override
- protected SpecimenOrObservationType getSpecimenType() {
- return SpecimenOrObservationType.PreservedSpecimen;
+ protected DerivedUnit createDerivative() {
+ return DerivedUnit.NewInstance(SpecimenOrObservationType.PreservedSpecimen);
}
/**
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
-public class AddTissueSampleHandler extends AbstractAddDerivateHandler{
+public class AddTissueSampleHandler extends AbstractAddDerivativeHandler{
@Override
protected boolean isAllowed(Object derivative) {
return false;
}
+
/**
* {@inheritDoc}
*/
@Override
- protected SpecimenOrObservationType getSpecimenType() {
- return SpecimenOrObservationType.TissueSample;
+ protected DerivedUnit createDerivative() {
+ return DerivedUnit.NewInstance(SpecimenOrObservationType.TissueSample);
}
/**