From bead2a851c45617cef51eb120a15b3531a25566e Mon Sep 17 00:00:00 2001 From: jakubs <jakubs> Date: Fri, 25 Oct 2013 12:28:04 +0000 Subject: [PATCH] SP-972 BIS-566 SOB-127 Improve behavior of resolution dropdown SVN: 30021 --- .../detailviewers/ChannelChooser.java | 11 ++++-- .../detailviewers/DefaultChannelState.java | 8 ++--- .../detailviewers/IDefaultChannelState.java | 4 +-- .../LogicalImageDatasetSection.java | 2 +- .../detailviewers/LogicalImageLayouter.java | 2 +- .../detailviewers/LogicalImageViewer.java | 34 +++++++++---------- .../detailviewers/TileContentDialog.java | 2 +- .../detailviewers/WellContentDialog.java | 2 +- 8 files changed, 35 insertions(+), 30 deletions(-) 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 9b42e61d8b8..9bcb6e1e6b6 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 @@ -99,8 +99,12 @@ class ChannelChooser private Map<String, IntensityRange> rangesOrNull; + // window id is the string identifying the kind of a view (either a tile view or well view) + // It is used as a key to store selected image resolutions different for tile and well view + private final String windowId; + public ChannelChooser(LogicalImageReference basicImage, IChanneledViewerFactory viewerFactory, - IDefaultChannelState defaultChannelState) + IDefaultChannelState defaultChannelState, String windowId) { this.basicImage = basicImage; this.viewerFactory = viewerFactory; @@ -114,6 +118,7 @@ class ChannelChooser this.rangesOrNull = tryGetInitialIntensityRange(defaultChannelState, basicChannelCodes); this.defaultChannelState = defaultChannelState; this.selectedOverlayChannels = new HashSet<ImageDatasetChannel>(); + this.windowId = windowId; } /** Refreshes the displayed images, but not the rest of the GUI */ @@ -359,13 +364,13 @@ class ChannelChooser { resolutionChooser = new ResolutionChooser(viewContext, resolutions, - defaultChannelState.tryGetDefaultResolution()); + defaultChannelState.tryGetDefaultResolution(windowId)); resolutionChooser.addResolutionChangedListener(new Listener<BaseEvent>() { @Override public void handleEvent(BaseEvent be) { - defaultChannelState.setDefaultResolution(resolutionChooser.getResolution()); + defaultChannelState.setDefaultResolution(resolutionChooser.getResolution(), windowId); refresh(); } }); diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/DefaultChannelState.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/DefaultChannelState.java index 921561aebd4..d9c8de3baa4 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/DefaultChannelState.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/DefaultChannelState.java @@ -75,15 +75,15 @@ public class DefaultChannelState implements IDefaultChannelState } @Override - public ImageResolution tryGetDefaultResolution() + public ImageResolution tryGetDefaultResolution(String windowId) { - return getDisplaySettingManager().getDefaultResolution(displayTypeId); + return getDisplaySettingManager().getDefaultResolution(displayTypeId + windowId); } @Override - public void setDefaultResolution(ImageResolution resolution) + public void setDefaultResolution(ImageResolution resolution, String windowId) { - getDisplaySettingManager().setDefaultResolution(displayTypeId, resolution); + getDisplaySettingManager().setDefaultResolution(displayTypeId + windowId, resolution); } @Override diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/IDefaultChannelState.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/IDefaultChannelState.java index d91f1ed3401..37f8c070165 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/IDefaultChannelState.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/IDefaultChannelState.java @@ -20,9 +20,9 @@ public interface IDefaultChannelState public String tryGetDefaultTransformation(String channel); - public ImageResolution tryGetDefaultResolution(); + public ImageResolution tryGetDefaultResolution(String windowId); - public void setDefaultResolution(ImageResolution resolution); + public void setDefaultResolution(ImageResolution resolution, String windowId); public void setIntensityRange(String channel, IntensityRange intensityRange); diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/LogicalImageDatasetSection.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/LogicalImageDatasetSection.java index 4ba7f8af9a4..cd38ab8589b 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/LogicalImageDatasetSection.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/LogicalImageDatasetSection.java @@ -96,7 +96,7 @@ public class LogicalImageDatasetSection extends TabContent new LogicalImageViewer(logicalImageReference, LogicalImageDatasetSection.this.getViewContext(), identifier, experimentPermId, true); - Widget viewerWidget = viewer.getViewerWidget(imageInfo.getChannelStacks()); + Widget viewerWidget = viewer.getViewerWidget(imageInfo.getChannelStacks(), "LogicalImageDatasetSection"); return viewerWidget; } } diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/LogicalImageLayouter.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/LogicalImageLayouter.java index d42575d9aa6..b460cd8b6dc 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/LogicalImageLayouter.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/LogicalImageLayouter.java @@ -53,7 +53,7 @@ class LogicalImageLayouter extends LayoutContainer implements IDatasetImagesRefe LogicalImageViewer viewer = new LogicalImageViewer(logicalImageReference, viewContext, imageInfo.getExperimentIdentifier(), imageInfo.getExperimentPermId(), true); - return viewer.getViewerWidget(); + return viewer.getViewerWidget("LogicalImageLayouter"); } public List<ImageDatasetEnrichedReference> getDatasetImagesReferences() diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/LogicalImageViewer.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/LogicalImageViewer.java index 8accfac0354..de6e2b43c69 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/LogicalImageViewer.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/LogicalImageViewer.java @@ -108,34 +108,33 @@ public class LogicalImageViewer } /** Creates a widget which displays a series of images. */ - public Widget getViewerWidget(List<ImageChannelStack> channelStackImages) + public Widget getViewerWidget(List<ImageChannelStack> channelStackImages, String windowId) { if (logicalImageReference.isMultidimensional()) { - return createSeriesImageWidget(channelStackImages); + return createSeriesImageWidget(channelStackImages, windowId + "series"); } else { - return getStaticImageWidget(); + return getStaticImageWidget(windowId + "static"); } } /** - * Creates a widget which displays a series of images. If there are image series fetches - * information about them from the server. + * Creates a widget which displays a series of images. If there are image series fetches information about them from the server. */ - public Widget getViewerWidget() + public Widget getViewerWidget(String windowId) { if (logicalImageReference.isMultidimensional()) { - return getSeriesImageWidget(); + return getSeriesImageWidget(windowId + "series"); } else { - return getStaticImageWidget(); + return getStaticImageWidget(windowId + "static"); } } /** Creates a widget which displays a series of images. */ - private Widget getSeriesImageWidget() + private Widget getSeriesImageWidget(final String windowId) { final LayoutContainer container = new LayoutContainer(); container.add(new Text(viewContext.getMessage(ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict.LOAD_IN_PROGRESS))); @@ -156,7 +155,7 @@ public class LogicalImageViewer imageInfo.getChannelStacks(); if (channelStackImages.size() > 0) { - container.add(createSeriesImageWidget(channelStackImages)); + container.add(createSeriesImageWidget(channelStackImages, windowId)); } else { container.add(new Text(NO_IMAGES_AVAILABLE_MSG)); @@ -167,7 +166,7 @@ public class LogicalImageViewer return container; } - private Widget createSeriesImageWidget(final List<ImageChannelStack> channelStackImages) + private Widget createSeriesImageWidget(final List<ImageChannelStack> channelStackImages, String windowId) { final Button adjustColorsButton = createAdjustColorsButton(); final IChanneledViewerFactory viewerFactory = new IChanneledViewerFactory() @@ -205,7 +204,7 @@ public class LogicalImageViewer return new LogicalImageSeriesGrid(initializer); } }; - return createViewerWithChannelChooser(viewerFactory, adjustColorsButton); + return createViewerWithChannelChooser(viewerFactory, adjustColorsButton, windowId); } private List<ImageChannelStack> filterChannelStackImages( @@ -233,7 +232,7 @@ public class LogicalImageViewer } private LayoutContainer createViewerWithChannelChooser( - final IChanneledViewerFactory viewerFactory, final Button adjustColorsButton) + final IChanneledViewerFactory viewerFactory, final Button adjustColorsButton, final String windowId) { final LayoutContainer container = createMainEmptyContainer(); @@ -244,7 +243,7 @@ public class LogicalImageViewer } final ChannelChooser channelChooser = - new ChannelChooser(logicalImageReference, viewerFactory, channelState); + new ChannelChooser(logicalImageReference, viewerFactory, channelState, windowId); channelChooser.addViewerTo(container, viewContext, new AsyncCallback<Void>() { @Override @@ -256,7 +255,8 @@ public class LogicalImageViewer buttonToolbar.setLayout(new ColumnLayout()); buttonToolbar.add(adjustColorsButton); Button refreshButton = - new Button(viewContext.getMessage(ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict.BUTTON_REFRESH), + new Button( + viewContext.getMessage(ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict.BUTTON_REFRESH), new SelectionListener<ButtonEvent>() { @Override @@ -333,7 +333,7 @@ public class LogicalImageViewer } /** Creates a widget which displays images which has no series. */ - private Widget getStaticImageWidget() + private Widget getStaticImageWidget(String windowId) { final Button adjustColorsButton = createAdjustColorsButton(); @@ -366,7 +366,7 @@ public class LogicalImageViewer } }; - return createViewerWithChannelChooser(viewerFactory, adjustColorsButton); + return createViewerWithChannelChooser(viewerFactory, adjustColorsButton, windowId); } private String createDisplayTypeId() diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/TileContentDialog.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/TileContentDialog.java index f7aa8cf9837..65d290f4d13 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/TileContentDialog.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/TileContentDialog.java @@ -51,7 +51,7 @@ public class TileContentDialog extends ImageDialog experimentPermId, false); final Grid grid = new Grid(1, 1); - grid.setWidget(0, 0, imageViewer.getViewerWidget()); + grid.setWidget(0, 0, imageViewer.getViewerWidget("TileContentDialog")); add(grid); imageViewer.setLogicalImageRefreshHandler(new LogicalImageRefreshHandler() 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 875a0a465d3..d0bef3c994c 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 @@ -114,7 +114,7 @@ public class WellContentDialog extends ImageDialog LogicalImageViewer viewer = contentDialog.createImageViewer(); final Grid grid = new Grid(1, 1); - grid.setWidget(0, 0, viewer.getViewerWidget()); + grid.setWidget(0, 0, viewer.getViewerWidget("WellContentDialog")); contentDialog.add(grid); viewer.setLogicalImageRefreshHandler(new LogicalImageRefreshHandler() -- GitLab