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