diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/DisplaySettingsManager.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/DisplaySettingsManager.java
index 6c234943130aebc201ba74d08f0b5c6464921f4f..cccbb55e2bf7b6344e94de75cce1acafb1b5b966 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/DisplaySettingsManager.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/DisplaySettingsManager.java
@@ -260,22 +260,21 @@ public class DisplaySettingsManager
     {
         boolean refreshNeeded = false;
         List<ColumnConfig> newColumnConfigList = new ArrayList<ColumnConfig>();
-        Set<Integer> indices = new HashSet<Integer>();
+        Set<String> ids = new HashSet<String>();
         List<String> newFilteredColumnIds = new ArrayList<String>();
         for (int i = 0; i < columnSettings.size(); i++)
         {
             ColumnSetting columnSetting = columnSettings.get(i);
             // update column using the settings stored for it
             String columnID = columnSetting.getColumnID();
-            int index = columnModel.getIndexById(columnID);
-            if (index >= 0)
+            ColumnConfig columnConfig = columnModel.getColumnById(columnID);
+            if (columnConfig != null)
             {
-                if (i != index)
+                if (i != columnModel.getIndexById(columnID))
                 {
                     refreshNeeded = true;
                 }
-                indices.add(index);
-                ColumnConfig columnConfig = columnModel.getColumn(index);
+                ids.add(columnID);
                 boolean hidden = columnSetting.isHidden();
                 if (columnConfig.isHidden() != hidden)
                 {
@@ -298,9 +297,10 @@ public class DisplaySettingsManager
         // add columns for which no settings were stored at the end
         for (int i = 0; i < columnModel.getColumnCount(); i++)
         {
-            if (indices.contains(i) == false)
+            ColumnConfig column = columnModel.getColumn(i);
+            if (ids.contains(column.getId()) == false)
             {
-                newColumnConfigList.add(columnModel.getColumn(i));
+                newColumnConfigList.add(column);
             }
         }
         if (newFilteredColumnIds.equals(filteredColumnIds) == false)
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/TypedTableGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/TypedTableGrid.java
index e594c1b04808520522603043b9bbcd0f790a478d..1a335ca75b92a2b4d41588ad4295abafbc13a6e5 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/TypedTableGrid.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/TypedTableGrid.java
@@ -133,12 +133,6 @@ public abstract class TypedTableGrid<T extends ISerializable>
                 MaterialTableCell materialTableCell = (MaterialTableCell) value;
                 return LinkExtractor.tryExtract(materialTableCell.getMaterialIdentifier());
             }
-//            if (value instanceof VocabularyTermTableCell)
-//            {
-//                VocabularyTermTableCell vocabularyTermTableCell = (VocabularyTermTableCell) value;
-//                VocabularyTerm vocabularyTerm = vocabularyTermTableCell.getVocabularyTerm();
-//                return VocabularyPropertyColRenderer.renderTerm(vocabularyTerm);
-//            }
             return LinkExtractor.createPermlink(entityKind, value.toString());
         }
 
@@ -169,6 +163,8 @@ public abstract class TypedTableGrid<T extends ISerializable>
 
     private Map<String, IColumnDefinition<TableModelRowWithObject<T>>> columnDefinitions;
 
+    private String currentGridDisplayTypeID;
+
     protected TypedTableGrid(IViewContext<ICommonClientServiceAsync> viewContext, String browserId,
             boolean refreshAutomatically, IDisplayTypeIDGenerator displayTypeIDGenerator)
     {
@@ -354,6 +350,7 @@ public abstract class TypedTableGrid<T extends ISerializable>
                         }
                     };
         listTableRows(resultSetConfig, extendedCallback);
+        currentGridDisplayTypeID = getGridDisplayTypeID();
     }
 
     @Override
@@ -362,10 +359,16 @@ public abstract class TypedTableGrid<T extends ISerializable>
         return true;
     }
 
