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