From fb8236b739a329d2e7a1d706f216c97e7b6981d7 Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Thu, 24 Sep 2009 15:48:03 +0000 Subject: [PATCH] LMS-1186 use property data type for cell value type SVN: 12702 --- .../columns/framework/EntityPropertyColDef.java | 16 ++++++++++++++++ .../client/web/server/util/FilterUtils.java | 4 ++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/framework/EntityPropertyColDef.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/framework/EntityPropertyColDef.java index 0bb141aedb6..3c4a1c8a8cc 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/framework/EntityPropertyColDef.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/framework/EntityPropertyColDef.java @@ -106,6 +106,22 @@ public class EntityPropertyColDef<T extends IEntityPropertiesHolder> extends return null; } + @Override + public Comparable<?> getComparableValue(T rowModel) + { + String valueAsString = tryGetValue(rowModel); + DataTypeCode dataType = propertyType.getDataType().getCode(); + switch (dataType) + { + case INTEGER: + return valueAsString == null ? new Integer(Integer.MIN_VALUE) : new Integer(valueAsString); + case REAL: + return valueAsString == null ? new Double(-Double.MAX_VALUE) : new Double(valueAsString); + default: + return super.getComparableValue(rowModel); + } + } + public IEntityProperty tryGetProperty(T entity) { for (IEntityProperty prop : getProperties(entity)) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/util/FilterUtils.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/util/FilterUtils.java index 45d5f36fc55..32f3742a80b 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/util/FilterUtils.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/util/FilterUtils.java @@ -55,14 +55,14 @@ public class FilterUtils this.row = row; } - public String get(String columnID) + public Object get(String columnID) { IColumnDefinition<T> columnDefinition = map.get(columnID); if (columnDefinition == null) { throw new IllegalArgumentException("Undefined column: " + columnID); } - return columnDefinition.getValue(row); + return columnDefinition.getComparableValue(row); } } -- GitLab