From d0c869bfbc8d785d7f35186fe960de5a27a712b9 Mon Sep 17 00:00:00 2001 From: anttil <anttil> Date: Tue, 21 Aug 2012 08:48:31 +0000 Subject: [PATCH] BIS-99 / SP-244: Fixed sample export columns. SVN: 26408 --- .../server/resultset/TableForUpdateExporter.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/TableForUpdateExporter.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/TableForUpdateExporter.java index 49ee880728c..cbdbec733b7 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/TableForUpdateExporter.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/TableForUpdateExporter.java @@ -154,22 +154,27 @@ public class TableForUpdateExporter ICommonServer commonServer, String sessionToken) { Map<String, List<Sample>> samples = new TreeMap<String, List<Sample>>(); + Map<String, GridRowModels<TableModelRowWithObject<Sample>>> rowMap = + new TreeMap<String, GridRowModels<TableModelRowWithObject<Sample>>>(); for (GridRowModel<TableModelRowWithObject<Sample>> row : rows) { Sample sample = row.getOriginalObject().getObjectOrNull(); String sampleType = sample.getSampleType().getCode(); List<Sample> sampleList = samples.get(sampleType); + GridRowModels<TableModelRowWithObject<Sample>> rowList = rowMap.get(sampleType); if (sampleList == null) { sampleList = new ArrayList<Sample>(); samples.put(sampleType, sampleList); + + rowList = + rows.cloneWithData(new ArrayList<GridRowModel<TableModelRowWithObject<Sample>>>()); + rowMap.put(sampleType, rowList); } sampleList.add(sample); + rowList.add(row); } - List<PropertyType> allPropertyTypes = - getAllPropertyTypes(rows, commonServer.listSampleTypes(sessionToken)); - StringBuilder builder = new StringBuilder(); Set<Entry<String, List<Sample>>> entrySet = samples.entrySet(); for (Entry<String, List<Sample>> entry : entrySet) @@ -178,7 +183,8 @@ public class TableForUpdateExporter { builder.append("[").append(entry.getKey()).append("]").append(lineSeparator); } - builder.append(getTableForSamples(entry, lineSeparator, allPropertyTypes)); + builder.append(getTableForSamples(entry, lineSeparator, getAllPropertyTypes(rowMap + .get(entry.getKey()), commonServer.listSampleTypes(sessionToken)))); } return builder.toString(); } -- GitLab