ref #6566 Migrate "Add Dna Sample" menu item
authorPatrick Plitzner <p.plitzner@bgbm.org>
Tue, 16 May 2017 11:08:07 +0000 (13:08 +0200)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Tue, 16 May 2017 11:08:07 +0000 (13:08 +0200)
eu.etaxonomy.taxeditor.editor/fragment.e4xmi
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/AbstractAddDerivativeHandler.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/AbstractAddDerivateHandler.java with 92% similarity]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/AddDnaSampleHandler.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/AddSpecimenHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/AddTissueSampleHandler.java

index fb9c85328c40fe2e6f5ec8f0a010d0c8ad620d6f..6099f7d813562d7e425644cd4180b6b0d355b658 100644 (file)
@@ -8,13 +8,14 @@
       <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"/>
@@ -32,5 +33,6 @@
     <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>
@@ -16,12 +16,11 @@ import eu.etaxonomy.cdm.model.occurrence.DerivationEvent;
 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) {
@@ -65,7 +64,7 @@ public abstract class AbstractAddDerivateHandler {
        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
@@ -74,7 +73,7 @@ public abstract class AbstractAddDerivateHandler {
            return createdElement;
        }
 
-       protected abstract SpecimenOrObservationType getSpecimenType();
+       protected abstract DerivedUnit createDerivative();
 
        protected abstract DerivationEventType getDerivationeType();
 
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/AddDnaSampleHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/AddDnaSampleHandler.java
new file mode 100644 (file)
index 0000000..1958fc8
--- /dev/null
@@ -0,0 +1,39 @@
+
+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
index 7f032629fdb56e112171c8765893a0ff6a93670d..574edec36bdea026c05b73b4ad092336fbf82f73 100644 (file)
@@ -2,10 +2,11 @@
 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) {
@@ -19,8 +20,8 @@ public class AddSpecimenHandler extends AbstractAddDerivateHandler{
      * {@inheritDoc}
      */
     @Override
-    protected SpecimenOrObservationType getSpecimenType() {
-        return SpecimenOrObservationType.PreservedSpecimen;
+    protected DerivedUnit createDerivative() {
+        return DerivedUnit.NewInstance(SpecimenOrObservationType.PreservedSpecimen);
     }
 
     /**
index 8f728ac9a9455d794689689aefffb217a3ad2af2..f8a55034f68b99d7ddf5aa5e3c1003fb53652274 100644 (file)
@@ -6,7 +6,7 @@ import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 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) {
@@ -17,12 +17,13 @@ public class AddTissueSampleHandler extends AbstractAddDerivateHandler{
         return false;
     }
 
+
     /**
      * {@inheritDoc}
      */
     @Override
-    protected SpecimenOrObservationType getSpecimenType() {
-        return SpecimenOrObservationType.TissueSample;
+    protected DerivedUnit createDerivative() {
+        return DerivedUnit.NewInstance(SpecimenOrObservationType.TissueSample);
     }
 
     /**