Skip to content
Snippets Groups Projects
Commit a86ae744 authored by kaloyane's avatar kaloyane
Browse files

[LMS-2019] - do not show checkboxes in global well search (there can be too many of them)

- allow launching of  ImageViewer only when a single color channel is selected.

SVN: 19965
parent a94ab305
No related branches found
No related tags found
No related merge requests found
...@@ -179,7 +179,7 @@ class ChannelChooser ...@@ -179,7 +179,7 @@ class ChannelChooser
private Widget createBasicChannelChooser(List<String> channels) private Widget createBasicChannelChooser(List<String> channels)
{ {
final ChannelChooserPanel channelChooser = final ChannelChooserPanel channelChooser =
new ChannelChooserPanel(defaultChannelState, channels, basicChannelCodes); new ChannelChooserPanel(defaultChannelState, channels, basicChannelCodes, true);
channelChooser channelChooser
.setSelectionChangedListener(new ChannelChooserPanel.ChannelSelectionListener() .setSelectionChangedListener(new ChannelChooserPanel.ChannelSelectionListener()
......
...@@ -56,6 +56,9 @@ public class ChannelChooserPanel extends LayoutContainer ...@@ -56,6 +56,9 @@ public class ChannelChooserPanel extends LayoutContainer
private ChannelSelectionListener channelSelectionListener; private ChannelSelectionListener channelSelectionListener;
/** when set to to true will generate a checkbox per channel */
private boolean createCheckBoxes;
private final Listener<BaseEvent> selectionChangeListener = new Listener<BaseEvent>() private final Listener<BaseEvent> selectionChangeListener = new Listener<BaseEvent>()
{ {
...@@ -68,13 +71,15 @@ public class ChannelChooserPanel extends LayoutContainer ...@@ -68,13 +71,15 @@ public class ChannelChooserPanel extends LayoutContainer
public ChannelChooserPanel(IDefaultChannelState defChannelState) public ChannelChooserPanel(IDefaultChannelState defChannelState)
{ {
this(defChannelState, Collections.<String> emptyList(), Collections.<String> emptyList()); this(defChannelState, Collections.<String> emptyList(), Collections.<String> emptyList(),
false);
} }
public ChannelChooserPanel(IDefaultChannelState defChannelState, List<String> names, public ChannelChooserPanel(IDefaultChannelState defChannelState, List<String> names,
List<String> selectedChannelsOrNull) List<String> selectedChannelsOrNull, boolean createCheckBoxes)
{ {
this.defaultChannelState = defChannelState; this.defaultChannelState = defChannelState;
this.createCheckBoxes = createCheckBoxes;
setAutoHeight(true); setAutoHeight(true);
setAutoWidth(true); setAutoWidth(true);
...@@ -176,7 +181,8 @@ public class ChannelChooserPanel extends LayoutContainer ...@@ -176,7 +181,8 @@ public class ChannelChooserPanel extends LayoutContainer
for (String code : codes) for (String code : codes)
{ {
if (addCodeToComboBox(code)) boolean codeAdded = addCodeToComboBox(code);
if (codeAdded && createCheckBoxes)
{ {
// also add a checkBockbox for the channel // also add a checkBockbox for the channel
CheckBox checkBox = new CheckBox(); CheckBox checkBox = new CheckBox();
...@@ -239,6 +245,7 @@ public class ChannelChooserPanel extends LayoutContainer ...@@ -239,6 +245,7 @@ public class ChannelChooserPanel extends LayoutContainer
String selectedComboValue = channelsComboBox.getSimpleValue(); String selectedComboValue = channelsComboBox.getSimpleValue();
boolean showCheckBoxGroup = ScreeningConstants.MERGED_CHANNELS.equals(selectedComboValue); boolean showCheckBoxGroup = ScreeningConstants.MERGED_CHANNELS.equals(selectedComboValue);
ensureAtLeastOneCheckboxChecked(); ensureAtLeastOneCheckboxChecked();
channelsCheckBoxGroup.setVisible(showCheckBoxGroup); channelsCheckBoxGroup.setVisible(showCheckBoxGroup);
......
...@@ -141,7 +141,6 @@ public class ImageUrlUtils ...@@ -141,7 +141,6 @@ public class ImageUrlUtils
{ {
LogicalImageReference images = channelReferences.getBasicImage(); LogicalImageReference images = channelReferences.getBasicImage();
// TODO KE: Tomek, should we add a "transformerFactorySignature" for each selected channel ?
List<String> channels = channelReferences.getChannelCodes(); List<String> channels = channelReferences.getChannelCodes();
if (channels != null) if (channels != null)
{ {
......
...@@ -79,7 +79,7 @@ public class LogicalImageViewer ...@@ -79,7 +79,7 @@ public class LogicalImageViewer
private final boolean showColorAdjustmentButton; private final boolean showColorAdjustmentButton;
private List<String> currentlySelectedChannelCodes; private String currentlySelectedChannelCode;
public LogicalImageViewer(LogicalImageReference logicalImageReference, public LogicalImageViewer(LogicalImageReference logicalImageReference,
IViewContext<IScreeningClientServiceAsync> viewContext, String experimentIdentifier, IViewContext<IScreeningClientServiceAsync> viewContext, String experimentIdentifier,
...@@ -167,23 +167,26 @@ public class LogicalImageViewer ...@@ -167,23 +167,26 @@ public class LogicalImageViewer
private Widget createSeriesImageWidget(final List<ImageChannelStack> channelStackImages) private Widget createSeriesImageWidget(final List<ImageChannelStack> channelStackImages)
{ {
final Button adjustColorsButton = createAdjustColorsButton();
final IChanneledViewerFactory viewerFactory = new IChanneledViewerFactory() final IChanneledViewerFactory viewerFactory = new IChanneledViewerFactory()
{ {
public LayoutContainer create(LogicalImageChannelsReference channelReferences) public LayoutContainer create(LogicalImageChannelsReference channelReferences)
{ {
currentlySelectedChannelCodes = channelReferences.getChannelCodes(); currentlySelectedChannelCode = getSelectedChannelCode(channelReferences);
String sessionId = getSessionId(viewContext); String sessionId = getSessionId(viewContext);
setAdjustColorsButtonState(adjustColorsButton,
channelReferences.getChannelCodes());
int imageWidth = getImageWidth(logicalImageReference); int imageWidth = getImageWidth(logicalImageReference);
int imageHeight = getImageHeight(logicalImageReference); int imageHeight = getImageHeight(logicalImageReference);
return LogicalImageSeriesGrid.create(sessionId, channelStackImages, return LogicalImageSeriesGrid.create(sessionId, channelStackImages,
channelReferences, imageWidth, imageHeight); channelReferences, imageWidth, imageHeight);
} }
}; };
return createViewerWithChannelChooser(viewerFactory); return createViewerWithChannelChooser(viewerFactory, adjustColorsButton);
} }
private LayoutContainer createViewerWithChannelChooser( private LayoutContainer createViewerWithChannelChooser(
final IChanneledViewerFactory viewerFactory) final IChanneledViewerFactory viewerFactory, final Button adjustColorsButton)
{ {
LayoutContainer container = createMainEmptyContainer(); LayoutContainer container = createMainEmptyContainer();
if (hasNoChannels()) if (hasNoChannels())
...@@ -200,16 +203,6 @@ public class LogicalImageViewer ...@@ -200,16 +203,6 @@ public class LogicalImageViewer
{ {
LayoutContainer buttonToolbar = new LayoutContainer(); LayoutContainer buttonToolbar = new LayoutContainer();
buttonToolbar.setLayout(new ColumnLayout()); buttonToolbar.setLayout(new ColumnLayout());
Button adjustColorsButton =
new Button(viewContext.getMessage(Dict.IMAGE_VIEWER_BUTTON),
new SelectionListener<ButtonEvent>()
{
@Override
public void componentSelected(ButtonEvent ce)
{
launchImageEditor();
}
});
buttonToolbar.add(adjustColorsButton); buttonToolbar.add(adjustColorsButton);
Button refreshButton = Button refreshButton =
new Button(viewContext.getMessage(Dict.BUTTON_REFRESH), new Button(viewContext.getMessage(Dict.BUTTON_REFRESH),
...@@ -233,6 +226,21 @@ public class LogicalImageViewer ...@@ -233,6 +226,21 @@ public class LogicalImageViewer
return container; return container;
} }
private Button createAdjustColorsButton()
{
final Button adjustColorsButton =
new Button(viewContext.getMessage(Dict.IMAGE_VIEWER_BUTTON),
new SelectionListener<ButtonEvent>()
{
@Override
public void componentSelected(ButtonEvent ce)
{
launchImageEditor();
}
});
return adjustColorsButton;
}
private boolean hasNoChannels() private boolean hasNoChannels()
{ {
return logicalImageReference.getChannelsCodes().size() == 0; return logicalImageReference.getChannelsCodes().size() == 0;
...@@ -271,16 +279,20 @@ public class LogicalImageViewer ...@@ -271,16 +279,20 @@ public class LogicalImageViewer
private Widget getStaticImageWidget() private Widget getStaticImageWidget()
{ {
final Button adjustColorsButton = createAdjustColorsButton();
final IChanneledViewerFactory viewerFactory = new IChanneledViewerFactory() final IChanneledViewerFactory viewerFactory = new IChanneledViewerFactory()
{ {
public LayoutContainer create(LogicalImageChannelsReference channelReferences) public LayoutContainer create(LogicalImageChannelsReference channelReferences)
{ {
currentlySelectedChannelCodes = channelReferences.getChannelCodes(); currentlySelectedChannelCode = getSelectedChannelCode(channelReferences);
setAdjustColorsButtonState(adjustColorsButton,
channelReferences.getChannelCodes());
String sessionId = getSessionId(viewContext); String sessionId = getSessionId(viewContext);
return createTilesGrid(channelReferences, sessionId); return createTilesGrid(channelReferences, sessionId);
} }
}; };
return createViewerWithChannelChooser(viewerFactory); return createViewerWithChannelChooser(viewerFactory, adjustColorsButton);
} }
private static IDefaultChannelState createDefaultChannelState( private static IDefaultChannelState createDefaultChannelState(
...@@ -303,10 +315,9 @@ public class LogicalImageViewer ...@@ -303,10 +315,9 @@ public class LogicalImageViewer
urlParams.addParameter(ParameterNames.SERVER_URL, GWT.getHostPageBaseURL()); urlParams.addParameter(ParameterNames.SERVER_URL, GWT.getHostPageBaseURL());
urlParams.addParameter(ParameterNames.EXPERIMENT_ID, experimentIdentifier); urlParams.addParameter(ParameterNames.EXPERIMENT_ID, experimentIdentifier);
// TODO KE: How do we support the launching of ImageViewer with channel parameters ? if (currentlySelectedChannelCode != null)
if (currentlySelectedChannelCodes != null)
{ {
urlParams.addParameter(ParameterNames.CHANNEL, currentlySelectedChannelCodes); urlParams.addParameter(ParameterNames.CHANNEL, currentlySelectedChannelCode);
} }
WellLocation wellLocation = logicalImageReference.tryGetWellLocation(); WellLocation wellLocation = logicalImageReference.tryGetWellLocation();
if (wellLocation != null) if (wellLocation != null)
...@@ -354,6 +365,25 @@ public class LogicalImageViewer ...@@ -354,6 +365,25 @@ public class LogicalImageViewer
return container; return container;
} }
private static String getSelectedChannelCode(LogicalImageChannelsReference channelReferences)
{
String newChannelCode = null;
List<String> channelCodes = channelReferences.getChannelCodes();
if (channelCodes != null && false == channelCodes.isEmpty())
{
newChannelCode = channelCodes.get(0);
}
return newChannelCode;
}
private static void setAdjustColorsButtonState(Button adjustColorsButton,
List<String> channelCodes)
{
boolean enabled = channelCodes != null && channelCodes.size() == 1;
adjustColorsButton.setEnabled(enabled);
}
private static String getSessionId(IViewContext<?> viewContext) private static String getSessionId(IViewContext<?> viewContext)
{ {
return viewContext.getModel().getSessionContext().getSessionID(); return viewContext.getModel().getSessionContext().getSessionID();
......
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