From 43a33df19a8b6a46ab2799b3b59a3597e26839b2 Mon Sep 17 00:00:00 2001
From: buczekp <buczekp>
Date: Fri, 25 Sep 2009 07:37:52 +0000
Subject: [PATCH] [LMS-1123] fixed sample identifier of samples with container
 in sample browsers

SVN: 12703
---
 .../bo/samplelister/SampleListingWorker.java  | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleListingWorker.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleListingWorker.java
index fbd01b48441..4c2e7226661 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleListingWorker.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleListingWorker.java
@@ -326,7 +326,6 @@ final class SampleListingWorker
             sampleTypes.put(type.getId(), type);
             if (singleSampleTypeMode == false)
             {
-                // TODO 2009-09-24, Piotr Buczek: use to display all parents
                 maxSampleContainerResolutionDepth =
                         Math.max(maxSampleContainerResolutionDepth, type
                                 .getContainerHierarchyDepth());
@@ -629,6 +628,24 @@ final class SampleListingWorker
             record.sample.setContainer(container);
             record.sample.setCode(IdentifierHelper.convertCode(record.sample.getSubCode(),
                     container.getCode()));
+            updateSampleIdentifier(record.sample);
         }
     }
+
+    private void updateSampleIdentifier(Sample sample)
+    {
+        SampleIdentifier identifier;
+        if (sample.getDatabaseInstance() != null)
+        {
+            final DatabaseInstanceIdentifier dbId =
+                    new DatabaseInstanceIdentifier(databaseInstance.getCode());
+            identifier = new SampleIdentifier(dbId, sample.getCode());
+        } else
+        {
+            final GroupIdentifier groupId =
+                    new GroupIdentifier(databaseInstance.getCode(), sample.getGroup().getCode());
+            identifier = new SampleIdentifier(groupId, sample.getCode());
+        }
+        sample.setIdentifier(identifier.toString());
+    }
 }
-- 
GitLab