From 2562d59306a74ce7d53791b1740f60aaa57a7c6a Mon Sep 17 00:00:00 2001
From: tpylak <tpylak>
Date: Tue, 19 Jul 2011 11:02:11 +0000
Subject: [PATCH] LMS-2355 analysis procedures for material summaries in normal
 mode

SVN: 22204
---
 .../application/ClientPluginFactory.java      | 14 ++++---
 .../AnalysisProcedureListenerHolder.java      |  2 +
 .../detailviewers/ImagingMaterialViewer.java  | 10 ++---
 .../MaterialMergedSummarySection.java         | 37 +++++++++++++------
 4 files changed, 39 insertions(+), 24 deletions(-)

diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/ClientPluginFactory.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/ClientPluginFactory.java
index 13804de7774..3a771dd49fe 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/ClientPluginFactory.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/ClientPluginFactory.java
@@ -177,7 +177,8 @@ public final class ClientPluginFactory extends AbstractClientPluginFactory<Scree
         public final AbstractTabItemFactory createEntityViewer(
                 final IEntityInformationHolderWithPermId entity)
         {
-            return createImagingMaterialViewerTabFactory(entity, null, getViewContext());
+            return createImagingMaterialViewerTabFactory(entity, null,
+                    AnalysisProcedureCriteria.createAllProcedures(), getViewContext());
         }
     }
 
@@ -255,7 +256,8 @@ public final class ClientPluginFactory extends AbstractClientPluginFactory<Scree
             }
         } else
         {
-            openImagingMaterialGenericViewer(material, experimentCriteriaOrNull, viewContext);
+            openImagingMaterialGenericViewer(material, experimentCriteriaOrNull,
+                    analysisProcedureCriteria, viewContext);
         }
     }
 
@@ -281,11 +283,12 @@ public final class ClientPluginFactory extends AbstractClientPluginFactory<Scree
     private static void openImagingMaterialGenericViewer(
             final IEntityInformationHolderWithPermId material,
             final ExperimentSearchCriteria experimentCriteriaOrNull,
+            final AnalysisProcedureCriteria analysisProcedureCriteria,
             final IViewContext<IScreeningClientServiceAsync> viewContext)
     {
         AbstractTabItemFactory tab =
                 createImagingMaterialViewerTabFactory(material, experimentCriteriaOrNull,
-                        viewContext);
+                        analysisProcedureCriteria, viewContext);
         DispatcherHelper.dispatchNaviEvent(tab);
     }
 
@@ -298,6 +301,7 @@ public final class ClientPluginFactory extends AbstractClientPluginFactory<Scree
     private static final AbstractTabItemFactory createImagingMaterialViewerTabFactory(
             final IEntityInformationHolderWithPermId material,
             final ExperimentSearchCriteria experimentCriteriaOrNull,
+            final AnalysisProcedureCriteria analysisProcedureCriteria,
             final IViewContext<IScreeningClientServiceAsync> viewContext)
     {
         return new AbstractTabItemFactory()
@@ -306,11 +310,9 @@ public final class ClientPluginFactory extends AbstractClientPluginFactory<Scree
                 public ITabItem create()
                 {
                     TechId materialTechId = TechId.create(material);
-                    // TODO KE, TPK: Finish me
                     final DatabaseModificationAwareComponent viewer =
                             ImagingMaterialViewer.create(viewContext, materialTechId,
-                                    experimentCriteriaOrNull,
-                                    AnalysisProcedureCriteria.createAllProcedures());
+                                    experimentCriteriaOrNull, analysisProcedureCriteria);
                     return createViewerTab(viewer, getTabTitle(), viewContext);
                 }
 
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/AnalysisProcedureListenerHolder.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/AnalysisProcedureListenerHolder.java
index 327058302d6..39074d7e0d4 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/AnalysisProcedureListenerHolder.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/AnalysisProcedureListenerHolder.java
@@ -23,6 +23,8 @@ import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.d
  */
 public class AnalysisProcedureListenerHolder
 {
+    public AnalysisProcedureListenerHolder() {
+    }
 
     private IAnalysisProcedureSelectionListener analysisProcedureListener;
 
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ImagingMaterialViewer.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ImagingMaterialViewer.java
index fe5dca31ff7..18571aa438b 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ImagingMaterialViewer.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ImagingMaterialViewer.java
@@ -59,7 +59,8 @@ public class ImagingMaterialViewer extends GenericMaterialViewer
 
     private final ExperimentSearchCriteria initialExperimentCriteriaOrNull;
 
-    // TODO KE, TPK: finish me
+    private final AnalysisProcedureCriteria analysisProcedureCriteria;
+
     private ImagingMaterialViewer(IViewContext<IScreeningClientServiceAsync> viewContext,
             TechId materialTechId, ExperimentSearchCriteria experimentCriteriaOrNull,
             AnalysisProcedureCriteria analysisProcedureCriteria)
@@ -67,6 +68,7 @@ public class ImagingMaterialViewer extends GenericMaterialViewer
         super(viewContext, materialTechId);
         this.screeningViewContext = viewContext;
         this.initialExperimentCriteriaOrNull = experimentCriteriaOrNull;
+        this.analysisProcedureCriteria = analysisProcedureCriteria;
     }
 
     @Override
