merge-update from trunk
authorPatric Plitzner <p.plitzner@bgbm.org>
Wed, 1 Jul 2015 09:09:33 +0000 (09:09 +0000)
committerPatric Plitzner <p.plitzner@bgbm.org>
Wed, 1 Jul 2015 09:09:33 +0000 (09:09 +0000)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientOccurenceService.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/DeleteDerivateHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/operation/DeleteDerivateOperation.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/DnaSamplePreparationPreservationDetailElement.java

index 353daa013a5022e8c08cf8ea3254737f92e50920..f09d350fbaaf2f5a2c1ccd91d99eba75fa1251ca 100644 (file)
@@ -57,6 +57,7 @@ import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.media.Rights;
 import eu.etaxonomy.cdm.model.molecular.DnaSample;
 import eu.etaxonomy.cdm.model.molecular.Sequence;
+import eu.etaxonomy.cdm.model.molecular.SingleRead;
 import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
 import eu.etaxonomy.cdm.model.occurrence.DerivationEvent;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
@@ -836,51 +837,25 @@ public class TransientOccurenceService implements IOccurrenceService {
         return defaultService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
     }
 
-    /**
-     * @param clazz
-     * @param matchStrategy
-     * @param mergeStrategy
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#deduplicate(java.lang.Class, eu.etaxonomy.cdm.strategy.match.IMatchStrategy, eu.etaxonomy.cdm.strategy.merge.IMergeStrategy)
-     */
     @Override
     public int deduplicate(Class<? extends SpecimenOrObservationBase> clazz, IMatchStrategy matchStrategy, IMergeStrategy mergeStrategy) {
         return defaultService.deduplicate(clazz, matchStrategy, mergeStrategy);
     }
 
-    /**
-     * @param clazz
-     * @param queryString
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param matchMode
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findTitleCache(java.lang.Class, java.lang.String, java.lang.Integer, java.lang.Integer, java.util.List, eu.etaxonomy.cdm.persistence.query.MatchMode)
-     */
     @Override
     public Pager<SpecimenOrObservationBase> findTitleCache(Class<? extends SpecimenOrObservationBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, MatchMode matchMode) {
         return defaultService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
     }
 