+    /**
+     * Refreshes the browser if the grid display type ID has changed because this means a different
+     * set of display settings. Thus column models and filters should be refreshed before data
+     * loading.
+     */
     @Override
     protected void refresh()
     {
-        refresh(false);
+        String gridDisplayTypeID = getGridDisplayTypeID();
+        refresh(gridDisplayTypeID.equals(currentGridDisplayTypeID) == false);
     }
 
     @Override
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 2f082a0a8e3e32a86aaef904c8cbb1448371219c..66528d25c603fa4bd134f9bb70ec342c98883c42 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
@@ -84,7 +84,6 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.renderer.M
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.renderer.RealNumberRenderer;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.ComponentEventLogger;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.ComponentEventLogger.EventPair;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.AbstractColumnDefinitionKind;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.IColumnDefinitionKind;
 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.GridCustomColumnDefinition;
@@ -216,6 +215,8 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod
 
     private LayoutContainer bottomToolbars;
 
+    private ColumnModel fullColumnModel;
+
     protected AbstractBrowserGrid(final IViewContext<ICommonClientServiceAsync> viewContext,
             String gridId, IDisplayTypeIDGenerator displayTypeIDGenerator)
     {
@@ -568,8 +569,9 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod
             pendingFetchManager.pushPendingFetchConfig(ResultSetFetchConfig
                     .createFetchFromCache(resultSetKeyOrNull));
         }
+        GridFilters<T> filters = filterToolbar.getFilters();
         final DefaultResultSetConfig<String, T> resultSetConfig =
-                createPagingConfig(loadConfig, filterToolbar.getFilters(), getGridDisplayTypeID());
+                createPagingConfig(loadConfig, filters, getGridDisplayTypeID());
         debug("create a refresh callback " + pendingFetchManager.tryTopPendingFetchConfig());
         final ListEntitiesCallback listCallback =
                 new ListEntitiesCallback(viewContext, callback, resultSetConfig);
@@ -1157,10 +1159,34 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod
 
     private void changeColumnModel(ColumnModel columnModel)
     {
+        fullColumnModel = columnModel;
         int logId = log("grid reconfigure");
-        grid.reconfigure(grid.getStore(), columnModel);
+        ColumnModel columnModelOfVisible = trimToVisibleColumns(columnModel);
+        grid.reconfigure(grid.getStore(), columnModelOfVisible);
         viewContext.logStop(logId);
         registerGridSettingsChangesListener();
+        // add listeners of full column model to trimmed model
+        List<Listener<? extends BaseEvent>> listeners =
+            fullColumnModel.getListeners(Events.WidthChange);
+        for (Listener<? extends BaseEvent> listener : listeners)
+        {
+            columnModelOfVisible.addListener(Events.WidthChange, listener);
+        }
+    }
+    
+    private ColumnModel trimToVisibleColumns(ColumnModel columnModel)
+    {
+        List<ColumnConfig> columns = new ArrayList<ColumnConfig>();
+        for (int i = 0, n = columnModel.getColumnCount(); i < n; i++)
+        {
+            ColumnConfig column = columnModel.getColumn(i);
+            if (column.isHidden() == false)
+            {
+                columns.add(column);
+            }
+        }
+        ColumnModel trimmedModel = createColumnModel(columns);
+        return trimmedModel;
     }
 
     private void registerGridSettingsChangesListener()
@@ -1190,7 +1216,7 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod
             {
                 public ColumnModel getColumnModel()
                 {
-                    return AbstractBrowserGrid.this.getColumnModel();
+                    return AbstractBrowserGrid.this.getFullColumnModel();
                 }
 
                 public List<String> getFilteredColumnIds()
@@ -1294,8 +1320,7 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod
     private List<IColumnDefinition<T>> getVisibleColumns(Set<IColumnDefinition<T>> availableColumns)
     {
         Map<String, IColumnDefinition<T>> availableColumnsMap = asColumnIdMap(availableColumns);
-        final ColumnModel columnModel = grid.getColumnModel();
-        return getVisibleColumns(availableColumnsMap, columnModel);
+        return getVisibleColumns(availableColumnsMap, fullColumnModel);
     }
 
     private void saveCacheKey(final String newResultSetKey)
@@ -1341,8 +1366,9 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod
     // Default visibility so that friend classes can use -- should otherwise be considered private
     void saveColumnDisplaySettings()
     {
+        IDisplaySettingsGetter settingsUpdater = createDisplaySettingsUpdater();
         viewContext.getDisplaySettingsManager().storeSettings(getGridDisplayTypeID(),
-                createDisplaySettingsUpdater(), false);
+                settingsUpdater, false);
     }
 
     // @Private - for tests
