From 37f17c7fb8037d3e21f04b04c4a106c521c8a541 Mon Sep 17 00:00:00 2001 From: buczekp <buczekp> Date: Fri, 5 Mar 2010 15:03:56 +0000 Subject: [PATCH] [LMS-1419] fixed rendering of values in new custom columns (using information about updated column data type) SVN: 15056 --- .../client/application/ui/grid/AbstractBrowserGrid.java | 5 +++-- .../ui/grid/CustomColumnsMetadataProvider.java | 2 +- .../client/web/client/dto/GridCustomColumnInfo.java | 8 ++++---- .../generic/client/web/client/dto/GridRowModels.java | 2 +- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractBrowserGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractBrowserGrid.java index 5ab3c506557..7e2c6acfa19 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractBrowserGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractBrowserGrid.java @@ -1186,7 +1186,7 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod { public void postRefresh(boolean wasSuccessful) { - if (customColumnsMetadataProvider.getUnsettingHasChanged()) + if (customColumnsMetadataProvider.getHasChangedAndSetFalse()) { recreateColumnModelAndRefreshColumnsWithFilters(); } @@ -1275,11 +1275,12 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod .setCustomColumnsMetadata(newCustomColumns); } boolean customColumnsChanged = - customColumnsMetadataProvider.getUnsettingHasChanged(); + customColumnsMetadataProvider.getHasChangedAndSetFalse(); if (customColumnsChanged) { recreateColumnModelAndRefreshColumnsWithFilters(); } + boolean columnFiltersChanged = rebuildFiltersFromIds(getFilteredColumnIds(newColumnDataModels)); saveColumnDisplaySettings(); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/CustomColumnsMetadataProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/CustomColumnsMetadataProvider.java index 701896dbf8a..08d37cb175e 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/CustomColumnsMetadataProvider.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/CustomColumnsMetadataProvider.java @@ -34,7 +34,7 @@ class CustomColumnsMetadataProvider private boolean hasChanged; /** true if the value has changed. Subsequent calls will return false. */ - public boolean getUnsettingHasChanged() + public boolean getHasChangedAndSetFalse() { boolean result = hasChanged; this.hasChanged = false; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/GridCustomColumnInfo.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/GridCustomColumnInfo.java index 714fd363581..45c946b7de3 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/GridCustomColumnInfo.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/GridCustomColumnInfo.java @@ -21,7 +21,7 @@ import com.google.gwt.user.client.rpc.IsSerializable; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode; /** - * Basic metadata about a grid custom column: code (column identifier), label and description. + * Basic metadata about a grid custom column: code (column identifier), label, description and type. * * @author Tomasz Pylak */ @@ -63,7 +63,7 @@ public class GridCustomColumnInfo implements IsSerializable { return description; } - + public DataTypeCode getDataType() { return dataType; @@ -77,12 +77,12 @@ public class GridCustomColumnInfo implements IsSerializable return false; } GridCustomColumnInfo that = (GridCustomColumnInfo) obj; - return code.equals(that.code) && label.equals(that.label); + return code.equals(that.code) && label.equals(that.label) && dataType == that.dataType; } @Override public int hashCode() { - return ((17 * 59) + code.hashCode()) * 59 + label.hashCode(); + return ((17 * 59) + code.hashCode()) * 59 + label.hashCode(); } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/GridRowModels.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/GridRowModels.java index 7625450c38a..a976ef5920c 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/GridRowModels.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/GridRowModels.java @@ -61,7 +61,7 @@ public class GridRowModels<T> extends ArrayList<GridRowModel<T>> implements IsSe this.columnDistinctValues = arrayList; } - /** Used when items are not displayed in a grid (usually we need the values for comboboxes */ + /** Used when items are not displayed in a grid (usually we need the values for comboboxes) */ // TODO 2009-10-08, Tomasz Pylak: this method is a source of many anti-patterns where the // existance of server cache is simply forgotten and cache is never cleared. // Possible solution is to add an -- GitLab