diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/ExtendedGridView.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/ExtendedGridView.java
index 95ca6c1610cff0a8422e23360e10075cb8550451..376eab68db18fb0c10bf3c17615c3d63e2b8ddc0 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/ExtendedGridView.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/ExtendedGridView.java
@@ -69,17 +69,14 @@ class ExtendedGridView extends GridView
 
     protected void onHeaderClickWithShift(Grid<ModelData> pGrid, int column)
     {
-        // WORKAROUND: getHeaderCell takes into account only visible columns
-        int headerCellIndex = column;
-        for (int i = 0; i < column; i++)
-        {
-            if (pGrid.getColumnModel().getColumn(i).isHidden())
-            {
-                headerCellIndex--;
-            }
-        }
+        int margin = 50;
+        pGrid.getColumnModel().setColumnWidth(column, calculateWidth(pGrid, column) + margin);
+    }
+
+    private int calculateWidth(Grid<ModelData> pGrid, int column)
+    {
         GridView view = pGrid.getView();
-        Element headerCell = (Element) view.getHeaderCell(headerCellIndex);
+        Element headerCell = (Element) view.getHeaderCell(calculateHeaderCellIndex(pGrid, column));
         TextMetrics tm = TextMetrics.get();
         tm.bind(headerCell);
         // TODO 2010-03-09, IA: line breaks are ignored
@@ -95,8 +92,21 @@ class ExtendedGridView extends GridView
                 max = width;
             }
         }
-        int margin = 50;
-        pGrid.getColumnModel().setColumnWidth(column, max + margin);
+        return max;
+    }
+
+    private int calculateHeaderCellIndex(Grid<ModelData> pGrid, int column)
+    {
+        // WORKAROUND: getHeaderCell takes into account only visible columns
+        int headerCellIndex = column;
+        for (int i = 0; i < column; i++)
+        {
+            if (pGrid.getColumnModel().getColumn(i).isHidden())
+            {
+                headerCellIndex--;
+            }
+        }
+        return headerCellIndex;
     }
 
 }
\ No newline at end of file