diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/AbstractExternalDataProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/AbstractExternalDataProvider.java index 4e64f5cfff2eec2a20bb6e57579848ad74793461..a90d40a9db7b2e21a58a90d663dfa448860d4083 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/AbstractExternalDataProvider.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/AbstractExternalDataProvider.java @@ -53,6 +53,8 @@ import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.ExternalDat import java.util.List; +import ch.systemsx.cisd.common.collection.IKeyExtractor; +import ch.systemsx.cisd.common.collection.TableMap; import ch.systemsx.cisd.common.shared.basic.string.CommaSeparatedListBuilder; import ch.systemsx.cisd.openbis.generic.shared.ICommonServer; import ch.systemsx.cisd.openbis.generic.shared.basic.DeletionUtils; @@ -121,6 +123,7 @@ public abstract class AbstractExternalDataProvider extends builder.addColumn(PERM_ID).hideByDefault(); builder.addColumn(SHOW_DETAILS_LINK).hideByDefault(); builder.addColumn(METAPROJECTS); + TableMap<String, DataSetType> dataSetTypes = getDataSetTypes(); for (AbstractExternalData dataSet : dataSets) { builder.addRow(dataSet); @@ -216,7 +219,8 @@ public abstract class AbstractExternalDataProvider extends DataSetType dataSetType = dataSet.getDataSetType(); if (dataSetType != null) { - columnGroup.addColumnsForAssignedProperties(dataSetType); + DataSetType fullDataSetType = dataSetTypes.tryGet(dataSetType.getCode()); + columnGroup.addColumnsForAssignedProperties(fullDataSetType); } columnGroup.addProperties(dataSet.getProperties()); } @@ -224,6 +228,19 @@ public abstract class AbstractExternalDataProvider extends } return builder.getModel(); } + + private TableMap<String, DataSetType> getDataSetTypes() + { + List<DataSetType> dataSetTypes = commonServer.listDataSetTypes(sessionToken); + return new TableMap<>(dataSetTypes, new IKeyExtractor<String, DataSetType>() + { + @Override + public String getKey(DataSetType type) + { + return type.getCode(); + } + }); + } protected abstract List<AbstractExternalData> getDataSets();