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 5ab3c5065570a6589d59f3613db914b84c84799b..7e2c6acfa19ac4d1ad05badac3763e904512429b 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 701896dbf8a794a59ba63294b4671ee2abd4687f..08d37cb175ea43e205c9980e47be4966538c0fc7 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 714fd3635812050f458e6443173dd78f6cff3282..45c946b7de39567f95dcc72194ff1eab00c2fd7d 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 7625450c38ae446de2c039a6d48ea9410c0fd9b6..a976ef5920c482468b0dbbae03597cc47b8925ff 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