diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ChannelChooser.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ChannelChooser.java index 687ca0fa1c8f82bea60215739fc13ff683952a69..e3b337ba31d2158943557d3b0815116c35df6eef 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ChannelChooser.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ChannelChooser.java @@ -333,7 +333,7 @@ class ChannelChooser } objectsChooserContainer.layout(); - setSelectedOverlayChannels(new HashSet<ImageDatasetChannel>()); + updateSelectedOverlayChannels(Collections.<CheckBoxGroupWithModel<ImageDatasetChannel>> emptyList()); } private List<List<DatasetOverlayImagesReference>> splitIntoGroupsOfIdenticalAnalysisProcedure(List<DatasetOverlayImagesReference> overlayDatasets) @@ -398,9 +398,10 @@ class ChannelChooser container = new SectionFieldSet(analysisProcedure); } + List<CheckBoxGroupWithModel<ImageDatasetChannel>> checkboxes = new ArrayList<CheckBoxGroupWithModel<ImageDatasetChannel>>(); for (DatasetOverlayImagesReference dataSet : group) { - container.add(createOverlayChannelsChooserForOneDataSet(dataSet, overlayDatasets.size() != 1)); + container.add(createOverlayChannelsChooserForOneDataSet(dataSet, overlayDatasets.size() != 1, checkboxes)); } if (container != objectsChooserContainer) @@ -449,7 +450,7 @@ class ChannelChooser } private Widget createOverlayChannelsChooserForOneDataSet( - DatasetOverlayImagesReference overlayDataset, boolean withLabel) + DatasetOverlayImagesReference overlayDataset, boolean withLabel, final List<CheckBoxGroupWithModel<ImageDatasetChannel>> checkboxes) { List<LabeledItem<ImageDatasetChannel>> overlayChannelItems = createOverlayChannelItems(overlayDataset); @@ -460,9 +461,10 @@ class ChannelChooser @Override public void onChange(Set<ImageDatasetChannel> selected) { - setSelectedOverlayChannels(selected); + updateSelectedOverlayChannels(checkboxes); } }); + checkboxes.add(checkBoxGroup); String label = OVERLAYS_MSG; @@ -477,9 +479,14 @@ class ChannelChooser } - private void setSelectedOverlayChannels(Set<ImageDatasetChannel> selected) + private void updateSelectedOverlayChannels(List<CheckBoxGroupWithModel<ImageDatasetChannel>> checkboxes) { - selectedOverlayChannels = selected; + selectedOverlayChannels = new HashSet<ImageDatasetChannel>(); + + for (CheckBoxGroupWithModel<ImageDatasetChannel> checkbox : checkboxes) + { + selectedOverlayChannels.addAll(checkbox.getSelected()); + } refresh(); } diff --git a/screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/utils/EntityTypeLabelUtilsTest.java b/screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/utils/EntityTypeLabelUtilsTest.java index 6048abdf808ae42e1a9a4ec289c84ff3ff0e5020..b34a819dc471b20b478206f098e187c01a38aadd 100644 --- a/screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/utils/EntityTypeLabelUtilsTest.java +++ b/screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/utils/EntityTypeLabelUtilsTest.java @@ -42,6 +42,9 @@ public class EntityTypeLabelUtilsTest extends AssertJUnit assertEquals("Features, additional text, 2011-05-30, 123412342314-1234", createLabelWithText("HCS_ANALYSIS_WELL_FEATURES", "additional text")); + assertEquals("Analysis Procedure 1, Measurement 3, 2011-05-30, 123412342314-1234", + createOverlayLabel("HCS_IMAGE_SEGMENTATION", "Analysis Procedure 1", "Measurement 3")); + } private String createLabelWithText(String typeCode, String labelTest) @@ -59,4 +62,12 @@ public class EntityTypeLabelUtilsTest extends AssertJUnit null, null, null, null); return EntityTypeLabelUtils.createDatasetLabel(ref, withFileType, "2011-05-30", null, true, false); } + + private String createOverlayLabel(String typeCode, String analysisProcedure, String labelTest) + { + DatasetReference ref = + new DatasetReference(0, "123412342314-1234", typeCode, null, "DAT", null, null, + null, null, analysisProcedure, labelTest); + return EntityTypeLabelUtils.createDatasetLabel(ref, false, "2011-05-30", null, true, true); + } } \ No newline at end of file