.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;
dataSet = this.getCdmEntitiySession().load(dataSet, true);
// update local dataset
this.setDescriptiveDataSet(dataSet);
+
// this.loadDescriptions(getDescriptiveDataSet().getUuid(), false);
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;
@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){
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
}
}
rowWrapper.setDataValueForCategoricalData(feature, states);
+ matrix.putRowToMerge(rowWrapper);
}
}
}