From d79177f82d6158f1591c93840775a79dffc180de Mon Sep 17 00:00:00 2001 From: kaloyane <kaloyane> Date: Tue, 19 Jul 2011 10:40:45 +0000 Subject: [PATCH] [LMS-2138] next ui changes SVN: 22203 --- .../application/ClientPluginFactory.java | 10 +++-- .../ExperimentAnalysisSummaryGrid.java | 4 +- .../ExperimentWellMaterialBrowserGrid.java | 5 ++- .../detailviewers/ImagingMaterialViewer.java | 14 ++++-- .../MaterialDisambiguationGrid.java | 3 +- ...alFeaturesFromAllExperimentsComponent.java | 14 ++++++ ...aterialFeaturesFromAllExperimentsGrid.java | 5 ++- ...erialFeaturesFromAllExperimentsViewer.java | 19 +++++--- .../MaterialReplicaSummaryComponent.java | 43 ++++++++++++++++--- .../MaterialReplicaSummaryViewer.java | 15 ++++--- .../detailviewers/WellContentDialog.java | 2 + .../detailviewers/WellSearchGrid.java | 2 +- .../ImagingMaterialLocatorResolver.java | 32 +++++++++++--- 13 files changed, 134 insertions(+), 34 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 4ac26fd3d01..13804de7774 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 @@ -67,6 +67,7 @@ import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.d import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.sample.LibrarySampleBatchRegistrationForm; import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.ui.columns.specific.ScreeningLinkExtractor; import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ScreeningConstants; +import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellSearchCriteria.AnalysisProcedureCriteria; import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellSearchCriteria.ExperimentSearchByProjectCriteria; import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellSearchCriteria.ExperimentSearchCriteria; import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellSearchCriteria.SingleExperimentSearchCriteria; @@ -228,6 +229,7 @@ public final class ClientPluginFactory extends AbstractClientPluginFactory<Scree public static final void openImagingMaterialViewer( final IEntityInformationHolderWithPermId material, final ExperimentSearchCriteria experimentCriteriaOrNull, + final AnalysisProcedureCriteria analysisProcedureCriteria, final IViewContext<IScreeningClientServiceAsync> viewContext) { if (viewContext.getModel().isEmbeddedMode()) @@ -238,7 +240,7 @@ public final class ClientPluginFactory extends AbstractClientPluginFactory<Scree if (multipleExperimentsScope != null) { MaterialFeaturesFromAllExperimentsViewer.openTab(viewContext, materialIdentifier, - multipleExperimentsScope); + multipleExperimentsScope, analysisProcedureCriteria); } else { assert experimentCriteriaOrNull != null; @@ -248,7 +250,7 @@ public final class ClientPluginFactory extends AbstractClientPluginFactory<Scree MaterialReplicaSummaryViewer.openTab(viewContext, experiment.getExperimentPermId(), experimentCriteriaOrNull.getRestrictGlobalSearchLinkToProject(), - materialIdentifier); + materialIdentifier, analysisProcedureCriteria); } } else @@ -304,9 +306,11 @@ 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); + experimentCriteriaOrNull, + AnalysisProcedureCriteria.createAllProcedures()); return createViewerTab(viewer, getTabTitle(), viewContext); } diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentAnalysisSummaryGrid.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentAnalysisSummaryGrid.java index ffd55ad5258..f04f3e8f2fc 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentAnalysisSummaryGrid.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentAnalysisSummaryGrid.java @@ -103,8 +103,10 @@ public class ExperimentAnalysisSummaryGrid extends TypedTableGrid<MaterialFeatur private void openMaterialDetailViewer(IEntityInformationHolderWithPermId material) { + assert analysisProcedureCriteria != null : "analysisProcedureCriteria is not set yet, " + + "it should not happen because this field is set before the grid refreshes"; ClientPluginFactory.openImagingMaterialViewer(material, getExperimentAsSearchCriteria(), - screeningViewContext); + analysisProcedureCriteria, screeningViewContext); } private ExperimentSearchCriteria getExperimentAsSearchCriteria() 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 ba4eea1bd29..2968220be00 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 @@ -35,6 +35,7 @@ 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.client.web.client.application.ui.columns.specific.ScreeningLinkExtractor; +import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellSearchCriteria.AnalysisProcedureCriteria; import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellSearchCriteria.ExperimentSearchCriteria; /** @@ -108,9 +109,9 @@ public class ExperimentWellMaterialBrowserGrid extends MaterialBrowserGrid { if (editMode == false) { - // TODO KE: pass AnalysisProcedure.ANY ClientPluginFactory.openImagingMaterialViewer(material, - createExperimentSearchCriteria(), screeningViewContext); + createExperimentSearchCriteria(), + AnalysisProcedureCriteria.createAllProcedures(), screeningViewContext); } else { super.showEntityViewer(material, editMode, active); 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 c780aa03443..fe5dca31ff7 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 @@ -45,10 +45,12 @@ public class ImagingMaterialViewer extends GenericMaterialViewer */ public static DatabaseModificationAwareComponent create( IViewContext<IScreeningClientServiceAsync> viewContext, TechId materialId, - ExperimentSearchCriteria experimentCriteriaOrNull) + ExperimentSearchCriteria experimentCriteriaOrNull, + AnalysisProcedureCriteria analysisProcedureCriteria) { ImagingMaterialViewer viewer = - new ImagingMaterialViewer(viewContext, materialId, experimentCriteriaOrNull); + new ImagingMaterialViewer(viewContext, materialId, experimentCriteriaOrNull, + analysisProcedureCriteria); viewer.reloadAllData(); return new DatabaseModificationAwareComponent(viewer, viewer); } @@ -57,8 +59,10 @@ public class ImagingMaterialViewer extends GenericMaterialViewer private final ExperimentSearchCriteria initialExperimentCriteriaOrNull; + // TODO KE, TPK: finish me private ImagingMaterialViewer(IViewContext<IScreeningClientServiceAsync> viewContext, - TechId materialTechId, ExperimentSearchCriteria experimentCriteriaOrNull) + TechId materialTechId, ExperimentSearchCriteria experimentCriteriaOrNull, + AnalysisProcedureCriteria analysisProcedureCriteria) { super(viewContext, materialTechId); this.screeningViewContext = viewContext; @@ -89,9 +93,11 @@ public class ImagingMaterialViewer extends GenericMaterialViewer restrictGlobalScopeLinkToProject); sections.add(wellSearchSection); + // TODO KE, TPK: finish me MaterialMergedSummarySection summarySection = new MaterialMergedSummarySection(screeningViewContext, material, - initialExperimentCriteriaOrNull, restrictGlobalScopeLinkToProject); + initialExperimentCriteriaOrNull, + restrictGlobalScopeLinkToProject); sections.add(summarySection); return sections; } diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/MaterialDisambiguationGrid.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/MaterialDisambiguationGrid.java index 56eb70b957f..2b977dbe71d 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/MaterialDisambiguationGrid.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/MaterialDisambiguationGrid.java @@ -251,7 +251,8 @@ public class MaterialDisambiguationGrid extends TypedTableGrid<Material> private void openMaterialDetailViewer(Material material) { ClientPluginFactory.openImagingMaterialViewer(material, - searchCriteria.getExperimentCriteria(), screeningViewContext); + searchCriteria.getExperimentCriteria(), + searchCriteria.getAnalysisProcedureCriteria(), screeningViewContext); } @Override diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/MaterialFeaturesFromAllExperimentsComponent.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/MaterialFeaturesFromAllExperimentsComponent.java index 511c400c5a7..b0f99ab3f62 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/MaterialFeaturesFromAllExperimentsComponent.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/MaterialFeaturesFromAllExperimentsComponent.java @@ -22,6 +22,7 @@ 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.Dict; import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.detailviewers.utils.MaterialComponentUtils; +import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellSearchCriteria.AnalysisProcedureCriteria; import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellSearchCriteria.ExperimentSearchByProjectCriteria; /** @@ -43,6 +44,19 @@ public class MaterialFeaturesFromAllExperimentsComponent analysisProcedureListenerHolder); } + public static IDisposableComponent createComponent( + IViewContext<IScreeningClientServiceAsync> screeningViewContext, Material material, + ExperimentSearchByProjectCriteria experimentCriteria, + AnalysisProcedureCriteria analysisProcedureCriteria) + { + AnalysisProcedureListenerHolder listenerHolder = new AnalysisProcedureListenerHolder(); + IDisposableComponent component = + createComponent(screeningViewContext, material, experimentCriteria, listenerHolder); + listenerHolder.getAnalysisProcedureListener().analysisProcedureSelected( + analysisProcedureCriteria); + return component; + } + private final IViewContext<IScreeningClientServiceAsync> screeningViewContext; private MaterialFeaturesFromAllExperimentsComponent( diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/MaterialFeaturesFromAllExperimentsGrid.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/MaterialFeaturesFromAllExperimentsGrid.java index edc3fb04f73..4802cfa7a47 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/MaterialFeaturesFromAllExperimentsGrid.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/MaterialFeaturesFromAllExperimentsGrid.java @@ -154,6 +154,9 @@ public class MaterialFeaturesFromAllExperimentsGrid extends } String experimentPermId = summaryOrNull.getExperiment().getPermId(); + assert analysisProcedureCriteria != null : "analysisProcedureCriteria is not set yet, " + + "it should not happen because this field is set before the grid refreshes"; + // NOTE: even in not-embedded mode we open specific standalone summary // view instead of material detail view (which contains the summary view // as one of its tabs). The reason is that in such a case we are already @@ -161,7 +164,7 @@ public class MaterialFeaturesFromAllExperimentsGrid extends // implemented there. MaterialReplicaSummaryViewer.openTab(screeningViewContext, experimentPermId, getRestrictGlobalScopeLinkToProject(), - new MaterialIdentifier(material)); + new MaterialIdentifier(material), analysisProcedureCriteria); } public String tryGetLink(MaterialSimpleFeatureVectorSummary entity, diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/MaterialFeaturesFromAllExperimentsViewer.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/MaterialFeaturesFromAllExperimentsViewer.java index 26540c5f43f..ae4be7d5bef 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/MaterialFeaturesFromAllExperimentsViewer.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/MaterialFeaturesFromAllExperimentsViewer.java @@ -30,6 +30,7 @@ import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.IScreeningCli import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.ScreeningModule; import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.detailviewers.utils.MaterialComponentUtils; import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.ui.columns.specific.ScreeningLinkExtractor; +import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellSearchCriteria.AnalysisProcedureCriteria; import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellSearchCriteria.ExperimentSearchByProjectCriteria; /** @@ -41,13 +42,17 @@ public class MaterialFeaturesFromAllExperimentsViewer { /** * Fetches material and opens a tab with {@link MaterialReplicaSummaryComponent}. + * + * @param analysisProcedureCriteria */ public static void openTab(IViewContext<IScreeningClientServiceAsync> screeningViewContext, MaterialIdentifier materialIdentifier, - final ExperimentSearchByProjectCriteria experimentCriteria) + final ExperimentSearchByProjectCriteria experimentCriteria, + AnalysisProcedureCriteria analysisProcedureCriteria) { final MaterialFeaturesFromAllExperimentsViewer viewer = - new MaterialFeaturesFromAllExperimentsViewer(screeningViewContext); + new MaterialFeaturesFromAllExperimentsViewer(screeningViewContext, + analysisProcedureCriteria); screeningViewContext.getCommonService().getMaterialInfo(materialIdentifier, new AbstractAsyncCallback<Material>(screeningViewContext) @@ -63,10 +68,14 @@ public class MaterialFeaturesFromAllExperimentsViewer private final IViewContext<IScreeningClientServiceAsync> screeningViewContext; + private final AnalysisProcedureCriteria analysisProcedureCriteria; + private MaterialFeaturesFromAllExperimentsViewer( - IViewContext<IScreeningClientServiceAsync> screeningViewContext) + IViewContext<IScreeningClientServiceAsync> screeningViewContext, + AnalysisProcedureCriteria analysisProcedureCriteria) { this.screeningViewContext = screeningViewContext; + this.analysisProcedureCriteria = analysisProcedureCriteria; } private void openTab(Material material, ExperimentSearchByProjectCriteria experimentCriteria) @@ -91,11 +100,11 @@ public class MaterialFeaturesFromAllExperimentsViewer @Override public ITabItem create() { - // TODO KE: FIXMe what sort of analysis***holder do we have here ? IDisposableComponent tabComponent = MaterialFeaturesFromAllExperimentsComponent.createComponent( screeningViewContext, material, experimentCriteria, - new AnalysisProcedureListenerHolder()); + analysisProcedureCriteria); + return DefaultTabItem.create(getTabTitle(), tabComponent, screeningViewContext); } diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/MaterialReplicaSummaryComponent.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/MaterialReplicaSummaryComponent.java index 0b9f6b9cdb6..0d572bd1c21 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/MaterialReplicaSummaryComponent.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/MaterialReplicaSummaryComponent.java @@ -61,6 +61,7 @@ import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.u import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ImageDatasetParameters; import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellImage; import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellReplicaImage; +import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellSearchCriteria.AnalysisProcedureCriteria; import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellSearchCriteria.ExperimentSearchCriteria; /** @@ -87,23 +88,37 @@ public class MaterialReplicaSummaryComponent AnalysisProcedureListenerHolder analysisProcedureListenerHolder) { return new MaterialReplicaSummaryComponent(screeningViewContext, - restrictGlobalScopeLinkToProject, experiment).createViewer(material, + restrictGlobalScopeLinkToProject, experiment, null).createViewer(material, analysisProcedureListenerHolder); } + public static IDisposableComponent createViewer( + IViewContext<IScreeningClientServiceAsync> screeningViewContext, Experiment experiment, + Material material, boolean restrictGlobalScopeLinkToProject, + AnalysisProcedureCriteria analysisProcedureCriteria) + { + return new MaterialReplicaSummaryComponent(screeningViewContext, + restrictGlobalScopeLinkToProject, experiment, analysisProcedureCriteria) + .createViewer(material); + } + private final IViewContext<IScreeningClientServiceAsync> screeningViewContext; private final boolean restrictGlobalScopeLinkToProject; private final Experiment experiment; + private final AnalysisProcedureCriteria initialAnalysisProcedureCriteriaOrNull; + private MaterialReplicaSummaryComponent( IViewContext<IScreeningClientServiceAsync> screeningViewContext, - boolean restrictGlobalScopeLinkToProject, Experiment experiment) + boolean restrictGlobalScopeLinkToProject, Experiment experiment, + AnalysisProcedureCriteria initialAnalysisProcedureCriteriaOrNull) { this.screeningViewContext = screeningViewContext; this.restrictGlobalScopeLinkToProject = restrictGlobalScopeLinkToProject; this.experiment = experiment; + this.initialAnalysisProcedureCriteriaOrNull = initialAnalysisProcedureCriteriaOrNull; } private class ImagesFoundCallback extends AbstractAsyncCallback<List<WellReplicaImage>> @@ -343,6 +358,18 @@ public class MaterialReplicaSummaryComponent return widgetWithListener.asWidget(); } + private IDisposableComponent createViewer(Material material) + { + AnalysisProcedureListenerHolder holder = new AnalysisProcedureListenerHolder(); + IDisposableComponent view = createViewer(material, holder); + if (initialAnalysisProcedureCriteriaOrNull != null) + { + holder.getAnalysisProcedureListener().analysisProcedureSelected( + initialAnalysisProcedureCriteriaOrNull); + } + return view; + } + private IDisposableComponent createViewer(Material material, AnalysisProcedureListenerHolder analysisProcedureListenerHolder) { @@ -420,9 +447,12 @@ public class MaterialReplicaSummaryComponent // in non-embedded mode there is a separate tab in material detail view with all assays // information, so we do not display this link there - if (screeningViewContext.getModel().isEmbeddedMode()) + if (screeningViewContext.getModel().isEmbeddedMode() + && initialAnalysisProcedureCriteriaOrNull != null) { - Widget materialInAllAssaysSummaryLink = createMaterialInAllAssaysSummaryLink(material); + Widget materialInAllAssaysSummaryLink = + createMaterialInAllAssaysSummaryLink(material, + initialAnalysisProcedureCriteriaOrNull); rightLinksPanel.add(materialInAllAssaysSummaryLink, linkMargins); } @@ -433,7 +463,8 @@ public class MaterialReplicaSummaryComponent return headerPanel; } - private Widget createMaterialInAllAssaysSummaryLink(final Material material) + private Widget createMaterialInAllAssaysSummaryLink(final Material material, + final AnalysisProcedureCriteria analysisProcedureCriteria) { final ExperimentSearchCriteria experimentCriteria = createAllAssaysExperimentCriteria(); String linkUrl = @@ -446,7 +477,7 @@ public class MaterialReplicaSummaryComponent public void onClick(ClickEvent event) { ClientPluginFactory.openImagingMaterialViewer(material, experimentCriteria, - screeningViewContext); + analysisProcedureCriteria, screeningViewContext); } }, linkUrl); return linkWidget; diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/MaterialReplicaSummaryViewer.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/MaterialReplicaSummaryViewer.java index 9a5cfcc10c7..b656ded6377 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/MaterialReplicaSummaryViewer.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/MaterialReplicaSummaryViewer.java @@ -33,6 +33,7 @@ import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.IScreeningCli import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.ScreeningModule; import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.detailviewers.utils.MaterialComponentUtils; import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.ui.columns.specific.ScreeningLinkExtractor; +import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellSearchCriteria.AnalysisProcedureCriteria; import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellSearchCriteria.ExperimentSearchCriteria; /** @@ -47,11 +48,12 @@ public class MaterialReplicaSummaryViewer */ public static void openTab(IViewContext<IScreeningClientServiceAsync> screeningViewContext, String experimentPermId, boolean restrictGlobalScopeLinkToProject, - MaterialIdentifier materialIdentifier) + MaterialIdentifier materialIdentifier, + AnalysisProcedureCriteria analysisProcedureCriteria) { MaterialReplicaSummaryViewer viewer = new MaterialReplicaSummaryViewer(screeningViewContext, - restrictGlobalScopeLinkToProject); + restrictGlobalScopeLinkToProject, analysisProcedureCriteria); AbstractAsyncCallback<Experiment> experimentFoundCallback = viewer.createExperimentFoundCallback(materialIdentifier); viewer.fetchExperimentByPermId(experimentPermId, experimentFoundCallback); @@ -61,12 +63,16 @@ public class MaterialReplicaSummaryViewer private final boolean restrictGlobalScopeLinkToProject; + private final AnalysisProcedureCriteria analysisProcedureCriteria; + private MaterialReplicaSummaryViewer( IViewContext<IScreeningClientServiceAsync> screeningViewContext, - boolean restrictGlobalScopeLinkToProject) + boolean restrictGlobalScopeLinkToProject, + AnalysisProcedureCriteria analysisProcedureCriteria) { this.screeningViewContext = screeningViewContext; this.restrictGlobalScopeLinkToProject = restrictGlobalScopeLinkToProject; + this.analysisProcedureCriteria = analysisProcedureCriteria; } private void fetchExperimentByPermId(String experimentPermId, @@ -138,11 +144,10 @@ public class MaterialReplicaSummaryViewer @Override public ITabItem create() { - // TODO KE: FIXME - what sort of analysis***holder do we have here ? IDisposableComponent tabComponent = MaterialReplicaSummaryComponent.createViewer(screeningViewContext, experiment, material, restrictGlobalScopeLinkToProject, - new AnalysisProcedureListenerHolder()); + analysisProcedureCriteria); return DefaultTabItem.create(getTabTitle(), tabComponent, screeningViewContext); } diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/WellContentDialog.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/WellContentDialog.java index d04ca32fe95..3a42e93014a 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/WellContentDialog.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/WellContentDialog.java @@ -66,6 +66,7 @@ import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ScreeningConst import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellImage; import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellLocation; import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellMetadata; +import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellSearchCriteria.AnalysisProcedureCriteria; import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellSearchCriteria.ExperimentSearchCriteria; import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellSearchCriteria.SingleExperimentSearchCriteria; @@ -434,6 +435,7 @@ public class WellContentDialog extends Dialog // TODO KE: pass analysis procedure from plate layout to material detail view ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.ClientPluginFactory .openImagingMaterialViewer(material, getExperimentCriteria(), + AnalysisProcedureCriteria.createAllProcedures(), viewContext); } diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/WellSearchGrid.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/WellSearchGrid.java index ecc6b0fa1ff..ca6a7092ea7 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/WellSearchGrid.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/WellSearchGrid.java @@ -404,7 +404,7 @@ public class WellSearchGrid extends TypedTableGrid<WellContent> implements private void openImagingMaterialViewer(WellContent wellContent, Material material) { ClientPluginFactory.openImagingMaterialViewer(material, getExperimentCriteria(wellContent), - viewContext); + analysisProcedureCriteria, viewContext); } private void linkExperiment() diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/locator/ImagingMaterialLocatorResolver.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/locator/ImagingMaterialLocatorResolver.java index 47852aec211..276caa3d33a 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/locator/ImagingMaterialLocatorResolver.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/locator/ImagingMaterialLocatorResolver.java @@ -15,6 +15,7 @@ import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.IScreeningCli import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.ClientPluginFactory; import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.ui.columns.specific.ScreeningLinkExtractor; import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.dto.ExperimentIdentifierSearchCriteria; +import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellSearchCriteria.AnalysisProcedureCriteria; import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellSearchCriteria.ExperimentSearchCriteria; /** @@ -41,7 +42,10 @@ public class ImagingMaterialLocatorResolver extends MaterialLocatorResolver ExperimentIdentifierSearchCriteria experimentCriteriaOrNull = tryGetExperimentIdentifierSearchCriteria(locator); - openInitialMaterialViewer(extractMaterialIdentifier(locator), experimentCriteriaOrNull); + AnalysisProcedureCriteria analysisProcedureCriteria = + extractAnalysisProcedureCriteria(locator); + openInitialMaterialViewer(extractMaterialIdentifier(locator), experimentCriteriaOrNull, + analysisProcedureCriteria); } private static ExperimentIdentifierSearchCriteria tryGetExperimentIdentifierSearchCriteria( @@ -80,16 +84,30 @@ public class ImagingMaterialLocatorResolver extends MaterialLocatorResolver return null; } + private AnalysisProcedureCriteria extractAnalysisProcedureCriteria(ViewLocator locator) + { + String analysisProcedureCode = + getOptionalParameter(locator, ScreeningLinkExtractor.ANALYSIS_PROCEDURE_KEY); + + return StringUtils.isBlank(analysisProcedureCode) ? AnalysisProcedureCriteria + .createAllProcedures() : AnalysisProcedureCriteria + .createFromCode(analysisProcedureCode); + } + /** * Open the gene material details tab for the specified identifier. Optionally select experiment * in the viewer. + * + * @param analysisProcedureCriteria */ protected void openInitialMaterialViewer(MaterialIdentifier identifier, - ExperimentIdentifierSearchCriteria experimentCriteriaOrNull) + ExperimentIdentifierSearchCriteria experimentCriteriaOrNull, + AnalysisProcedureCriteria analysisProcedureCriteria) throws UserFailureException { viewContext.getCommonService().getMaterialInformationHolder(identifier, - new OpenEntityDetailsTabCallback(viewContext, experimentCriteriaOrNull)); + new OpenEntityDetailsTabCallback(viewContext, experimentCriteriaOrNull, + analysisProcedureCriteria)); } private static class OpenEntityDetailsTabCallback extends @@ -99,13 +117,17 @@ public class ImagingMaterialLocatorResolver extends MaterialLocatorResolver private final ExperimentIdentifierSearchCriteria scopeOrNull; + private final AnalysisProcedureCriteria analysisProcedureCriteria; + private OpenEntityDetailsTabCallback( final IViewContext<IScreeningClientServiceAsync> viewContext, - ExperimentIdentifierSearchCriteria scopeOrNull) + ExperimentIdentifierSearchCriteria scopeOrNull, + AnalysisProcedureCriteria analysisProcedureCriteria) { super(viewContext); this.viewContext = viewContext; this.scopeOrNull = scopeOrNull; + this.analysisProcedureCriteria = analysisProcedureCriteria; } // @@ -165,7 +187,7 @@ public class ImagingMaterialLocatorResolver extends MaterialLocatorResolver final ExperimentSearchCriteria experimentSearchCriteriaOrNull) { ClientPluginFactory.openImagingMaterialViewer(material, experimentSearchCriteriaOrNull, - viewContext); + analysisProcedureCriteria, viewContext); } } -- GitLab