From 343c0f4e9ed55cb8fa10e912c9636a1ade4e2ab7 Mon Sep 17 00:00:00 2001
From: buczekp <buczekp>
Date: Mon, 6 Sep 2010 11:57:04 +0000
Subject: [PATCH] [LMS-1690] select experiment after clicking on material code

SVN: 17724
---
 .../ExperimentWellMaterialBrowserGrid.java    | 52 +++++++++----------
 .../ExperimentWellMaterialsSection.java       |  5 +-
 2 files changed, 27 insertions(+), 30 deletions(-)

diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentWellMaterialBrowserGrid.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentWellMaterialBrowserGrid.java
index e4cde4ed26e..603f21e5b10 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentWellMaterialBrowserGrid.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentWellMaterialBrowserGrid.java
@@ -24,10 +24,12 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.materia
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ListMaterialDisplayCriteria;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ResultSet;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteria;
+import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolderWithIdentifier;
 import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Material;
 import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.IScreeningClientServiceAsync;
+import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.ClientPluginFactory;
+import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.PlateMaterialsSearchCriteria.ExperimentSearchCriteria;
 
 /**
  * A {@link MaterialBrowserGrid} extension for showing materials used in wells of an experiment.
@@ -42,20 +44,13 @@ public class ExperimentWellMaterialBrowserGrid extends MaterialBrowserGrid
      */
     public static DisposableEntityChooser<Material> createForExperiment(
             final IViewContext<IScreeningClientServiceAsync> screeningViewContext,
-            TechId experimentId)
-    {
-        return createWithTypeChooser(screeningViewContext, experimentId);
-    }
-
-    private static DisposableEntityChooser<Material> createWithTypeChooser(
-            final IViewContext<IScreeningClientServiceAsync> screeningViewContext,
-            final TechId experimentId)
+            final IEntityInformationHolderWithIdentifier experiment)
     {
         final MaterialBrowserToolbar toolbar =
                 new MaterialBrowserToolbar(screeningViewContext.getCommonViewContext(), null);
         final ICriteriaProvider<ListMaterialDisplayCriteria> criteriaProvider = toolbar;
         final ExperimentWellMaterialBrowserGrid browserGrid =
-                createBrowserGrid(screeningViewContext, criteriaProvider, experimentId);
+                createBrowserGrid(screeningViewContext, criteriaProvider, experiment);
         browserGrid.addGridRefreshListener(toolbar);
         browserGrid.extendBottomToolbar(true);
         return browserGrid.asDisposableWithToolbar(toolbar);
@@ -64,24 +59,25 @@ public class ExperimentWellMaterialBrowserGrid extends MaterialBrowserGrid
     private static ExperimentWellMaterialBrowserGrid createBrowserGrid(
             final IViewContext<IScreeningClientServiceAsync> screeningViewContext,
             final ICriteriaProvider<ListMaterialDisplayCriteria> criteriaProvider,
-            final TechId experimentId)
+            final IEntityInformationHolderWithIdentifier experiment)
     {
         return new ExperimentWellMaterialBrowserGrid(screeningViewContext, true, criteriaProvider,
-                experimentId);
+                experiment);
     }
 
     private final IViewContext<IScreeningClientServiceAsync> screeningViewContext;
 
-    private final TechId experimentId;
+    private final IEntityInformationHolderWithIdentifier experiment;
 
     protected ExperimentWellMaterialBrowserGrid(
             final IViewContext<IScreeningClientServiceAsync> screeningViewContext,
             boolean refreshAutomatically,
-            ICriteriaProvider<ListMaterialDisplayCriteria> criteriaProvider, TechId experimentId)
+            ICriteriaProvider<ListMaterialDisplayCriteria> criteriaProvider,
+            IEntityInformationHolderWithIdentifier experiment)
     {
         super(screeningViewContext.getCommonViewContext(), refreshAutomatically, criteriaProvider);
         this.screeningViewContext = screeningViewContext;
-        this.experimentId = experimentId;
+        this.experiment = experiment;
     }
 
     @Override
@@ -95,22 +91,24 @@ public class ExperimentWellMaterialBrowserGrid extends MaterialBrowserGrid
             AbstractAsyncCallback<ResultSet<Material>> callback)
     {
         criteria.copyPagingConfig(resultSetConfig);
-        screeningViewContext.getService().listExperimentMaterials(experimentId, criteria, callback);
+        screeningViewContext.getService().listExperimentMaterials(TechId.create(experiment),
+                criteria, callback);
     }
 
-    // TODO 2010-09-06, Piotr Buczek: check
     @Override
-    protected void prepareExportEntities(TableExportCriteria<Material> exportCriteria,
-            AbstractAsyncCallback<String> callback)
+    protected void showEntityViewer(Material material, boolean editMode, boolean active)
     {
-        viewContext.getService().prepareExportMaterials(exportCriteria, callback);
+        if (editMode == false)
+        {
+            ExperimentSearchCriteria experimentCriteria =
+                    ExperimentSearchCriteria.createExperiment(experiment.getId(), experiment
+                            .getIdentifier());
+            ClientPluginFactory.openPlateLocationsMaterialViewer(material, experimentCriteria,
+                    screeningViewContext);
+        } else
+        {
+            super.showEntityViewer(material, editMode, active);
+        }
     }
 
-    // TODO 2010-09-06, Piotr Buczek: set experiment
-    // @Override
-    // protected void showEntityViewer(Material material, boolean editMode, boolean active)
-    // {
-    // showEntityInformationHolderViewer(material, editMode, active);
-    // }
-
 }
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentWellMaterialsSection.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentWellMaterialsSection.java
index cdd820c5070..22ac7a32658 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentWellMaterialsSection.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentWellMaterialsSection.java
@@ -4,7 +4,6 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.Disposable
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisposableComponent;
 import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolderWithIdentifier;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.IScreeningClientServiceAsync;
 import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.Dict;
 import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.DisplayTypeIDGenerator;
@@ -36,8 +35,8 @@ public class ExperimentWellMaterialsSection extends DisposableSectionPanel
     @Override
     protected IDisposableComponent createDisposableContent()
     {
-        return ExperimentWellMaterialBrowserGrid.createForExperiment(screeningViewContext, TechId
-                .create(experiment));
+        return ExperimentWellMaterialBrowserGrid.createForExperiment(screeningViewContext,
+                experiment);
     }
 
 }
\ No newline at end of file
-- 
GitLab