From b4b1dd2ecf08d01a24ff1bcae74f1bf85bcf82c5 Mon Sep 17 00:00:00 2001 From: anttil <anttil> Date: Mon, 25 Mar 2013 18:20:50 +0000 Subject: [PATCH] BIS-359 / SP-564 : All feature list in dropbox. Correct ordering shown in GUI, API in progress. SVN: 28686 --- .../etl/dto/api/impl/FeatureDefinition.java | 5 ++ .../impl/FeatureVectorContainerDataSet.java | 16 ++++++ ...ImagingDataSetRegistrationTransaction.java | 13 +++++ .../detailviewers/heatmaps/PlateLayouter.java | 53 +++++++++++++------ 4 files changed, 71 insertions(+), 16 deletions(-) diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dto/api/impl/FeatureDefinition.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dto/api/impl/FeatureDefinition.java index 3d8cc97d394..2af3732a7dc 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dto/api/impl/FeatureDefinition.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dto/api/impl/FeatureDefinition.java @@ -87,6 +87,11 @@ public class FeatureDefinition implements IFeatureDefinition, Serializable this.imgFeatureDefDTO.setLabel(label); } + public String getFeatureLabel() + { + return imgFeatureDefDTO.getLabel(); + } + /** Optional. Sets description of a feature. */ @Override public void setFeatureDescription(String description) diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dto/api/v2/impl/FeatureVectorContainerDataSet.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dto/api/v2/impl/FeatureVectorContainerDataSet.java index 57fefcd6d3d..30f70da8960 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dto/api/v2/impl/FeatureVectorContainerDataSet.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dto/api/v2/impl/FeatureVectorContainerDataSet.java @@ -53,6 +53,8 @@ public class FeatureVectorContainerDataSet extends DataSet<DataSetInformation> i private FeatureVectorDataSet originalDataset; + private IDataSet allFeaturesList; + public IDataSet getOriginalDataset() { return originalDataset; @@ -80,6 +82,11 @@ public class FeatureVectorContainerDataSet extends DataSet<DataSetInformation> i // calling this line assures, that the sample in the contained dataset will not be kept. originalDataset.getRegistrationDetails().getDataSetInformation().setLinkSample(false); } + + if (allFeaturesList != null) + { + allFeaturesList.setSample(sampleOrNull); + } } @Override @@ -90,6 +97,10 @@ public class FeatureVectorContainerDataSet extends DataSet<DataSetInformation> i { originalDataset.setExperiment(experimentOrNull); } + if (allFeaturesList != null) + { + allFeaturesList.setExperiment(experimentOrNull); + } } @Override @@ -146,4 +157,9 @@ public class FeatureVectorContainerDataSet extends DataSet<DataSetInformation> i super.setDataSetType(getContainerAnalysisType(dataSetTypeCode)); } + + public void setAllFeaturesList(IDataSet allFeaturesList) + { + this.allFeaturesList = allFeaturesList; + } } diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/v2/ImagingDataSetRegistrationTransaction.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/v2/ImagingDataSetRegistrationTransaction.java index bfc547c8304..79301d76ccf 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/v2/ImagingDataSetRegistrationTransaction.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/v2/ImagingDataSetRegistrationTransaction.java @@ -235,6 +235,19 @@ public class ImagingDataSetRegistrationTransaction extends DataSetRegistrationTr registrationDetails.getDataSetInformation().setContainerDatasetPermId( containerDataset.getDataSetCode()); + FeatureListDataConfig config = new FeatureListDataConfig(); + config.setName("All"); + List<String> features = new ArrayList<String>(); + for (FeatureDefinition feature : registrationDetails.getDataSetInformation().getFeatures()) + { + features.add(feature.getFeatureLabel()); + } + config.setFeatureList(features); + config.setContainerDataSet(containerDataset); + + IDataSet allFeaturesList = createNewFeatureListDataSet(config); + containerDataset.setAllFeaturesList(allFeaturesList); + return containerDataset; } diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/heatmaps/PlateLayouter.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/heatmaps/PlateLayouter.java index 00543978217..c73c1f8efe3 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/heatmaps/PlateLayouter.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/heatmaps/PlateLayouter.java @@ -20,10 +20,8 @@ import static ch.systemsx.cisd.openbis.plugin.screening.client.web.client.applic import java.util.ArrayList; import java.util.HashMap; -import java.util.HashSet; import java.util.List; import java.util.Map; -import java.util.Set; import com.extjs.gxt.ui.client.Style.Scroll; import com.extjs.gxt.ui.client.event.BaseEvent; @@ -150,17 +148,8 @@ public class PlateLayouter model.getAllFeatureNames()); } else { - Set<String> features = - new HashSet<String>(featureList.getFeatures()); - List<CodeAndLabel> result = new ArrayList<CodeAndLabel>(); - for (CodeAndLabel feature : model.getAllFeatureNames()) - { - if (features.contains(feature.getCode())) - { - result.add(feature); - } - } - updateHeatmapKindComboBox(heatmapKindChooser, result); + updateHeatmapKindComboBox(heatmapKindChooser, + labelsOfFeatureList(featureList)); } } }); @@ -169,6 +158,7 @@ public class PlateLayouter this.view = renderView(renderedWells, heatmapKindChooser, featureListsSelector, legendContainer); + } private IRealNumberRenderer createRealNumberRenderer(ScreeningViewContext viewContext) @@ -324,7 +314,27 @@ public class PlateLayouter { this.model.setFeatureVectorDataset(dataset); updateFeaturesListsComboBox(featureListsSelector, model.getFeatureLists()); - updateHeatmapKindComboBox(heatmapKindChooser, model.getAllFeatureNames()); + + updateHeatmapKindComboBox(heatmapKindChooser, labelsOfFeatureList(featureListsSelector + .getValue().getValue().getItem())); + } + + private List<CodeAndLabel> labelsOfFeatureList(FeatureList featureList) + { + Map<String, CodeAndLabel> map = new HashMap<String, CodeAndLabel>(); + for (CodeAndLabel codeAndLabel : model.getAllFeatureNames()) + { + map.put(codeAndLabel.getLabel(), codeAndLabel); + } + List<CodeAndLabel> result = new ArrayList<CodeAndLabel>(); + for (String feature : featureList.getFeatures()) + { + if (map.containsKey(feature)) + { + result.add(map.get(feature)); + } + } + return result; } /** @@ -646,15 +656,26 @@ public class PlateLayouter List<FeatureList> featureListsOrNull) { List<LabeledItem<FeatureList>> items = new ArrayList<LabeledItem<FeatureList>>(); - items.add(new LabeledItem<FeatureList>(null, "All")); + boolean hadAll = false; if (featureListsOrNull != null) { for (FeatureList featureList : featureListsOrNull) { String label = featureList.getName(); - items.add(new LabeledItem<FeatureList>(featureList, label)); + if (label.equals("All")) + { + hadAll = true; + items.add(0, new LabeledItem<FeatureList>(featureList, label)); + } else + { + items.add(new LabeledItem<FeatureList>(featureList, label)); + } } } + if (hadAll == false) + { + items.add(0, new LabeledItem<FeatureList>(null, "All")); + } return items; } } -- GitLab