Skip to content
Snippets Groups Projects
Commit 08beb301 authored by buczekp's avatar buczekp
Browse files

[LMS-2354] minor UI improvements:

- changed heading/label when showing material in all experiments from a single project
- hide heading in simple/normal mode

SVN: 22004
parent c0468b9e
No related branches found
No related tags found
No related merge requests found
Showing
with 65 additions and 10 deletions
...@@ -113,6 +113,9 @@ public final class Dict extends ch.systemsx.cisd.openbis.generic.client.web.clie ...@@ -113,6 +113,9 @@ public final class Dict extends ch.systemsx.cisd.openbis.generic.client.web.clie
public static final String MATERIAL_IN_ALL_ASSAYS = "MATERIAL_IN_ALL_ASSAYS"; public static final String MATERIAL_IN_ALL_ASSAYS = "MATERIAL_IN_ALL_ASSAYS";
public static final String MATERIAL_IN_ALL_ASSAYS_OF_PROJECT =
"MATERIAL_IN_ALL_ASSAYS_OF_PROJECT";
private Dict() private Dict()
{ {
// Can not be instantiated. // Can not be instantiated.
......
...@@ -18,6 +18,7 @@ package ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application. ...@@ -18,6 +18,7 @@ package ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.
import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; 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.client.web.client.application.ui.grid.IDisposableComponent;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.BasicProjectIdentifier;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Material; 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.IScreeningClientServiceAsync;
import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.Dict; import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.Dict;
...@@ -55,11 +56,32 @@ public class MaterialFeaturesFromAllExperimentsComponent ...@@ -55,11 +56,32 @@ public class MaterialFeaturesFromAllExperimentsComponent
final IDisposableComponent gridComponent = final IDisposableComponent gridComponent =
MaterialFeaturesFromAllExperimentsGrid.create(screeningViewContext, material, MaterialFeaturesFromAllExperimentsGrid.create(screeningViewContext, material,
experimentSearchCriteria); experimentSearchCriteria);
String headingText = String headingTextOtNull = tryCreateHeadingText(material, experimentSearchCriteria);
screeningViewContext.getMessage(Dict.MATERIAL_IN_ALL_ASSAYS,
MaterialComponentUtils.getMaterialFullName(material, true));
return MaterialComponentUtils.createMaterialViewer(screeningViewContext, material, return MaterialComponentUtils.createMaterialViewer(screeningViewContext, material,
headingText, gridComponent); headingTextOtNull, gridComponent);
} }
private String tryCreateHeadingText(Material material,
ExperimentSearchByProjectCriteria experimentSearchCriteria)
{
if (screeningViewContext.getModel().isEmbeddedMode())
{
BasicProjectIdentifier projectIdentifierOrNull =
experimentSearchCriteria.tryGetProjectIdentifier();
if (projectIdentifierOrNull != null)
{
return screeningViewContext.getMessage(Dict.MATERIAL_IN_ALL_ASSAYS_OF_PROJECT,
MaterialComponentUtils.getMaterialFullName(material, true),
projectIdentifierOrNull);
} else
{
return screeningViewContext.getMessage(Dict.MATERIAL_IN_ALL_ASSAYS,
MaterialComponentUtils.getMaterialFullName(material, true));
}
} else
{
// header is not needed in SIMPLE & NORMAL view mode because there the context is clear
return null;
}
}
} }
...@@ -38,6 +38,7 @@ import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.D ...@@ -38,6 +38,7 @@ import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.D
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.application.ui.columns.specific.ScreeningLinkExtractor;
import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ExperimentReference; import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ExperimentReference;
import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.MaterialSimpleFeatureVectorSummary; import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.MaterialSimpleFeatureVectorSummary;
import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellSearchCriteria;
import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellSearchCriteria.ExperimentSearchByProjectCriteria; 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.ExperimentSearchCriteria;
import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.grids.MaterialFeatureVectorsFromAllExperimentsGridColumnIDs; import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.grids.MaterialFeatureVectorsFromAllExperimentsGridColumnIDs;
...@@ -152,8 +153,7 @@ public class MaterialFeaturesFromAllExperimentsGrid extends ...@@ -152,8 +153,7 @@ public class MaterialFeaturesFromAllExperimentsGrid extends
private boolean getRestrictGlobalScopeLinkToProject() private boolean getRestrictGlobalScopeLinkToProject()
{ {
return experimentSearchCriteria != null return WellSearchCriteria.shouldRestrictScopeToProject(experimentSearchCriteria);
&& experimentSearchCriteria.tryGetProjectIdentifier() != null;
} }
private ExperimentSearchCriteria getExperimentCriteria( private ExperimentSearchCriteria getExperimentCriteria(
......
...@@ -46,6 +46,8 @@ class SingleOrAllExperimentsChooser extends LayoutContainer ...@@ -46,6 +46,8 @@ class SingleOrAllExperimentsChooser extends LayoutContainer
private static final String ALL_EXPERIMENTS_TEXT = "All experiments"; private static final String ALL_EXPERIMENTS_TEXT = "All experiments";
private static final String ALL_EXPERIMENTS_FROM_PROJECT_TEXT = "All experiments from ";
private static final String CHOOSE_ONE_EXPERIMENT_TEXT = "Choose one experiment..."; private static final String CHOOSE_ONE_EXPERIMENT_TEXT = "Choose one experiment...";
private SingleExperimentSearchCriteria singleExperimentChooserStateOrNull; private SingleExperimentSearchCriteria singleExperimentChooserStateOrNull;
...@@ -140,6 +142,15 @@ class SingleOrAllExperimentsChooser extends LayoutContainer ...@@ -140,6 +142,15 @@ class SingleOrAllExperimentsChooser extends LayoutContainer
experimentRadio.setOrientation(Orientation.HORIZONTAL); experimentRadio.setOrientation(Orientation.HORIZONTAL);
final Radio allExps = new Radio(); final Radio allExps = new Radio();
if (restrictGlobalScopeLinkToProject)
{
String projectIdentifier =
experimentCriteriaHolder.tryGetCriteria().tryGetProjectIdentifier().toString();
allExps.setBoxLabel(ALL_EXPERIMENTS_FROM_PROJECT_TEXT + projectIdentifier);
} else
{
allExps.setBoxLabel(ALL_EXPERIMENTS_TEXT);
}
allExps.setBoxLabel(ALL_EXPERIMENTS_TEXT); allExps.setBoxLabel(ALL_EXPERIMENTS_TEXT);
experimentRadio.add(allExps); experimentRadio.add(allExps);
......
...@@ -114,10 +114,13 @@ public class MaterialComponentUtils ...@@ -114,10 +114,13 @@ public class MaterialComponentUtils
return additionalProperties; return additionalProperties;
} }
/** Creates a grid with some header on top containing the specified title and entity properties. */ /**
* Creates a grid with optional header on top containing the specified title and entity
* properties.
*/
private static IDisposableComponent createViewer( private static IDisposableComponent createViewer(
IViewContext<IScreeningClientServiceAsync> viewContext, IViewContext<IScreeningClientServiceAsync> viewContext,
IEntityInformationHolderWithProperties entity, String headingText, IEntityInformationHolderWithProperties entity, String headingTextOrNull,
final IDisposableComponent gridComponent, final IDisposableComponent gridComponent,
Map<String/* label */, String/* value */> additionalPropertiesOrNull, Map<String/* label */, String/* value */> additionalPropertiesOrNull,
String... excludedPropertyCodes) String... excludedPropertyCodes)
...@@ -125,8 +128,11 @@ public class MaterialComponentUtils ...@@ -125,8 +128,11 @@ public class MaterialComponentUtils
final LayoutContainer panel = new LayoutContainer(); final LayoutContainer panel = new LayoutContainer();
panel.setLayout(new BorderLayout()); panel.setLayout(new BorderLayout());
addHeader(panel, viewContext, headingText, entity, additionalPropertiesOrNull, if (headingTextOrNull != null)
excludedPropertyCodes); {
addHeader(panel, viewContext, headingTextOrNull, entity, additionalPropertiesOrNull,
excludedPropertyCodes);
}
panel.add(gridComponent.getComponent(), new BorderLayoutData(LayoutRegion.CENTER)); panel.add(gridComponent.getComponent(), new BorderLayoutData(LayoutRegion.CENTER));
......
...@@ -113,6 +113,7 @@ FIND_IN_ALL_ASSAYS: "Find {0} in all experiments", ...@@ -113,6 +113,7 @@ FIND_IN_ALL_ASSAYS: "Find {0} in all experiments",
MATERIAL_IN_ASSAY: "{0} in experiment {1}", MATERIAL_IN_ASSAY: "{0} in experiment {1}",
SHOW_ASSAY: "Show experiment {0}", SHOW_ASSAY: "Show experiment {0}",
MATERIAL_IN_ALL_ASSAYS: "{0} in all experiments", MATERIAL_IN_ALL_ASSAYS: "{0} in all experiments",
MATERIAL_IN_ALL_ASSAYS_OF_PROJECT: "{0} in all experiments of project {1}",
// LAST LINE: KEEP IT AT THE END // LAST LINE: KEEP IT AT THE END
lastline: "" // we need a line without a comma lastline: "" // we need a line without a comma
......
...@@ -468,4 +468,16 @@ public class WellSearchCriteria implements ISerializable ...@@ -468,4 +468,16 @@ public class WellSearchCriteria implements ISerializable
{ {
return materialCriteria; return materialCriteria;
} }
public static boolean shouldRestrictScopeToProject(
ExperimentSearchCriteria searchCriteria)
{
return searchCriteria != null && searchCriteria.tryGetProjectIdentifier() != null;
}
public static boolean shouldRestrictScopeToProject(
ExperimentSearchByProjectCriteria searchCriteria)
{
return searchCriteria != null && searchCriteria.tryGetProjectIdentifier() != null;
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment