ref #9029: adapt character matrix to dtos
authorKatja Luther <k.luther@bgbm.org>
Tue, 26 May 2020 07:19:39 +0000 (09:19 +0200)
committerKatja Luther <k.luther@bgbm.org>
Tue, 26 May 2020 08:16:11 +0000 (10:16 +0200)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CharacterMatrix.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CharacterMatrixPart.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/SpecimenColumnPropertyAccessor.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/quantitative/QuantitativeDataDialog.java

index 33c16685679a545d41b9eed61cfc5a68c8e0f9cf..79073b1154b793ee84bb32112cc84f134911175f 100644 (file)
@@ -804,13 +804,13 @@ public class CharacterMatrix extends Composite {
         .collect(Collectors.toList());
     }
 
-    public void addRowToSave(RowWrapperDTO<?> row){
-        rowsToMerge.put(row.getDescription().getDescription().getUuid(), row);
-    }
-
-    public HashMap<UUID,RowWrapperDTO<?>> getRowsToSave() {
-        return rowsToMerge;
-    }
+//    public void addRowToSave(RowWrapperDTO<?> row){
+//        rowsToMerge.put(row.getDescription().getDescription().getUuid(), row);
+//    }
+//
+//    public HashMap<UUID,RowWrapperDTO<?>> getRowsToSave() {
+//        return rowsToMerge;
+//    }
 
     public HashMap<UUID, RowWrapperDTO<?>> getRowsToMerge() {
         return rowsToMerge;
@@ -928,6 +928,7 @@ public class CharacterMatrix extends Composite {
                     dataSet = this.getCdmEntitiySession().load(dataSet, true);
                     // update local dataset
                     this.setDescriptiveDataSet(dataSet);
+
 //                    this.loadDescriptions(getDescriptiveDataSet().getUuid(), false);
 
 
index 038f3f393c94dd8107f3dac3f4113f19054f3bf6..ba901a641942783dcd6ee4623761dfd9f7dc93e5 100644 (file)
@@ -38,6 +38,7 @@ import org.eclipse.swt.widgets.Label;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.api.service.DeleteResult;
 import eu.etaxonomy.cdm.api.service.IDescriptionService;
 import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;
 import eu.etaxonomy.cdm.api.service.dto.DescriptionBaseDto;
@@ -190,17 +191,18 @@ ICdmEntitySessionEnabled, IPartContentHasSupplementalData, IPartContentHasDetail
     @Override
     public void save(IProgressMonitor monitor) {
         // save edited descriptions
-        List<DescriptionBaseDto> descriptions = matrix.getRowsToSave().values().stream()
+        List<DescriptionBaseDto> descriptions = matrix.getRowsToMerge().values().stream()
         .map(row->row.getDescription())
         .collect(Collectors.toList());
         matrix.addSpecimensToDescriptiveDataSet();
         //newly added descriptions should not be saved again.
-        descriptions.removeAll(matrix.getRowsToSave().values());
-        matrix.getRowsToSave().clear();
+//        descriptions.removeAll(matrix.getRowsToSave().values());
+        matrix.getRowsToMerge().clear();
         if (matrix.getDescriptionsToDelete() != null && !matrix.getDescriptionsToDelete().isEmpty()){
-            CdmStore.getService(IDescriptiveDataSetService.class).removeDescriptions(matrix.getDescriptionsToDelete(), matrix.getDescriptiveDataSet().getUuid());
+            DeleteResult result = CdmStore.getService(IDescriptiveDataSetService.class).removeDescriptions(matrix.getDescriptionsToDelete(), matrix.getDescriptiveDataSet().getUuid());
+            matrix.getDescriptionsToDelete().clear();
         }
-        List<MergeResult<DescriptionBase>> results = CdmStore.getService(IDescriptionService.class).mergeDescriptions(descriptions, true);
+        List<MergeResult<DescriptionBase>> results = CdmStore.getService(IDescriptionService.class).mergeDescriptions(descriptions, matrix.getDescriptiveDataSet().getUuid(), true);
         conversation.commit();
         HashMap<UUID, DescriptionBase> descriptionResults = new HashMap<>();
         for (MergeResult result: results){
index 730210d3b4b479239dbecc0f547e519b40b87d54..1db521e7fe9ce64d85feb7c29da25a9afa44edac 100644 (file)
@@ -89,7 +89,7 @@ public class SpecimenColumnPropertyAccessor implements IColumnPropertyAccessor<O
     public void setDataValue(Object rowObject, int columnIndex, Object newValue) {
         if(rowObject instanceof RowWrapperDTO){
             RowWrapperDTO rowWrapper = (RowWrapperDTO)rowObject;
-            matrix.addRowToSave(rowWrapper);
+
             Feature feature = matrix.getIndexToFeatureMap().get(columnIndex);
             if(feature.isSupportsCategoricalData()
                     && newValue instanceof Collection
@@ -104,6 +104,7 @@ public class SpecimenColumnPropertyAccessor implements IColumnPropertyAccessor<O
                     }
                 }
                 rowWrapper.setDataValueForCategoricalData(feature, states);
+                matrix.putRowToMerge(rowWrapper);
             }
         }
     }
index bbc9f9548a285a83fec25638f94728c67c76de2e..b3e4589ef2710d74aafc28c09cbd6d32b44091d9 100644 (file)
@@ -94,7 +94,7 @@ public class QuantitativeDataDialog extends CellEditDialog {
 //            }
 
 //            ((QuantitativeData)rowWrapperDTO.getDataValueForFeature(editorValue.getFeature())).setUnit(editorValue.getUnit());
-            matrix.addRowToSave(rowWrapperDTO);
+            matrix.putRowToMerge(rowWrapperDTO);
             matrix.setDirty();
         }
         return super.close();