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 0bb141aedb6b8fc1b0a9e5d073539dd7671717af..3c4a1c8a8cc0b76392d015e4571b3efff42fa63d 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 45d5f36fc55545d2d84d6b338cd92f1f2f6ce3bd..32f3742a80b967bb309e78481483c94c6ba13da0 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); } }