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 f04f3e8f2fcffa4ee421f00522b6104fd9133a39..13e851d246790bd2c61f084640e8bf5b1aec3669 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 @@ -72,10 +72,12 @@ public class ExperimentAnalysisSummaryGrid extends TypedTableGrid<MaterialFeatur public static IDisposableComponent create( IViewContext<IScreeningClientServiceAsync> viewContext, IEntityInformationHolderWithIdentifier experiment, - boolean restrictGlobalScopeLinkToProject) + boolean restrictGlobalScopeLinkToProject, + AnalysisProcedureCriteria initialAnalysisProcedureOrNull) { return new ExperimentAnalysisSummaryGrid(viewContext, experiment, - restrictGlobalScopeLinkToProject).asDisposableWithoutToolbar(); + restrictGlobalScopeLinkToProject, initialAnalysisProcedureOrNull) + .asDisposableWithoutToolbar(); } private ICellListenerAndLinkGenerator<MaterialFeatureVectorSummary> createMaterialReplicaSummaryLinkGenerator() @@ -117,13 +119,16 @@ public class ExperimentAnalysisSummaryGrid extends TypedTableGrid<MaterialFeatur ExperimentAnalysisSummaryGrid(IViewContext<IScreeningClientServiceAsync> viewContext, final IEntityInformationHolderWithIdentifier experiment, - boolean restrictGlobalScopeLinkToProject) + boolean restrictGlobalScopeLinkToProject, + AnalysisProcedureCriteria initialAnalysisProcedureOrNull) { - super(viewContext.getCommonViewContext(), BROWSER_ID, false, + super(viewContext.getCommonViewContext(), BROWSER_ID, + initialAnalysisProcedureOrNull != null, DisplayTypeIDGenerator.EXPERIMENT_FEATURE_VECTOR_SUMMARY_SECTION); this.screeningViewContext = viewContext; this.experiment = experiment; this.restrictGlobalScopeLinkToProject = restrictGlobalScopeLinkToProject; + this.analysisProcedureCriteria = initialAnalysisProcedureOrNull; ICellListenerAndLinkGenerator<MaterialFeatureVectorSummary> linkGenerator = createMaterialReplicaSummaryLinkGenerator(); diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentAnalysisSummarySection.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentAnalysisSummarySection.java index 49a407df67dd7ea1a2af32366c3a0dfcca0cd009..ad1df363b688f8249a53c2f012eb3bef2ab518cc 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentAnalysisSummarySection.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentAnalysisSummarySection.java @@ -36,7 +36,7 @@ public class ExperimentAnalysisSummarySection extends DisposableTabContent setIds(DisplayTypeIDGenerator.EXPERIMENT_FEATURE_VECTOR_SUMMARY_SECTION); analysisGridDisposableComponent = - ExperimentAnalysisSummaryGrid.create(screeningViewContext, experiment, false); + ExperimentAnalysisSummaryGrid.create(screeningViewContext, experiment, false, null); } @Override diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentAnalysisSummaryViewer.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentAnalysisSummaryViewer.java index 3525dff9319ee80ecc9002cc143ab17dc49a2cec..84a32b8773a158bfc15390c51a583f8856b6d006 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentAnalysisSummaryViewer.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentAnalysisSummaryViewer.java @@ -34,6 +34,7 @@ import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.D 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; /** * A grid showing feature vector summary for an experiment. @@ -46,7 +47,7 @@ public class ExperimentAnalysisSummaryViewer public static void openTab( final IViewContext<IScreeningClientServiceAsync> screeningViewContext, String experimentPermId, final boolean restrictGlobalScopeLinkToProject, - final String analysisProcedureOrNull) + final AnalysisProcedureCriteria analysisProcedureCriteria) { screeningViewContext.getCommonService().getEntityInformationHolder(EntityKind.EXPERIMENT, experimentPermId, @@ -57,7 +58,7 @@ public class ExperimentAnalysisSummaryViewer { TechId experimentId = new TechId(experiment); openTab(screeningViewContext, experimentId, - restrictGlobalScopeLinkToProject, analysisProcedureOrNull); + restrictGlobalScopeLinkToProject, analysisProcedureCriteria); } }); } @@ -65,7 +66,7 @@ public class ExperimentAnalysisSummaryViewer public static void openTab( final IViewContext<IScreeningClientServiceAsync> screeningViewContext, TechId experimentId, final boolean restrictGlobalScopeLinkToProject, - final String analysisProcedureOrNull) + final AnalysisProcedureCriteria analysisProcedureCriteria) { screeningViewContext.getCommonService().getExperimentInfo(experimentId, new AbstractAsyncCallback<Experiment>(screeningViewContext) @@ -76,7 +77,7 @@ public class ExperimentAnalysisSummaryViewer AbstractTabItemFactory factory = createTabFactory(screeningViewContext, result, restrictGlobalScopeLinkToProject, - analysisProcedureOrNull); + analysisProcedureCriteria); DispatcherHelper.dispatchNaviEvent(factory); } }); @@ -85,7 +86,8 @@ public class ExperimentAnalysisSummaryViewer private static AbstractTabItemFactory createTabFactory( final IViewContext<IScreeningClientServiceAsync> viewContext, final IEntityInformationHolderWithProperties experiment, - final boolean restrictGlobalScopeLinkToProject, final String analysisProcedureOrNull) + final boolean restrictGlobalScopeLinkToProject, + final AnalysisProcedureCriteria analysisProcedureCriteria) { return new AbstractTabItemFactory() { @@ -103,7 +105,7 @@ public class ExperimentAnalysisSummaryViewer { IDisposableComponent tabComponent = createViewer(viewContext, experiment, restrictGlobalScopeLinkToProject, - analysisProcedureOrNull); + analysisProcedureCriteria); return DefaultTabItem.create(getTabTitle(), tabComponent, viewContext); } @@ -112,7 +114,7 @@ public class ExperimentAnalysisSummaryViewer { return ScreeningLinkExtractor.createExperimentAnalysisSummaryBrowserLink( experiment.getPermId(), restrictGlobalScopeLinkToProject, - analysisProcedureOrNull); + analysisProcedureCriteria.tryGetAnalysisProcedureCode()); } @Override @@ -133,12 +135,13 @@ public class ExperimentAnalysisSummaryViewer private static IDisposableComponent createViewer( IViewContext<IScreeningClientServiceAsync> viewContext, IEntityInformationHolderWithProperties experiment, - boolean restrictGlobalScopeLinkToProject, String analysisProcedureOrNull) + boolean restrictGlobalScopeLinkToProject, + AnalysisProcedureCriteria analysisProcedureCriteria) { String headingText = viewContext.getMessage(Dict.ASSAY_HEADER, experiment.getCode()); final IDisposableComponent gridComponent = ExperimentAnalysisSummaryGrid.create(viewContext, experiment, - restrictGlobalScopeLinkToProject); + restrictGlobalScopeLinkToProject, analysisProcedureCriteria); return MaterialComponentUtils.createExperimentViewer(viewContext, experiment, headingText, gridComponent); diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/locator/ExperimentAnalysisSummaryResolver.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/locator/ExperimentAnalysisSummaryResolver.java index 5d471dc39fd0f14ad1f70d197474fd486c449132..985324f99c7d770ad6306f16d0891512826042a9 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/locator/ExperimentAnalysisSummaryResolver.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/locator/ExperimentAnalysisSummaryResolver.java @@ -1,5 +1,6 @@ package ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.locator; +import ch.systemsx.cisd.common.shared.basic.utils.StringUtils; import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; import ch.systemsx.cisd.openbis.generic.client.web.client.application.locator.AbstractViewLocatorResolver; import ch.systemsx.cisd.openbis.generic.client.web.client.application.locator.ViewLocator; @@ -7,6 +8,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.exception.UserFailureE import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.IScreeningClientServiceAsync; import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.detailviewers.ExperimentAnalysisSummaryViewer; 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; /** * Locator resolver for experiment analysis summary view. @@ -33,10 +35,22 @@ public class ExperimentAnalysisSummaryResolver extends AbstractViewLocatorResolv getOptionalBooleanParameter(locator, ScreeningLinkExtractor.RESTRICT_GLOBAL_SEARCH_TO_PROJECT, false); - String analysisProcedureOrNull = - getOptionalParameter(locator, ScreeningLinkExtractor.ANALYSIS_PROCEDURE_KEY); + AnalysisProcedureCriteria analysisProcedureCriteria = + extractAnalysisProcedureCriteria(locator); + ExperimentAnalysisSummaryViewer.openTab(viewContext, experimentPermId, - restrictGlobalScopeLinkToProject, analysisProcedureOrNull); + restrictGlobalScopeLinkToProject, analysisProcedureCriteria); + + } + private AnalysisProcedureCriteria extractAnalysisProcedureCriteria(ViewLocator locator) + { + String analysisProcedureCode = + getOptionalParameter(locator, ScreeningLinkExtractor.ANALYSIS_PROCEDURE_KEY); + + return StringUtils.isBlank(analysisProcedureCode) ? AnalysisProcedureCriteria + .createAllProcedures() : AnalysisProcedureCriteria + .createFromCode(analysisProcedureCode); } + } \ No newline at end of file