From 41013a3b7c3a79cc9df609e5e4426bebf3cdb99b Mon Sep 17 00:00:00 2001
From: tpylak <tpylak>
Date: Tue, 21 Dec 2010 14:51:47 +0000
Subject: [PATCH] LMS-1943 Screening/Microscopy sample viewer: add info about
 other connected datasets

SVN: 19205
---
 .../detailviewers/ImageSampleSection.java            | 12 ++++++++++++
 .../detailviewers/ImagingDatasetGuiUtils.java        |  4 +++-
 .../screening/server/logic/PlateContentLoader.java   |  8 +++++---
 .../screening/server/logic/ScreeningUtils.java       |  3 ++-
 .../shared/basic/dto/ImageSampleContent.java         | 11 ++++++++++-
 5 files changed, 32 insertions(+), 6 deletions(-)

diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ImageSampleSection.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ImageSampleSection.java
index 20f9630a5fb..71c10acc372 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ImageSampleSection.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ImageSampleSection.java
@@ -38,6 +38,7 @@ import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.S
 import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.detailviewers.ImagingDatasetGuiUtils.IDatasetImagesReferenceUpdater;
 import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.detailviewers.dto.LogicalImageReference;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.DatasetImagesReference;
+import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.DatasetReference;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ImageSampleContent;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.LogicalImageInfo;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellLocation;
@@ -95,12 +96,23 @@ public class ImageSampleSection extends TabContent
                     setScrollMode(Scroll.AUTO);
 
                     addVisualisation(imageSampleContent);
+                    addUnknownDatasetLinks(imageSampleContent.getUnknownDatasets());
 
                     layout();
                 }
             };
     }
 
+    private void addUnknownDatasetLinks(List<DatasetReference> unknownDatasets)
+    {
+        ImagingDatasetGuiUtils guiUtils = new ImagingDatasetGuiUtils(viewContext);
+        Widget w = guiUtils.tryCreateUnknownDatasetsLinks(unknownDatasets);
+        if (w != null)
+        {
+            add(w, LayoutUtils.createRowLayoutSurroundingData());
+        }
+    }
+
     private void addVisualisation(ImageSampleContent imageSampleContent)
     {
         RowData margins = LayoutUtils.createRowLayoutSurroundingData();
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ImagingDatasetGuiUtils.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ImagingDatasetGuiUtils.java
index 28954f72006..84dade28c13 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ImagingDatasetGuiUtils.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ImagingDatasetGuiUtils.java
@@ -24,6 +24,7 @@ import com.extjs.gxt.ui.client.event.SelectionChangedListener;
 import com.extjs.gxt.ui.client.widget.LayoutContainer;
 import com.extjs.gxt.ui.client.widget.Text;
 import com.extjs.gxt.ui.client.widget.form.SimpleComboValue;
+import com.extjs.gxt.ui.client.widget.layout.RowLayout;
 import com.extjs.gxt.ui.client.widget.layout.TableLayout;
 import com.google.gwt.event.dom.client.ClickEvent;
 import com.google.gwt.event.dom.client.ClickHandler;
@@ -52,7 +53,7 @@ import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.FeatureVectorD
  */
 class ImagingDatasetGuiUtils
 {
-    private static final String UNKNOWN_DATASETS_LABEL = "Other data connected to this plate:";
+    private static final String UNKNOWN_DATASETS_LABEL = "Other connected datasets:";
 
     // --------
 
@@ -88,6 +89,7 @@ class ImagingDatasetGuiUtils
             return null;
         }
         LayoutContainer c = new LayoutContainer();
+        c.setLayout(new RowLayout());
         c.add(new Text(UNKNOWN_DATASETS_LABEL));
         for (DatasetReference dataset : unknownDatasets)
         {
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/PlateContentLoader.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/PlateContentLoader.java
index 859b2ca0b77..03c029f1b3f 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/PlateContentLoader.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/PlateContentLoader.java
@@ -178,7 +178,7 @@ public class PlateContentLoader
 
         List<DatasetImagesReference> imageDatasetReferences = fetchImageDatasets(datasets);
         List<FeatureVectorDataset> featureVectorDatasets = filterAndFetchFeatureVectors(datasets);
-        List<DatasetReference> unknownDatasetReferences = fetchUnknownDatasets(datasets);
+        List<DatasetReference> unknownDatasetReferences = extractUnknownDatasets(datasets);
 
         Geometry plateGeometry = PlateDimensionParser.getPlateGeometry(plate.getProperties());
         int rows = plateGeometry.getNumberOfRows();
@@ -188,7 +188,7 @@ public class PlateContentLoader
                 unknownDatasetReferences);
     }
 
-    private List<DatasetReference> fetchUnknownDatasets(List<ExternalDataPE> datasets)
+    private List<DatasetReference> extractUnknownDatasets(List<ExternalDataPE> datasets)
     {
         List<ExternalDataPE> unknownDatasets = ScreeningUtils.filterUnknownDatasets(datasets);
         List<DatasetReference> unknownDatasetReferences = createDatasetReferences(unknownDatasets);
@@ -396,6 +396,8 @@ public class PlateContentLoader
                             .getCode(), wellLocationOrNull);
             logicalImages.add(logicalImage);
         }
-        return new ImageSampleContent(logicalImages);
+
+        List<DatasetReference> unknownDatasetReferences = extractUnknownDatasets(datasets);
+        return new ImageSampleContent(logicalImages, unknownDatasetReferences);
     }
 }
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/ScreeningUtils.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/ScreeningUtils.java
index 65ef01853c9..98accc89cf3 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/ScreeningUtils.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/ScreeningUtils.java
@@ -85,7 +85,8 @@ public class ScreeningUtils
         for (ExternalDataPE dataset : datasets)
         {
             if (isTypeEqual(dataset, ScreeningConstants.HCS_IMAGE_ANALYSIS_DATASET_TYPE) == false
-                    && isTypeEqual(dataset, ScreeningConstants.HCS_IMAGE_DATASET_TYPE) == false)
+                    && isTypeEqual(dataset, ScreeningConstants.HCS_IMAGE_DATASET_TYPE) == false
+                    && isTypeEqual(dataset, ScreeningConstants.MICROSCOPY_IMAGE_DATASET_TYPE) == false)
             {
                 chosenDatasets.add(dataset);
             }
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/basic/dto/ImageSampleContent.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/basic/dto/ImageSampleContent.java
index e3f98ec3daf..b672f2b0b2e 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/basic/dto/ImageSampleContent.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/basic/dto/ImageSampleContent.java
@@ -33,19 +33,28 @@ public class ImageSampleContent implements ISerializable
 
     private List<LogicalImageInfo> logicalImages;
 
+    private List<DatasetReference> unknownDatasets;
+
     // GWT only
     @SuppressWarnings("unused")
     private ImageSampleContent()
     {
     }
 
-    public ImageSampleContent(List<LogicalImageInfo> logicalImages)
+    public ImageSampleContent(List<LogicalImageInfo> logicalImages,
+            List<DatasetReference> unknownDatasets)
     {
         this.logicalImages = logicalImages;
+        this.unknownDatasets = unknownDatasets;
     }
 
     public List<LogicalImageInfo> getLogicalImages()
     {
         return logicalImages;
     }
+
+    public List<DatasetReference> getUnknownDatasets()
+    {
+        return unknownDatasets;
+    }
 }
-- 
GitLab