@@ -84,19 +86,15 @@ public class ImagingMaterialViewer extends GenericMaterialViewer
         boolean restrictGlobalScopeLinkToProject =
                 isRestrictGlobalScopeLinkToProject(initialExperimentCriteriaOrNull);
 
-        AnalysisProcedureCriteria analysisProcedureCriteria =
-                AnalysisProcedureCriteria.createAllProcedures();
-
         WellSearchMaterialSection wellSearchSection =
                 new WellSearchMaterialSection(screeningViewContext, materialId,
                         initialExperimentCriteriaOrNull, analysisProcedureCriteria,
                         restrictGlobalScopeLinkToProject);
         sections.add(wellSearchSection);
 
-        // TODO KE, TPK: finish me
         MaterialMergedSummarySection summarySection =
                 new MaterialMergedSummarySection(screeningViewContext, material,
-                        initialExperimentCriteriaOrNull,
+                        initialExperimentCriteriaOrNull, analysisProcedureCriteria,
                         restrictGlobalScopeLinkToProject);
         sections.add(summarySection);
         return sections;
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/MaterialMergedSummarySection.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/MaterialMergedSummarySection.java
index 9b1b76f7f4c..bb45c348481 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/MaterialMergedSummarySection.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/MaterialMergedSummarySection.java
@@ -36,9 +36,11 @@ class MaterialMergedSummarySection extends DisposableTabContent
     private AnalysisProcedureListenerHolder analysisProcedureListenerHolder =
             new AnalysisProcedureListenerHolder();
 
+    // TODO 2011-07-19, Tomasz Pylak: use analysisProcedureCriteria
     public MaterialMergedSummarySection(
             IViewContext<IScreeningClientServiceAsync> screeningViewContext, Material material,
             ExperimentSearchCriteria experimentCriteriaOrNull,
+            AnalysisProcedureCriteria analysisProcedureCriteria,
             boolean restrictGlobalScopeLinkToProject)
     {
         super(screeningViewContext.getMessage(Dict.MATERIAL_MERGED_SUMMARY_SECTION_TITLE),
@@ -72,29 +74,40 @@ class MaterialMergedSummarySection extends DisposableTabContent
                                         protected void process(Experiment experiment)
                                         {
                                             IDisposableComponent viewer =
-                                                    MaterialReplicaSummaryComponent
-                                                    .createViewer(screeningViewContext, experiment,
-                                                            material,
-                                                            restrictGlobalScopeLinkToProject,
-                                                            analysisProcedureListenerHolder);
+                                                    createMaterialReplicaSummaryComponent(experiment);
                                             replaceContent(viewer);
                                         }
                                     });
                     } else
                     {
-                        final ExperimentSearchByProjectCriteria experimentSearchCriteria =
-                                criteriaOrNull == null ? null
-                                        : criteriaOrNull.tryAsSearchByProjectCriteria();
                         IDisposableComponent allExperimentsComponent =
-                                MaterialFeaturesFromAllExperimentsComponent.createComponent(
-                                        screeningViewContext, material, experimentSearchCriteria,
-                                        analysisProcedureListenerHolder);
+                                createMaterialFeaturesFromAllExperimentsComponent(criteriaOrNull);
                         replaceContent(allExperimentsComponent);
                     }
                 }
             };
     }
 
+    private IDisposableComponent createMaterialFeaturesFromAllExperimentsComponent(
+            ExperimentSearchCriteria criteriaOrNull)
+    {
+        final ExperimentSearchByProjectCriteria experimentSearchCriteria =
+                criteriaOrNull == null ? null : criteriaOrNull.tryAsSearchByProjectCriteria();
+        IDisposableComponent allExperimentsComponent =
+                MaterialFeaturesFromAllExperimentsComponent.createComponent(screeningViewContext,
+                        material, experimentSearchCriteria, analysisProcedureListenerHolder);
+        return allExperimentsComponent;
+    }
+
+    private IDisposableComponent createMaterialReplicaSummaryComponent(Experiment experiment)
+    {
+        IDisposableComponent viewer =
+                MaterialReplicaSummaryComponent
+                        .createViewer(screeningViewContext, experiment, material,
+                                restrictGlobalScopeLinkToProject, analysisProcedureListenerHolder);
+        return viewer;
+    }
+
     @Override
     protected IDisposableComponent createDisposableContent()
     {
@@ -109,7 +122,7 @@ class MaterialMergedSummarySection extends DisposableTabContent
         final SingleOrAllExperimentsChooser experimentsChooser = createExperimentChooser();
         getHeader().addTool(experimentsChooser);
         getHeader().addTool(createAnalysisProcedureChooser());
-        
+
         // WORKAROUND to GXT private widgetPanel in Header with fixed "float: right" set onRender
         experimentsChooser.getParent().addStyleName("force-float-left");
     }
-- 
GitLab