Skip to content
Snippets Groups Projects
Commit bead2a85 authored by jakubs's avatar jakubs
Browse files

SP-972 BIS-566 SOB-127 Improve behavior of resolution dropdown

SVN: 30021
parent c7ec70e0
No related branches found
No related tags found
No related merge requests found
Showing
with 35 additions and 30 deletions
......@@ -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();
}
});
......
......@@ -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
......
......@@ -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);
......
......@@ -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;
}
}
......@@ -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()
......
......@@ -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()
......
......@@ -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()
......
......@@ -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()
......
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