From 4a2f0f45c7724d69e552c9ce718377cf7f879fb2 Mon Sep 17 00:00:00 2001
From: felmer <felmer>
Date: Tue, 12 Oct 2010 07:09:31 +0000
Subject: [PATCH] LMS-1782 GenericTableColumnHeader deleted and replaced by
 TableModelColumnHeader

SVN: 18259
---
 .../GenericTableRowColumnDefinition.java      |   8 +-
 .../ui/grid/GenericTableBrowserGrid.java      |  18 +--
 .../GenericTableRowColumnDefinitionUI.java    |   8 +-
 .../web/client/dto/GenericTableResultSet.java |   8 +-
 .../web/server/GenericColumnsHelper.java      |  19 ++-
 .../basic/dto/GenericTableColumnHeader.java   | 123 ------------------
 .../basic/dto/TableModelColumnHeader.java     |  43 +++---
 .../web/server/RawDataSampleProvider.java     |  16 +--
 .../web/server/RawDataSampleProviderTest.java |  22 ++--
 .../web/server/PlateMetadataProvider.java     |  12 +-
 .../web/server/ScreeningClientService.java    |   7 +-
 11 files changed, 80 insertions(+), 204 deletions(-)
 delete mode 100644 openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/GenericTableColumnHeader.java

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/specific/GenericTableRowColumnDefinition.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/specific/GenericTableRowColumnDefinition.java
index 67b54b242bf..011442a7a39 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/specific/GenericTableRowColumnDefinition.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/specific/GenericTableRowColumnDefinition.java
@@ -20,8 +20,8 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.GridRowModel;
 import ch.systemsx.cisd.openbis.generic.shared.basic.IColumnDefinition;
 import ch.systemsx.cisd.openbis.generic.shared.basic.SimpleDateRenderer;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DateTableCell;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GenericTableColumnHeader;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ISerializableComparable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelColumnHeader;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRow;
 
 /**
@@ -29,11 +29,11 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRow;
  */
 public class GenericTableRowColumnDefinition implements IColumnDefinition<TableModelRow>
 {
-    protected GenericTableColumnHeader header;
+    protected TableModelColumnHeader header;
 
     private String title;
 
-    public GenericTableRowColumnDefinition(GenericTableColumnHeader header, String title)
+    public GenericTableRowColumnDefinition(TableModelColumnHeader header, String title)
     {
         this.header = header;
         this.title = title;
@@ -58,7 +58,7 @@ public class GenericTableRowColumnDefinition implements IColumnDefinition<TableM
 
     public String getIdentifier()
     {
-        return header.getCode();
+        return header.getId();
     }
 
     public String getValue(GridRowModel<TableModelRow> rowModel)
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/GenericTableBrowserGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/GenericTableBrowserGrid.java
index 7265eaa8070..e99242bd52a 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/GenericTableBrowserGrid.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/GenericTableBrowserGrid.java
@@ -38,11 +38,11 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.GridRowModel;
 import ch.systemsx.cisd.openbis.generic.shared.basic.IColumnDefinition;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GenericTableColumnHeader;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelColumnHeader;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRow;
 
 /**
- * Implementation of a table browser grid for {@link GenericTableRow} data.
+ * Implementation of a table browser grid for {@link TableModelRow} data.
  * 
  * @author Franz-Josef Elmer
  */
@@ -53,7 +53,7 @@ public abstract class GenericTableBrowserGrid extends
 
     private static final String BROWSER_ID_PATTERN = "[a-z0-9_]*";
 
-    private List<GenericTableColumnHeader> headers;
+    private List<TableModelColumnHeader> headers;
 
     /**
      * Creates an instane for specified view context, browserID, gridID, and display type ID
@@ -95,11 +95,11 @@ public abstract class GenericTableBrowserGrid extends
             RealNumberRenderer realNumberRenderer =
                     new RealNumberRenderer(viewContext.getDisplaySettingsManager()
                             .getRealNumberFormatingParameters());
-            for (GenericTableColumnHeader header : headers)
+            for (TableModelColumnHeader header : headers)
             {
-                if (header.getType() == DataTypeCode.REAL)
+                if (header.getDataType() == DataTypeCode.REAL)
                 {
-                    definitions.setGridCellRendererFor(header.getCode(), realNumberRenderer);
+                    definitions.setGridCellRendererFor(header.getId(), realNumberRenderer);
                 }
             }
         }
@@ -118,15 +118,15 @@ public abstract class GenericTableBrowserGrid extends
                 new ArrayList<IColumnDefinitionUI<TableModelRow>>();
         if (headers != null)
         {
-            for (final GenericTableColumnHeader header : headers)
+            for (final TableModelColumnHeader header : headers)
             {
                 String title = header.getTitle();
                 if (title == null)
                 {
-                    title = viewContext.getMessage(getId() + "_" + header.getCode());
+                    title = viewContext.getMessage(getId() + "_" + header.getId());
                 }
                 GenericTableRowColumnDefinitionUI columnDef;
-                if (header.getType() == DataTypeCode.TIMESTAMP)
+                if (header.getDataType() == DataTypeCode.TIMESTAMP)
                 {
                     columnDef =
                             new GenericTableRowColumnDefinitionUI(header, title,
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/GenericTableRowColumnDefinitionUI.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/GenericTableRowColumnDefinitionUI.java
index d8c9777e73f..e75131e38e1 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/GenericTableRowColumnDefinitionUI.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/GenericTableRowColumnDefinitionUI.java
@@ -19,7 +19,7 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.IColumnDefinitionUI;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.specific.GenericTableRowColumnDefinition;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GenericTableColumnHeader;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelColumnHeader;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRow;
 
 /**
@@ -33,12 +33,12 @@ public class GenericTableRowColumnDefinitionUI extends GenericTableRowColumnDefi
 {
     private int width;
 
-    public GenericTableRowColumnDefinitionUI(GenericTableColumnHeader header, String title)
+    public GenericTableRowColumnDefinitionUI(TableModelColumnHeader header, String title)
     {
         this(header, title, 100);
     }
 
-    public GenericTableRowColumnDefinitionUI(GenericTableColumnHeader header, String title, int width)
+    public GenericTableRowColumnDefinitionUI(TableModelColumnHeader header, String title, int width)
     {
         super(header, title);
         this.width = width;
@@ -63,7 +63,7 @@ public class GenericTableRowColumnDefinitionUI extends GenericTableRowColumnDefi
 
     public boolean isNumeric()
     {
-        DataTypeCode type = header.getType();
+        DataTypeCode type = header.getDataType();
         return type == DataTypeCode.INTEGER || type == DataTypeCode.REAL;
     }
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/GenericTableResultSet.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/GenericTableResultSet.java
index 6a3b3b6b72e..0bb7e898244 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/GenericTableResultSet.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/GenericTableResultSet.java
@@ -21,7 +21,7 @@ import java.util.List;
 import com.google.gwt.user.client.rpc.IsSerializable;
 
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.specific.GenericTableRowColumnDefinition;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GenericTableColumnHeader;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelColumnHeader;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRow;
 
 /**
@@ -33,9 +33,9 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRow;
 public class GenericTableResultSet implements IsSerializable
 {
     private ResultSet<TableModelRow> resultSet;
-    private List<GenericTableColumnHeader> headers;
+    private List<TableModelColumnHeader> headers;
 
-    public GenericTableResultSet(ResultSet<TableModelRow> resultSet, List<GenericTableColumnHeader> headers)
+    public GenericTableResultSet(ResultSet<TableModelRow> resultSet, List<TableModelColumnHeader> headers)
     {
         this.resultSet = resultSet;
         this.headers = headers;
@@ -52,7 +52,7 @@ public class GenericTableResultSet implements IsSerializable
         return resultSet;
     }
 
-    public List<GenericTableColumnHeader> getHeaders()
+    public List<TableModelColumnHeader> getHeaders()
     {
         return headers;
     }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/GenericColumnsHelper.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/GenericColumnsHelper.java
index 48d48c54afd..d25f9d64973 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/GenericColumnsHelper.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/GenericColumnsHelper.java
@@ -26,12 +26,12 @@ import java.util.TreeMap;
 
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DateTableCell;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GenericTableColumnHeader;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ISerializableComparable;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SerializableComparableIDDecorator;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.StringTableCell;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelColumnHeader;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRow;
 import ch.systemsx.cisd.openbis.generic.shared.util.DataTypeUtils;
 
@@ -45,14 +45,14 @@ public class GenericColumnsHelper
         private final List<ISerializableComparable> values =
                 new ArrayList<ISerializableComparable>();
 
-        private final GenericTableColumnHeader header;
+        private final TableModelColumnHeader header;
 
-        public Column(GenericTableColumnHeader header)
+        public Column(TableModelColumnHeader header)
         {
             this.header = header;
         }
 
-        public GenericTableColumnHeader getHeader()
+        public TableModelColumnHeader getHeader()
         {
             return header;
         }
@@ -88,7 +88,7 @@ public class GenericColumnsHelper
 
         void addPrefixToColumnHeaderCodes(String prefix)
         {
-            header.setCode(prefix + header.getCode());
+            header.setId(prefix + header.getId());
         }
 
         void setIndex(int index)
@@ -109,11 +109,11 @@ public class GenericColumnsHelper
             Column column = columns.get(key);
             if (column == null)
             {
-                GenericTableColumnHeader header = new GenericTableColumnHeader();
-                header.setCode(key);
+                TableModelColumnHeader header = new TableModelColumnHeader();
+                header.setId(key);
                 header.setIndex(columns.size());
                 header.setTitle(propertyType.getLabel());
-                header.setType(dataType);
+                header.setDataType(dataType);
                 column = new Column(header);
                 columns.put(key, column);
             }
@@ -156,9 +156,8 @@ public class GenericColumnsHelper
         for (int i = 0; i < numberOfRows; i++)
         {
             List<ISerializableComparable> row = new ArrayList<ISerializableComparable>(columns.size());
-            for (int j = 0; j < row.size(); j++)
+            for (Column column : columns)
             {
-                Column column = columns.get(j);
                 List<ISerializableComparable> values = column.getValues();
                 row.add(i < values.size() ? values.get(i) : null);
             }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/GenericTableColumnHeader.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/GenericTableColumnHeader.java
deleted file mode 100644
index 73275d014b8..00000000000
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/GenericTableColumnHeader.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
-
-import java.io.Serializable;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IMessageProvider;
-
-/**
- * Definition of a column header for {@link GenericTableRow} data. 
- * A column had has
- * <ul><li>an index (needed to access a cell in a {@link GenericTableRow} object),
- * <li>a code which has to be unique among all other headers,
- * <li>a data type
- * </ul>
- * The header title is optional. If not specified <code>null</code> is returned. Usually it will be
- * set in the client code by using a translation mechanism (like {@link IMessageProvider}).
- *
- * @author Franz-Josef Elmer
- */
-public class GenericTableColumnHeader implements Serializable, IsSerializable
-{
-    private static final long serialVersionUID = ServiceVersionHolder.VERSION;
-    
-    /**
-     * Creates a header without a title.
-     */
-    public static GenericTableColumnHeader untitledStringHeader(int index, String code)
-    {
-        GenericTableColumnHeader header = new GenericTableColumnHeader();
-        header.setIndex(index);
-        header.setCode(code);
-        header.setType(DataTypeCode.VARCHAR);
-        return header;
-    }
-
-    /**
-     * Creates a header without a title and <code>linkable</code> flag set <code>true</code>..
-     */
-    public static GenericTableColumnHeader untitledLinkableStringHeader(int index, String code)
-    {
-        GenericTableColumnHeader header = untitledStringHeader(index, code);
-        header.setLinkable(true);
-        return header;
-    }
-    
-    private String title;
-    
-    private int index;
-    
-    private String code;
-    
-    private boolean linkable;
-    
-    private DataTypeCode type;
-
-    public String getTitle()
-    {
-        return title;
-    }
-
-    public void setTitle(String title)
-    {
-        this.title = title;
-    }
-
-    public int getIndex()
-    {
-        return index;
-    }
-
-    public void setIndex(int index)
-    {
-        this.index = index;
-    }
-    
-    public void setCode(String code)
-    {
-        this.code = code;
-    }
-    
-    public String getCode()
-    {
-        return code;
-    }
-
-    public DataTypeCode getType()
-    {
-        return type;
-    }
-
-    public void setType(DataTypeCode type)
-    {
-        this.type = type;
-    }
-
-    public void setLinkable(boolean linkable)
-    {
-        this.linkable = linkable;
-    }
-
-    public boolean isLinkable()
-    {
-        return linkable;
-    }
-    
-}
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/TableModelColumnHeader.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/TableModelColumnHeader.java
index f454825e9d7..0d38d0f3af6 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/TableModelColumnHeader.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/TableModelColumnHeader.java
@@ -32,9 +32,9 @@ public class TableModelColumnHeader implements IsSerializable, Serializable
     /**
      * Creates a header without a title.
      */
-    public static TableModelColumnHeader untitledStringHeader(int index, String code)
+    public static TableModelColumnHeader untitledStringHeader(int index, String id)
     {
-        TableModelColumnHeader header = new TableModelColumnHeader(null, code, index);
+        TableModelColumnHeader header = new TableModelColumnHeader(null, id, index);
         header.setDataType(DataTypeCode.VARCHAR);
         return header;
     }
@@ -42,9 +42,9 @@ public class TableModelColumnHeader implements IsSerializable, Serializable
     /**
      * Creates a header without a title and <code>linkable</code> flag set <code>true</code>..
      */
-    public static TableModelColumnHeader untitledLinkableStringHeader(int index, String code)
+    public static TableModelColumnHeader untitledLinkableStringHeader(int index, String id)
     {
-        TableModelColumnHeader header = untitledStringHeader(index, code);
+        TableModelColumnHeader header = untitledStringHeader(index, id);
         header.setLinkable(true);
         return header;
     }
@@ -64,12 +64,15 @@ public class TableModelColumnHeader implements IsSerializable, Serializable
     
     private int defaultColumnWidth = 150;
 
+    public TableModelColumnHeader()
+    {
+    }
+
     public TableModelColumnHeader(String title, String id, int index)
     {
-        // NOTE: id shouldn't contain spaces or some features of columns (e.g. links) will not work
-        this.id = id.replaceAll(" ", "_");
-        this.title = title;
-        this.index = index;
+        setId(id);
+        setTitle(title);
+        setIndex(index);
     }
 
     public void setDataType(DataTypeCode dataType)
@@ -87,11 +90,22 @@ public class TableModelColumnHeader implements IsSerializable, Serializable
         return title;
     }
 
+    public void setId(String id)
+    {
+        // NOTE: id shouldn't contain spaces or some features of columns (e.g. links) will not work
+        this.id = id.replaceAll(" ", "_");
+    }
+    
     public final String getId()
     {
         return id;
     }
 
+    public void setIndex(int index)
+    {
+        this.index = index;
+    }
+    
     public int getIndex()
     {
         return index;
@@ -112,24 +126,11 @@ public class TableModelColumnHeader implements IsSerializable, Serializable
         return dataType == DataTypeCode.REAL || dataType == DataTypeCode.INTEGER;
     }
 
-    // GWT only
-    @SuppressWarnings("unused")
-    private TableModelColumnHeader()
-    {
-    }
-
     public void setTitle(String title)
     {
         this.title = title;
     }
 
-    // GWT only
-    @SuppressWarnings("unused")
-    private void setIndex(int index)
-    {
-        this.index = index;
-    }
-
     public EntityKind tryGetEntityKind()
     {
         return entityKindOrNull;
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/RawDataSampleProvider.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/RawDataSampleProvider.java
index 8701e131859..fa2a5b588ed 100644
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/RawDataSampleProvider.java
+++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/RawDataSampleProvider.java
@@ -27,9 +27,9 @@ import ch.systemsx.cisd.openbis.generic.client.web.server.GenericColumnsHelper;
 import ch.systemsx.cisd.openbis.generic.client.web.server.GenericColumnsHelper.Column;
 import ch.systemsx.cisd.openbis.generic.client.web.server.GenericColumnsHelper.PropertyColumns;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GenericTableColumnHeader;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelColumnHeader;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRow;
 import ch.systemsx.cisd.openbis.plugin.phosphonetx.shared.IProteomicsDataServiceInternal;
 import ch.systemsx.cisd.openbis.plugin.phosphonetx.shared.dto.MsInjectionSample;
@@ -67,11 +67,11 @@ class RawDataSampleProvider extends AbstractOriginalDataProviderWithoutHeaders<T
         return GenericColumnsHelper.createTableRows(getColumns());
     }
 
-    public List<GenericTableColumnHeader> getGenericHeaders()
+    public List<TableModelColumnHeader> getGenericHeaders()
     {
         List<Column> columns = getColumns();
-        List<GenericTableColumnHeader> headers =
-                new ArrayList<GenericTableColumnHeader>(columns.size());
+        List<TableModelColumnHeader> headers =
+                new ArrayList<TableModelColumnHeader>(columns.size());
         for (Column column : columns)
         {
             headers.add(column.getHeader());
@@ -83,11 +83,11 @@ class RawDataSampleProvider extends AbstractOriginalDataProviderWithoutHeaders<T
     {
         List<MsInjectionSample> samples = service.listRawDataSamples(sessionToken);
         Column codeColumn =
-                new Column(GenericTableColumnHeader.untitledLinkableStringHeader(0, CODE));
+                new Column(TableModelColumnHeader.untitledLinkableStringHeader(0, CODE));
         Column dateColumn =
-                new Column(GenericTableColumnHeader.untitledStringHeader(1, REGISTRATION_DATE));
-        Column parentColumn = new Column(GenericTableColumnHeader.untitledStringHeader(2, PARENT));
-        Column experimentColumn = new Column(GenericTableColumnHeader.untitledStringHeader(3, EXPERIMENT));
+                new Column(TableModelColumnHeader.untitledStringHeader(1, REGISTRATION_DATE));
+        Column parentColumn = new Column(TableModelColumnHeader.untitledStringHeader(2, PARENT));
+        Column experimentColumn = new Column(TableModelColumnHeader.untitledStringHeader(3, EXPERIMENT));
         List<Column> columns = new ArrayList<Column>();
         columns.add(codeColumn);
         columns.add(dateColumn);
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/RawDataSampleProviderTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/RawDataSampleProviderTest.java
index 31b9713e841..aca3bb7dec8 100644
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/RawDataSampleProviderTest.java
+++ b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/RawDataSampleProviderTest.java
@@ -33,11 +33,11 @@ import ch.systemsx.cisd.openbis.generic.shared.AbstractServerTestCase;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GenericTableColumnHeader;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GenericValueEntityProperty;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelColumnHeader;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRow;
 import ch.systemsx.cisd.openbis.plugin.phosphonetx.shared.IProteomicsDataServiceInternal;
 import ch.systemsx.cisd.openbis.plugin.phosphonetx.shared.dto.MsInjectionSample;
@@ -67,7 +67,7 @@ public class RawDataSampleProviderTest extends AbstractServerTestCase
     {
         prepareListRawDataSamples();
         
-        List<GenericTableColumnHeader> headers = provider.getGenericHeaders();
+        List<TableModelColumnHeader> headers = provider.getGenericHeaders();
         
         assertColumns(headers);
         context.assertIsSatisfied();
@@ -81,7 +81,7 @@ public class RawDataSampleProviderTest extends AbstractServerTestCase
         Sample ms3 = sample("MS3", sample("DE", "gamma", "alpha"), "two");
         prepareListRawDataSamples(ms1, ms2, ms3);
         
-        List<GenericTableColumnHeader> headers = provider.getGenericHeaders();
+        List<TableModelColumnHeader> headers = provider.getGenericHeaders();
         
         assertColumns(headers, "one", "two", "alpha", "beta", "gamma");
         context.assertIsSatisfied();
@@ -134,7 +134,7 @@ public class RawDataSampleProviderTest extends AbstractServerTestCase
         assertEquals(expectedRow, builder.toString());
     }
     
-    private void assertColumns(List<GenericTableColumnHeader> headers,
+    private void assertColumns(List<TableModelColumnHeader> headers,
             String... expectedTitles)
     {
         assertFixedColumns(headers);
@@ -145,7 +145,7 @@ public class RawDataSampleProviderTest extends AbstractServerTestCase
         assertEquals(expectedTitles.length + 4, headers.size());
     }
     
-    private void assertFixedColumns(List<GenericTableColumnHeader> headers)
+    private void assertFixedColumns(List<TableModelColumnHeader> headers)
     {
         assertUntitledHeader(CODE, 0, true, DataTypeCode.VARCHAR, headers.get(0));
         assertUntitledHeader(REGISTRATION_DATE, 1, false, DataTypeCode.VARCHAR, headers.get(1));
@@ -153,27 +153,27 @@ public class RawDataSampleProviderTest extends AbstractServerTestCase
     }
     
     private void assertUntitledHeader(String expectedCode, int expectedIndex,
-            boolean expectedlinkableFlag, DataTypeCode expectedType, GenericTableColumnHeader header)
+            boolean expectedlinkableFlag, DataTypeCode expectedType, TableModelColumnHeader header)
     {
         assertHeader(null, expectedCode, expectedIndex, expectedlinkableFlag, expectedType,
                 header);
     }
 
-    private void assertPropertyHeader(String expectedLabel, int index, List<GenericTableColumnHeader> headers)
+    private void assertPropertyHeader(String expectedLabel, int index, List<TableModelColumnHeader> headers)
     {
         DataTypeCode type = DataTypeCode.values()[expectedLabel.length()];
-        GenericTableColumnHeader header = headers.get(index);
+        TableModelColumnHeader header = headers.get(index);
         assertHeader(expectedLabel, expectedLabel.toUpperCase(), index, false, type, header);
     }
     
     private void assertHeader(String expectedTitle, String expectedCode, int expectedIndex,
-            boolean expectedlinkableFlag, DataTypeCode expectedType, GenericTableColumnHeader header)
+            boolean expectedlinkableFlag, DataTypeCode expectedType, TableModelColumnHeader header)
     {
         assertEquals(expectedTitle, header.getTitle());
-        assertEquals(expectedCode, header.getCode());
+        assertEquals(expectedCode, header.getId());
         assertEquals(expectedIndex, header.getIndex());
         assertEquals(expectedlinkableFlag, header.isLinkable());
-        assertEquals(expectedType, header.getType());
+        assertEquals(expectedType, header.getDataType());
     }
     
     private Sample sample(String code, Sample parent, String...properties)
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/server/PlateMetadataProvider.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/server/PlateMetadataProvider.java
index 6f0f15be8c0..89109e5ea56 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/server/PlateMetadataProvider.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/server/PlateMetadataProvider.java
@@ -25,9 +25,9 @@ import ch.systemsx.cisd.openbis.generic.client.web.server.GenericColumnsHelper;
 import ch.systemsx.cisd.openbis.generic.client.web.server.GenericColumnsHelper.Column;
 import ch.systemsx.cisd.openbis.generic.client.web.server.GenericColumnsHelper.PropertyColumns;
 import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GenericTableColumnHeader;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelColumnHeader;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRow;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.IScreeningServer;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.PlateContent;
@@ -55,11 +55,11 @@ class PlateMetadataProvider extends AbstractOriginalDataProviderWithoutHeaders<T
         return GenericColumnsHelper.createTableRows(getColumns());
     }
 
-    public List<GenericTableColumnHeader> getGenericHeaders()
+    public List<TableModelColumnHeader> getGenericHeaders()
     {
         List<Column> columns = getColumns();
-        List<GenericTableColumnHeader> headers =
-                new ArrayList<GenericTableColumnHeader>(columns.size());
+        List<TableModelColumnHeader> headers =
+                new ArrayList<TableModelColumnHeader>(columns.size());
         for (Column column : columns)
         {
             headers.add(column.getHeader());
@@ -71,13 +71,13 @@ class PlateMetadataProvider extends AbstractOriginalDataProviderWithoutHeaders<T
     {
         List<Column> columns = new ArrayList<Column>();
         Column codeColumn =
-                new Column(GenericTableColumnHeader.untitledLinkableStringHeader(
+                new Column(TableModelColumnHeader.untitledLinkableStringHeader(
                         PlateMetadataStaticColumns.WELL.ordinal(),
                         PlateMetadataStaticColumns.WELL.getColumnId()));
         columns.add(codeColumn);
 
         Column typeColumn =
-                new Column(GenericTableColumnHeader.untitledStringHeader(
+                new Column(TableModelColumnHeader.untitledStringHeader(
                         PlateMetadataStaticColumns.TYPE.ordinal(),
                         PlateMetadataStaticColumns.TYPE.getColumnId()));
         columns.add(typeColumn);
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/server/ScreeningClientService.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/server/ScreeningClientService.java
index 511455d8380..a0050cd7db2 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/server/ScreeningClientService.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/server/ScreeningClientService.java
@@ -49,7 +49,6 @@ import ch.systemsx.cisd.openbis.generic.shared.IServer;
 import ch.systemsx.cisd.openbis.generic.shared.basic.IColumnDefinition;
 import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GenericTableColumnHeader;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Material;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleParentWithDerived;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelColumnHeader;
@@ -228,11 +227,11 @@ public final class ScreeningClientService extends AbstractClientService implemen
         Set<IColumnDefinition<TableModelRow>> columns = criteria.getAvailableColumns();
         Set<String> availableColumnIdentifiers = extractColumnIdentifiers(columns);
 
-        List<GenericTableColumnHeader> headers = dataProvider.getGenericHeaders();
-        for (GenericTableColumnHeader header : headers)
+        List<TableModelColumnHeader> headers = dataProvider.getGenericHeaders();
+        for (TableModelColumnHeader header : headers)
         {
             // the header's code is the same as the definition's identifier
-            if (!availableColumnIdentifiers.contains(header.getCode()))
+            if (!availableColumnIdentifiers.contains(header.getId()))
             {
                 columns.add(new GenericTableRowColumnDefinition(header, header.getTitle()));
             }
-- 
GitLab