@@ -1410,20 +1436,6 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod
 
     // ------- generic static helpers
 
-    // Default visibility so that friend classes can use -- should otherwise be considered private
-    static List<String> getFilteredColumnIds(List<ColumnDataModel> result)
-    {
-        List<String> filteredColumnsIds = new ArrayList<String>();
-        for (ColumnDataModel model : result)
-        {
-            if (model.hasFilter())
-            {
-                filteredColumnsIds.add(model.getColumnID());
-            }
-        }
-        return filteredColumnsIds;
-    }
-
     private static <T> List<String> extractColumnIds(List<IColumnDefinition<T>> columns)
     {
         List<String> columnsIds = new ArrayList<String>();
@@ -1434,51 +1446,6 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod
         return columnsIds;
     }
 
-    /**
-     * Updates specified model (<code>cm</code>) with visibility and order settings from
-     * <code>columnModels</code>.
-     */
-    // Default visibility so that friend classes can use -- should otherwise be considered private
-    static void updateColumnsSettingsModel(final MoveableColumnModel cm,
-            List<ColumnDataModel> columnModels)
-    {
-        int newIndex = 0;
-        // do not fire events because of performance problems when hiding/unhiding all columns. View
-        // will be refreshed by refreshColumnsSettings() afterwards.
-        cm.setFiresEvents(false);
-        for (ColumnDataModel m : columnModels)
-        {
-            String columnID = m.getColumnID();
-            int oldIndex = cm.getIndexById(columnID);
-            if (oldIndex != -1)
-            {
-                cm.setHidden(oldIndex, m.isVisible() == false);
-                cm.move(oldIndex, newIndex++);
-            } else
-            { // new custom column has been added.
-                cm.addAt(newIndex++, createTemporaryColumnConfig(m));
-            }
-        }
-        // all deleted custom columns are now at the end starting from 'newIndex' - remove them
-        while (newIndex < cm.getColumnCount())
-        {
-            cm.remove(cm.getColumnCount() - 1);
-        }
-        cm.setFiresEvents(true);
-    }
-
-    // This column config is created just to make user settings persistent.
-    // It must have been a custom column.
-    // The config will be recreated in a proper form when data will be refreshed.
-    private static ColumnConfig createTemporaryColumnConfig(ColumnDataModel m)
-    {
-        ColumnConfig columnConfig =
-                new ColumnConfig(m.getColumnID(), m.getHeader(),
-                        AbstractColumnDefinitionKind.DEFAULT_COLUMN_WIDTH);
-        columnConfig.setHidden(m.isVisible() == false);
-        return columnConfig;
-    }
-
     // Default visibility so that friend classes can use -- should otherwise be considered private
     static List<ColumnDataModel> createColumnsSettingsModel(ColumnModel cm,
             List<String> filteredColumnsIds)
@@ -1560,17 +1527,17 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod
     }
 
     // this should be the only place where we create the grid column model.
-    private static MoveableColumnModel createColumnModel(List<ColumnConfig> columConfigs)
+    private static ColumnModel createColumnModel(List<ColumnConfig> columConfigs)
     {
-        return new MoveableColumnModel(columConfigs);
+        return new ColumnModel(columConfigs);
     }
 
     // Default visibility so that friend classes can use -- should otherwise be considered private
-    MoveableColumnModel getColumnModel()
+    ColumnModel getFullColumnModel()
     {
-        return (MoveableColumnModel) grid.getColumnModel();
+        return fullColumnModel;
     }
-
+    
     private static final class ExportEntitiesCallback extends AbstractAsyncCallback<String>
     {
         public ExportEntitiesCallback(final IViewContext<ICommonClientServiceAsync> viewContext)
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/ColumnSettingsConfigurer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/ColumnSettingsConfigurer.java
index 716b644d224ce7d96664c90c7c1012e1b8cd4bdc..b681ead610f58963ec429c6c6d606ed07d6d443a 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/ColumnSettingsConfigurer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/ColumnSettingsConfigurer.java
@@ -16,10 +16,20 @@
 
 package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid;
 
+import static ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.AbstractColumnDefinitionKind.DEFAULT_COLUMN_WIDTH;
+
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+
+import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
+import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
 
 import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAsync;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DisplaySettingsManager;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.IDisplaySettingsGetter;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.BaseEntityModel;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.expressions.filter.FilterToolbar;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.GridCustomColumnInfo;
@@ -66,7 +76,7 @@ class ColumnSettingsConfigurer<T, M extends BaseEntityModel<T>>
     public void showDialog()
     {
         List<ColumnDataModel> settingsModel =
-                AbstractBrowserGrid.createColumnsSettingsModel(browserGrid.getColumnModel(),
+                AbstractBrowserGrid.createColumnsSettingsModel(browserGrid.getFullColumnModel(),
                         filterToolbar.extractFilteredColumnIds());
         AbstractColumnSettingsDataModelProvider provider =
                 new AbstractColumnSettingsDataModelProvider(settingsModel)
@@ -74,8 +84,32 @@ class ColumnSettingsConfigurer<T, M extends BaseEntityModel<T>>
                         @Override
                         public void onClose(List<ColumnDataModel> newColumnDataModels)
                         {
-                            MoveableColumnModel cm = browserGrid.getColumnModel();
-                            AbstractBrowserGrid.updateColumnsSettingsModel(cm, newColumnDataModels);
+                            final ColumnModel newColumnModel =
+                                    createNewColumnModel(newColumnDataModels);
+                            final List<String> filteredColumnIds =
+                                    getFilteredColumnIds(newColumnDataModels);
+                            String gridDisplayTypeID = browserGrid.getGridDisplayTypeID();
+                            DisplaySettingsManager displaySettingsManager =
+                                    viewContext.getDisplaySettingsManager();
+                            displaySettingsManager.storeSettings(gridDisplayTypeID,
+                                    new IDisplaySettingsGetter()
+                                        {
+
+                                            public Object getModifier()
+                                            {
+                                                return browserGrid;
+                                            }
+
+                                            public List<String> getFilteredColumnIds()
+                                            {
+                                                return filteredColumnIds;
+                                            }
+
+                                            public ColumnModel getColumnModel()
+                                            {
+                                                return newColumnModel;
+                                            }
+                                        }, false);
 
                             // refresh the whole grid if custom columns changed
                             List<GridCustomColumnInfo> newCustomColumns = tryGetCustomColumnsInfo();
@@ -86,15 +120,10 @@ class ColumnSettingsConfigurer<T, M extends BaseEntityModel<T>>
                             }
                             boolean customColumnsChanged =
                                     customColumnsMetadataProvider.getHasChangedAndSetFalse();
-                            if (customColumnsChanged)
-                            {
-                                browserGrid.recreateColumnModelAndRefreshColumnsWithFilters();
-                            }
+                            browserGrid.recreateColumnModelAndRefreshColumnsWithFilters();
 
                             boolean columnFiltersChanged =
-                                    browserGrid.rebuildFiltersFromIds(AbstractBrowserGrid
-                                            .getFilteredColumnIds(newColumnDataModels));
-                            browserGrid.saveColumnDisplaySettings();
+                                    browserGrid.rebuildFiltersFromIds(filteredColumnIds);
 
                             if (customColumnsChanged || columnFiltersChanged)
                             {
@@ -130,4 +159,52 @@ class ColumnSettingsConfigurer<T, M extends BaseEntityModel<T>>
                     };
         ColumnSettingsDialog.show(viewContext, provider, browserGrid.getGridDisplayTypeID());
     }
+
+    /**
+     * Creates a new column model based on the specified column data models and the old full column
+     * model as provided by {@link AbstractBrowserGrid#getFullColumnModel()}.
+     */
+    private ColumnModel createNewColumnModel(List<ColumnDataModel> newColumnDataModels)
+    {
+        Map<String, ColumnConfig> oldColumns = getOldColumns();
+        List<ColumnConfig> columns = new ArrayList<ColumnConfig>();
+        for (ColumnDataModel columnDataModel : newColumnDataModels)
+        {
+            String columnID = columnDataModel.getColumnID();
+            ColumnConfig column = oldColumns.get(columnID);
+            if (column == null)
+            {
+                String header = columnDataModel.getHeader();
+                column = new ColumnConfig(columnID, header, DEFAULT_COLUMN_WIDTH);
+            }
+            column.setHidden(columnDataModel.isVisible() == false);
+            columns.add(column);
+        }
+        return new ColumnModel(columns);
+    }
+    
+    private Map<String, ColumnConfig> getOldColumns()
+    {
+        List<ColumnConfig> columns = browserGrid.getFullColumnModel().getColumns();
+        HashMap<String, ColumnConfig> map = new HashMap<String, ColumnConfig>();
+        for (ColumnConfig columnConfig : columns)
+        {
+            map.put(columnConfig.getId(), columnConfig);
+        }
+        return map;
+    }
+    
+    private static List<String> getFilteredColumnIds(List<ColumnDataModel> result)
+    {
+        List<String> filteredColumnsIds = new ArrayList<String>();
+        for (ColumnDataModel model : result)
+        {
+            if (model.hasFilter() && filteredColumnsIds.size() < FilterToolbar.MAX_FILTER_FIELDS)
+            {
+                filteredColumnsIds.add(model.getColumnID());
+            }
+        }
+        return filteredColumnsIds;
+    }
+
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/MoveableColumnModel.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/MoveableColumnModel.java
deleted file mode 100644
index eeb9fecb2bfee7fb49554e37b7ee203e56acda47..0000000000000000000000000000000000000000
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/MoveableColumnModel.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright 2009 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.client.web.client.application.ui.grid;
-
-import java.util.List;
-
-import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
-import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
-
-/**
- * {@link ColumnModel} extension allowing to move columns.
- * 
- * @author Izabela Adamczyk
- */
-public class MoveableColumnModel extends ColumnModel
-{
-
-    public MoveableColumnModel(List<ColumnConfig> columns)
-    {
-        super(columns);
-    }
-
-    /**
-     * Moves the column from one position to another.
-     * 
-     * @param fromIndex the old column index
-     * @param toIndex the new column index
-     */
-    public void move(int fromIndex, int toIndex)
-    {
-        if (fromIndex != toIndex)
-        {
-            ColumnConfig c = configs.get(fromIndex);
-            configs.remove(fromIndex);
-            configs.add(toIndex, c);
-            // one event is triggered when all columns are set
-        }
-    }
-
-    /**
-     * Removes the column from the specified position.
-     */
-    public void remove(int fromIndex)
-    {
-        configs.remove(fromIndex);
-    }
-
-    /**
-     * Adds the column at the specified position.
-     */
-    public void addAt(int index, ColumnConfig columnConfig)
-    {
-        configs.add(index, columnConfig);
-    }
-
-}
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/MoveableColumnModelEvent.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/MoveableColumnModelEvent.java
deleted file mode 100644
index 1105f08181fa1d54e2c8d546f38e3a4d614db364..0000000000000000000000000000000000000000
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/MoveableColumnModelEvent.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2009 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.client.web.client.application.ui.grid;
-
-import com.extjs.gxt.ui.client.event.ColumnModelEvent;
-import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
-
-/**
- * {@link MoveableColumnModel} event.
- * 
- * @author Izabela Adamczyk
- */
-public class MoveableColumnModelEvent extends ColumnModelEvent
-{
-
-    /**
-     * New index of the column.
-     */
-    public int newColIndex;
-
-    public MoveableColumnModelEvent(ColumnModel cm, int colIndex, int newColIndex)
-    {
-        super(cm, colIndex);
-        this.newColIndex = newColIndex;
-    }
-
-}
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/expressions/filter/FilterToolbar.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/expressions/filter/FilterToolbar.java
index bc1aeb2a6c224a670bc8c4d23cfded1af04749cd..20dc48cda1bbb83537b23e4f42510186712f457d 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/expressions/filter/FilterToolbar.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/expressions/filter/FilterToolbar.java
@@ -76,7 +76,7 @@ public class FilterToolbar<T> extends ToolBar implements IDatabaseModificationOb
 
     private final static int MAX_FILTER_FIELDS_ROWS = 4;
 
-    private final static int MAX_FILTER_FIELDS = MAX_FILTER_FIELDS_COLUMNS * MAX_FILTER_FIELDS_ROWS;
+    public final static int MAX_FILTER_FIELDS = MAX_FILTER_FIELDS_COLUMNS * MAX_FILTER_FIELDS_ROWS;
 
     public FilterToolbar(IViewContext<ICommonClientServiceAsync> viewContext, String gridId,
             IDisplayTypeIDProvider displayTypeIDProvider, IDelegatedAction applyFiltersAction)