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 d6151b9dc4ead32c2d5809803027eb345bc1bbfa..e3ef3199f8434eae89a5155f08181407c131a069 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 @@ -42,6 +42,7 @@ import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.DatasetImagesR import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.DatasetOverlayImagesReference; import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ImageChannel; import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ImageDatasetParameters; +import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ImageTransformationInfo; import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellSearchCriteria.AnalysisProcedureCriteria; /** @@ -90,6 +91,9 @@ class ChannelChooser this.basicChannelCodes = getInitialChannelCodes(defaultChannelState, basicImage.getChannelsCodes()); + this.imageTransformationCodeOrNull = + tryGetInitialImageTransformationCode(defaultChannelState, basicChannelCodes, + basicImage.getImagetParameters()); this.defaultChannelState = defaultChannelState; this.selectedOverlayChannels = new HashSet<ImageDatasetChannel>(); } @@ -305,4 +309,37 @@ class ChannelChooser return defaultChannels; } + private static String tryGetInitialImageTransformationCode( + IDefaultChannelState defaultChannelState, List<String> channels, + ImageDatasetParameters imageParameters) + { + if (imageParameters != null && channels.size() == 1) + { + String channel = channels.get(0); + String initialTransformation = defaultChannelState.tryGetDefaultTransformation(channel); + if (ChannelChooserPanel.DEFAULT_TRANSFORMATION_CODE.equals(initialTransformation)) + { + return null; + } + + String defaultSelection = null; + List<ImageTransformationInfo> transformations = + imageParameters.getAvailableImageTransformationsFor(channel); + for (ImageTransformationInfo transformation : transformations) + { + if (transformation.getCode().equals(initialTransformation)) + { + return initialTransformation; + } + if (transformation.isDefault() && defaultSelection == null) + { + defaultSelection = transformation.getCode(); + } + } + + return defaultSelection; + } + + return null; + } } diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ChannelChooserPanel.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ChannelChooserPanel.java index fdeafed9432538ca9c2d1aae901e263701a0f67f..72b0e015d65c02255ede4e50b33c456bc63c9641 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ChannelChooserPanel.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ChannelChooserPanel.java @@ -70,10 +70,10 @@ public class ChannelChooserPanel extends LayoutContainer void selectionChanged(List<String> channels, String imageTransformationCodeOrNull); } - private static final String DEFAULT_CODE = "$DEFAULT$"; + public static final String DEFAULT_TRANSFORMATION_CODE = "$DEFAULT$"; private static final LabeledItem<ImageTransformationInfo> DEFAULT_TRANSFORMATION = - convertToLabeledItem(new ImageTransformationInfo(DEFAULT_CODE, "Default", + convertToLabeledItem(new ImageTransformationInfo(DEFAULT_TRANSFORMATION_CODE, "Default", "Default transformation or original picture if not tranformed.", "", false)); private final IMessageProvider messageProvider; @@ -344,7 +344,7 @@ public class ChannelChooserPanel extends LayoutContainer String code = transformationsComboBox.getSelection().get(0).getValue().getItem().getCode(); - if (DEFAULT_CODE.equals(code)) + if (DEFAULT_TRANSFORMATION_CODE.equals(code)) { return null; } else