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