From e308ff5cfa60854029e51ecd0630ea8011dd400a Mon Sep 17 00:00:00 2001 From: gpawel <gpawel> Date: Wed, 14 Sep 2011 11:01:13 +0000 Subject: [PATCH] LMS-2502 image transformations: proper initialization SVN: 22945 --- .../detailviewers/ChannelChooser.java | 37 +++++++++++++++++++ .../detailviewers/ChannelChooserPanel.java | 6 +-- 2 files changed, 40 insertions(+), 3 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 d6151b9dc4e..e3ef3199f84 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 fdeafed9432..72b0e015d65 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 -- GitLab