-    /**
-     * @return
-     */
     public Collection<SpecimenOrObservationBase<?>> getUnits() {
         return units;
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getFieldUnits(java.util.UUID)
-     */
     @Override
     public Collection<FieldUnit> getFieldUnits(UUID derivedUnitUuid) {
         return defaultService.getFieldUnits(derivedUnitUuid);
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#pageByAssociatedTaxon(java.lang.Class, java.util.Set, java.lang.String, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
     @Override
     public <T extends SpecimenOrObservationBase> Pager<T> pageByAssociatedTaxon(Class<T> type,
             Set<TaxonRelationshipEdge> includeRelationships, String taxonUUID, Integer maxDepth, Integer pageSize,
@@ -889,17 +864,11 @@ public class TransientOccurenceService implements IOccurrenceService {
                 maxDepth, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#moveDerivate(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, eu.etaxonomy.cdm.model.occurrence.DerivedUnit)
-     */
     @Override
     public boolean moveDerivate(SpecimenOrObservationBase<?> from, SpecimenOrObservationBase<?> to, DerivedUnit derivate) {
         return defaultService.moveDerivate(from, to, derivate);
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#moveSequence(eu.etaxonomy.cdm.model.molecular.DnaSample, eu.etaxonomy.cdm.model.molecular.DnaSample, eu.etaxonomy.cdm.model.molecular.Sequence)
-     */
     @Override
     public boolean moveSequence(DnaSample from, DnaSample to, Sequence sequence) {
         return defaultService.moveSequence(from, to, sequence);
@@ -911,9 +880,6 @@ public class TransientOccurenceService implements IOccurrenceService {
                return defaultService.isDeletable(object, config);
        }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#countDeterminations(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, eu.etaxonomy.cdm.model.taxon.TaxonBase)
-     */
     @Override
     public int countDeterminations(SpecimenOrObservationBase occurence, TaxonBase taxonbase) {
         return defaultService.countDeterminations(occurence, taxonbase);
@@ -938,17 +904,11 @@ public class TransientOccurenceService implements IOccurrenceService {
        }
 
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#assembleFieldUnitDTO(eu.etaxonomy.cdm.model.occurrence.FieldUnit, java.util.UUID)
-        */
        @Override
        public FieldUnitDTO assembleFieldUnitDTO(FieldUnit fieldUnit, UUID associatedTaxonUuid) {
            return defaultService.assembleFieldUnitDTO(fieldUnit, associatedTaxonUuid);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#assemblePreservedSpecimenDTO(eu.etaxonomy.cdm.model.occurrence.DerivedUnit)
-        */
        @Override
        public PreservedSpecimenDTO assemblePreservedSpecimenDTO(DerivedUnit derivedUnit) {
            return defaultService.assemblePreservedSpecimenDTO(derivedUnit);
@@ -959,43 +919,28 @@ public class TransientOccurenceService implements IOccurrenceService {
         return defaultService.getNonCascadedAssociatedElements(specimen);
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#deleteDerivateHierarchy(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
     @Override
     public DeleteResult deleteDerivateHierarchy(CdmBase from, SpecimenDeleteConfigurator config) {
         return defaultService.deleteDerivateHierarchy(from, config);
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#delete(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, eu.etaxonomy.cdm.api.service.config.SpecimenDeleteConfigurator)
-     */
     @Override
     public DeleteResult delete(SpecimenOrObservationBase<?> specimen, SpecimenDeleteConfigurator config) {
         return defaultService.delete(specimen, config);
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listIndividualsAssociations(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
     @Override
     public Collection<IndividualsAssociation> listIndividualsAssociations(SpecimenOrObservationBase<?> specimen,
             Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
         return defaultService.listIndividualsAssociations(specimen, limit, start, orderHints, propertyPaths);
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listTypeDesignations(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
     @Override
     public Collection<SpecimenTypeDesignation> listTypeDesignations(SpecimenOrObservationBase<?> specimen,
             Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
         return defaultService.listTypeDesignations(specimen, limit, start, orderHints, propertyPaths);
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listDescriptionsWithDescriptionSpecimen(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
     @Override
     public Collection<DescriptionBase<?>> listDescriptionsWithDescriptionSpecimen(
             SpecimenOrObservationBase<?> specimen, Integer limit, Integer start, List<OrderHint> orderHints,
@@ -1008,33 +953,21 @@ public class TransientOccurenceService implements IOccurrenceService {
                return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getCharacterDataForSpecimen(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase)
-        */
        @Override
        public Collection<DescriptionElementBase> getCharacterDataForSpecimen(SpecimenOrObservationBase<?> arg0) {
            return defaultService.getCharacterDataForSpecimen(arg0);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getCharacterDataForSpecimen(java.util.UUID)
-        */
        @Override
        public Collection<DescriptionElementBase> getCharacterDataForSpecimen(UUID arg0) {
            return getCharacterDataForSpecimen(arg0);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getMostSignificantIdentifier(eu.etaxonomy.cdm.model.occurrence.DerivedUnit)
-        */
        @Override
        public String getMostSignificantIdentifier(DerivedUnit derivedUnit) {
            return defaultService.getMostSignificantIdentifier(derivedUnit);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#countOccurrences(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
-        */
        @Override
        public int countOccurrences(IIdentifiableEntityServiceConfigurator<SpecimenOrObservationBase> config) {
            return defaultService.countOccurrences(config);
@@ -1064,13 +997,15 @@ public class TransientOccurenceService implements IOccurrenceService {
         return defaultService.delete(arg0);
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#delete(java.util.Collection)
-     */
     @Override
     public DeleteResult delete(Collection<UUID> arg0) {
         return defaultService.delete(arg0);
     }
 
+    @Override
+    public DeleteResult deleteSingleRead(SingleRead singleRead, Sequence sequence){
+        return defaultService.deleteSingleRead(singleRead, sequence);
+    }
+
 
 }
index 70de10d2d8028ae54ca6bb3178e4265d39da7734..1f429451b3cd0f2842b1b4e4bc9f1f408f245f3d 100644 (file)
@@ -72,7 +72,7 @@ public class DeleteDerivateHandler extends AbstractHandler {
                         boolean deepDelete = event.getCommand().getId().equals("eu.etaxonomy.taxeditor.editor.derivate.deepDelete");
                         config.setDeleteChildren(deepDelete);
                         config.setDeleteMolecularData(deepDelete);
-                        DeleteDerivateOperation deleteDerivateOperation = new DeleteDerivateOperation(label, undoContext, (CdmBase) value, postOperationEnabled, config);
+                        DeleteDerivateOperation deleteDerivateOperation = new DeleteDerivateOperation(label, undoContext, (CdmBase) value, (TreeNode) object, postOperationEnabled, config);
                         AbstractUtility.executeOperation(deleteDerivateOperation);
                     }
                 }
index b13c0cf35fc8708fc4a88b6034de8f655fc5e363..c467a943e007f923330bb62fdee50b8681b1a0c4 100644 (file)
@@ -15,12 +15,15 @@ import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.viewers.TreeNode;
 import org.eclipse.ui.ISaveablePart;
 
 import eu.etaxonomy.cdm.api.service.DeleteResult;
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
 import eu.etaxonomy.cdm.api.service.config.SpecimenDeleteConfigurator;
 import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.molecular.Sequence;
+import eu.etaxonomy.cdm.model.molecular.SingleRead;
 import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
@@ -38,26 +41,21 @@ import eu.etaxonomy.taxeditor.ui.dialog.deleteConfigurator.DeleteConfiguratorDia
 public class DeleteDerivateOperation extends AbstractPostOperation<CdmBase> {
 
     private final SpecimenDeleteConfigurator deleteConfigurator;
+    private final TreeNode treeNode;
 
-    public DeleteDerivateOperation(String label, IUndoContext undoContext, CdmBase element,
+    public DeleteDerivateOperation(String label, IUndoContext undoContext, CdmBase element, TreeNode treeNode,
             IPostOperationEnabled postOperationEnabled) {
-        this(label, undoContext, element, postOperationEnabled, new SpecimenDeleteConfigurator());
+        this(label, undoContext, element, treeNode, postOperationEnabled, new SpecimenDeleteConfigurator());
     }
 
-    public DeleteDerivateOperation(String label, IUndoContext undoContext, CdmBase element,
+    public DeleteDerivateOperation(String label, IUndoContext undoContext, CdmBase element, TreeNode treeNode,
             IPostOperationEnabled postOperationEnabled, SpecimenDeleteConfigurator config) {
         super(label, undoContext, element, postOperationEnabled);
         this.deleteConfigurator = config;
+        this.treeNode = treeNode;
     }
 
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse
-     * .core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-     */
     /** {@inheritDoc} */
     @Override
     public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
@@ -75,7 +73,16 @@ public class DeleteDerivateOperation extends AbstractPostOperation<CdmBase> {
                 return Status.CANCEL_STATUS;
             }
         }
-        DeleteResult deleteResult = CdmStore.getService(IOccurrenceService.class).deleteDerivateHierarchy(element, deleteConfigurator);
+        DeleteResult deleteResult;
+        if(element instanceof SingleRead && treeNode!=null
+                && treeNode.getValue().equals(element)
+                && treeNode.getParent()!=null
+                && treeNode.getParent().getValue() instanceof Sequence){
+            deleteResult = CdmStore.getService(IOccurrenceService.class).deleteSingleRead((SingleRead)element, (Sequence) treeNode.getParent().getValue());
+        }
+        else{
+            deleteResult = CdmStore.getService(IOccurrenceService.class).deleteDerivateHierarchy(element, deleteConfigurator);
+        }
         if(deleteResult.isOk()){
             if(getPostOperationEnabled() instanceof DerivateView){
                 DerivateView derivateView = (DerivateView) getPostOperationEnabled();
@@ -96,13 +103,6 @@ public class DeleteDerivateOperation extends AbstractPostOperation<CdmBase> {
         return Status.OK_STATUS;
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse
-     * .core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-     */
     /** {@inheritDoc} */
     @Override
     public IStatus redo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
@@ -110,13 +110,6 @@ public class DeleteDerivateOperation extends AbstractPostOperation<CdmBase> {
         return Status.CANCEL_STATUS ;
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse
-     * .core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-     */
     /** {@inheritDoc} */
     @Override
     public IStatus undo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
index 7db3cfaaf8e42107f4c80b3b7e3b76ec623b9deb..f31ad03dc8e3c5367505bf08d8487afe91c80014 100644 (file)
@@ -66,7 +66,9 @@ public class DnaSamplePreparationPreservationDetailElement extends AbstractCdmDe
         String materialOrMethodText = null;
         if(entity.getPreservation()!=null){
             temperature = entity.getPreservation().getTemperature();
-            materialOrMethodText = entity.getPreservation().getMaterialMethodText();
+        }
+        if(entity.getDerivedFrom()!=null){
+            materialOrMethodText = entity.getDerivedFrom().getDescription();
         }
         selectionInstitution = formFactory.createSelectionElement(Institution.class, getConversationHolder(), formElement, "Institution", institution, EntitySelectionElement.ALL, style);
         selectionStaff = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Staff", staff, EntitySelectionElement.ALL, style);
@@ -103,8 +105,8 @@ public class DnaSamplePreparationPreservationDetailElement extends AbstractCdmDe
         else if(eventSource==numberPreservationTemperature && numberPreservationTemperature.getText()!=null){
             addPreservationMethod().setTemperature(numberPreservationTemperature.getDouble());
         }
-        else if(eventSource==txtMaterialOrMethods){
-            addPreservationMethod().setMaterialMethodText(txtMaterialOrMethods.getText());
+        else if(eventSource==txtMaterialOrMethods && getEntity().getDerivedFrom()!=null){
+            getEntity().getDerivedFrom().setDescription(txtMaterialOrMethods.getText());
         }
     }