From 89f6be61d243fae26783f1512e70ed3039260f7a Mon Sep 17 00:00:00 2001
From: gpawel <gpawel>
Date: Tue, 27 Sep 2011 09:12:31 +0000
Subject: [PATCH] LMS-2532 Save column sorting order for grids in display
 settings

SVN: 23094
---
 .../framework/DisplaySettingsManager.java     | 92 ++++++++++++++-----
 .../framework/IDisplaySettingsGetter.java     |  8 +-
 .../ui/grid/AbstractBrowserGrid.java          | 59 +++++++++---
 .../ui/grid/ColumnSettingsConfigurer.java     | 13 ++-
 .../shared/basic/dto/ColumnSetting.java       | 13 +++
 .../DisplaySettingsManagerTest.java           | 16 ++--
 6 files changed, 152 insertions(+), 49 deletions(-)

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 bfdfcce38df..5c5d41990b9 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
@@ -40,6 +40,8 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DisplaySettings;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityVisit;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PortletConfiguration;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.RealNumberFormatingParameters;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SortInfo;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SortInfo.SortDir;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.WebClientConfiguration;
 
 /**
@@ -128,19 +130,13 @@ public class DisplaySettingsManager
      * Register listeners which monitors all the column configuration changes and makes them
      * persistent.
      */
-    public void registerGridSettingsChangesListener(final String displayTypeID,
-            final IDisplaySettingsGetter grid)
+    public <C> void registerGridSettingsChangesListener(final String displayTypeID,
+            final IDisplaySettingsGetter<C> grid)
     {
         Listener<ColumnModelEvent> listener = new Listener<ColumnModelEvent>()
             {
                 public void handleEvent(ColumnModelEvent event)
                 {
-                    // When FAKE width change event is fired display settings are NOT updated.
-                    // check: AbstractBrowserGrid.refreshColumnHeaderWidths()
-                    if (isFakeWidthChangeEvent(event))
-                    {
-                        return;
-                    }
                     if (event.getType() == Events.ColumnMove)
                     {
                         // Update full column model from event triggered by change in trimmed model.
@@ -222,26 +218,33 @@ public class DisplaySettingsManager
      * display type ID. Stored settings (if any) override the current settings.
      */
     public GridDisplaySettings tryApplySettings(String displayTypeID, ColumnModel columnModel,
-            List<String> filteredColumnIds)
+            List<String> filteredColumnIds, SortInfo<?> sortInfo)
     {
         List<ColumnSetting> columnSettings = getColumnSettings(displayTypeID);
         if (columnSettings == null)
         {
             return null;
         }
-        return tryApplySettings(columnSettings, columnModel, filteredColumnIds);
+        return tryApplySettings(columnSettings, columnModel, filteredColumnIds, sortInfo);
     }
 
     public static class GridDisplaySettings
     {
-        List<ColumnConfig> columnConfigs;
+        private List<ColumnConfig> columnConfigs;
+
+        private List<String> filteredColumnIds;
 
-        List<String> filteredColumnIds;
+        private String sortField;
 
-        public GridDisplaySettings(List<ColumnConfig> columnConfigs, List<String> filteredColumnIds)
+        private SortDir sortDir;
+
+        public GridDisplaySettings(List<ColumnConfig> columnConfigs,
+                List<String> filteredColumnIds, String sortField, SortDir sortDirection)
         {
             this.columnConfigs = columnConfigs;
             this.filteredColumnIds = filteredColumnIds;
+            this.sortField = sortField;
+            this.sortDir = sortDirection;
         }
 
         public List<ColumnConfig> getColumnConfigs()
@@ -263,6 +266,26 @@ public class DisplaySettingsManager
         {
             this.filteredColumnIds = filteredColumnIds;
         }
+
+        public String getSortField()
+        {
+            return sortField;
+        }
+
+        public void setSortField(String sortField)
+        {
+            this.sortField = sortField;
+        }
+
+        public SortDir getSortDir()
+        {
+            return sortDir;
+        }
+
+        public void setSortDir(SortDir sortDir)
+        {
+            this.sortDir = sortDir;
+        }
     }
 
     /**
@@ -272,12 +295,18 @@ public class DisplaySettingsManager
      *            defaults
      */
     private static GridDisplaySettings tryApplySettings(List<ColumnSetting> columnSettings,
-            ColumnModel columnModel, List<String> filteredColumnIds)
+            ColumnModel columnModel, List<String> filteredColumnIds, SortInfo<?> sortInfo)
     {
         boolean refreshNeeded = false;
         List<ColumnConfig> newColumnConfigList = new ArrayList<ColumnConfig>();
         Set<String> ids = new HashSet<String>();
         List<String> newFilteredColumnIds = new ArrayList<String>();
+
+        String sortField =
+                sortInfo == null ? null : sortInfo.getSortField() == null ? null : sortInfo
+                        .getSortField().getIdentifier();
+        SortDir sortDirection = sortInfo == null ? null : sortInfo.getSortDir();
+
         for (int i = 0; i < columnSettings.size(); i++)
         {
             ColumnSetting columnSetting = columnSettings.get(i);
@@ -308,6 +337,18 @@ public class DisplaySettingsManager
                 {
                     newFilteredColumnIds.add(columnID);
                 }
+
+                SortDir columnSortDir = columnSetting.getSortDir();
+                if (columnSortDir != null)
+                {
+                    if (sortInfo == null || columnSortDir != sortInfo.getSortDir()
+                            || columnID.equals(sortInfo.getSortField().getIdentifier()) == false)
+                    {
+                        sortField = columnID;
+                        sortDirection = columnSetting.getSortDir();
+                        refreshNeeded = true;
+                    }
+                }
             }
         }
         // add columns for which no settings were stored at the end
@@ -325,19 +366,20 @@ public class DisplaySettingsManager
         }
         if (refreshNeeded)
         {
-            return new GridDisplaySettings(newColumnConfigList, newFilteredColumnIds);
+            return new GridDisplaySettings(newColumnConfigList, newFilteredColumnIds, sortField,
+                    sortDirection);
         } else
         {
             return null;
         }
     }
 
-    public void storeSettings(final String displayTypeID, final IDisplaySettingsGetter grid,
+    public <C> void storeSettings(final String displayTypeID, final IDisplaySettingsGetter<C> grid,
             boolean delayed)
     {
         int delayMs = delayed ? QUITE_TIME_BEFORE_SETTINGS_SAVED_MS : 1; // zero not allowed
         storeSettings(displayTypeID, grid.getColumnModel(), grid.getFilteredColumnIds(),
-                grid.getModifier(), delayMs);
+                grid.getModifier(), grid.getSortState(), delayMs);
     }
 
     public void storeActiveTabSettings(String tabGroupDisplayID, String selectedTabDisplayID,
@@ -347,10 +389,11 @@ public class DisplaySettingsManager
         updater.executeDelayed(QUITE_TIME_BEFORE_SETTINGS_SAVED_MS);
     }
 
-    private void storeSettings(String displayTypeID, ColumnModel columnModel,
-            List<String> filteredColumnIds, Object modifier, int delayMs)
+    private <C> void storeSettings(String displayTypeID, ColumnModel columnModel,
+            List<String> filteredColumnIds, Object modifier, SortInfo<C> sortInfo, int delayMs)
     {
-        List<ColumnSetting> columnSettings = createColumnsSettings(columnModel, filteredColumnIds);
+        List<ColumnSetting> columnSettings =
+                createColumnsSettings(columnModel, filteredColumnIds, sortInfo);
         updateColumnSettings(displayTypeID, columnSettings, modifier);
         updater.executeDelayed(delayMs);
     }
@@ -366,8 +409,8 @@ public class DisplaySettingsManager
         updater.executeDelayed(1); // 0 not allowed
     }
 
-    private static List<ColumnSetting> createColumnsSettings(ColumnModel columnModel,
-            List<String> filteredColumnIdsList)
+    private static <C> List<ColumnSetting> createColumnsSettings(ColumnModel columnModel,
+            List<String> filteredColumnIdsList, SortInfo<C> sortInfo)
     {
         Set<String> filteredColumnIds = new HashSet<String>(filteredColumnIdsList);
         List<ColumnSetting> columnSettings = new ArrayList<ColumnSetting>();
@@ -380,6 +423,11 @@ public class DisplaySettingsManager
             columnSetting.setWidth(columnConfig.getWidth());
             boolean hasFilter = filteredColumnIds.contains(columnConfig.getId());
             columnSetting.setHasFilter(hasFilter);
+            if (sortInfo != null && sortInfo.getSortField() != null
+                    && columnSetting.getColumnID().equals(sortInfo.getSortField().getIdentifier()))
+            {
+                columnSetting.setSortDir(sortInfo.getSortDir());
+            }
             columnSettings.add(columnSetting);
         }
         return columnSettings;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/IDisplaySettingsGetter.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/IDisplaySettingsGetter.java
index ad4dfc4ab86..22657368194 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/IDisplaySettingsGetter.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/IDisplaySettingsGetter.java
@@ -20,16 +20,20 @@ import java.util.List;
 
 import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
 
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SortInfo;
+
 /**
  * The interface with which {@link DisplaySettingsManager} gets the current settings.
  * 
- * @author     Franz-Josef Elmer
+ * @author Franz-Josef Elmer
  */
-public interface IDisplaySettingsGetter
+public interface IDisplaySettingsGetter<T>
 {
     ColumnModel getColumnModel();
 
     List<String> getFilteredColumnIds();
 
     Object getModifier();
+
+    SortInfo<T> getSortState();
 }
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 559ffc9b66a..160f1ee70d2 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
@@ -611,7 +611,6 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod
     {
         final RpcProxy<PagingLoadResult<M>> proxy = new RpcProxy<PagingLoadResult<M>>()
             {
-
                 @Override
                 protected void load(Object loadConfig, AsyncCallback<PagingLoadResult<M>> callback)
                 {
@@ -621,6 +620,7 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod
         final BasePagingLoader<PagingLoadResult<M>> newPagingLoader =
                 new BasePagingLoader<PagingLoadResult<M>>(proxy);
         newPagingLoader.setRemoteSort(true);
+
         return newPagingLoader;
     }
 
@@ -689,8 +689,8 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod
         DefaultResultSetConfig<String, T> resultSetConfig = new DefaultResultSetConfig<String, T>();
         resultSetConfig.setLimit(limit);
         resultSetConfig.setOffset(offset);
-        SortInfo<T> translatedSortInfo = translateSortInfo(sortInfo, columnDefinitions);
         resultSetConfig.setAvailableColumns(columnDefinitions);
+        SortInfo<T> translatedSortInfo = translateSortInfo(sortInfo, columnDefinitions);
         Set<String> columnIDs = getIDsOfColumnsToBeShown();
         resultSetConfig.setIDsOfPresentedColumns(columnIDs);
         resultSetConfig.setSortInfo(translatedSortInfo);
@@ -732,20 +732,24 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod
         return translateSortInfo(sortInfo.getSortField(), sortInfo.getSortDir(), availableColumns);
     }
 
-    private static <T> SortInfo<T> translateSortInfo(String dortFieldId,
+    private static <T> SortInfo<T> translateSortInfo(String sortFieldId,
             com.extjs.gxt.ui.client.Style.SortDir sortDir,
             Set<IColumnDefinition<T>> availableColumns)
     {
         IColumnDefinition<T> sortColumnDefinition = null;
-        if (dortFieldId != null)
+        if (sortFieldId != null)
         {
             Map<String, IColumnDefinition<T>> availableColumnsMap = asColumnIdMap(availableColumns);
-            sortColumnDefinition = availableColumnsMap.get(dortFieldId);
-            assert sortColumnDefinition != null : "sortColumnDefinition is null";
+            sortColumnDefinition = availableColumnsMap.get(sortFieldId);
         }
+
         SortInfo<T> sortInfo = new SortInfo<T>();
-        sortInfo.setSortField(sortColumnDefinition);
-        sortInfo.setSortDir(translate(sortDir));
+        if (sortColumnDefinition != null)
+        {
+            sortInfo.setSortField(sortColumnDefinition);
+            sortInfo.setSortDir(translate(sortDir));
+        }
+
         return sortInfo;
     }
 
@@ -1365,6 +1369,10 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod
         {
             newColumnModel = createColumnModel(settings.getColumnConfigs());
             rebuildFiltersFromIds(settings.getFilteredColumnIds());
+            if (settings.getSortDir() != null && settings.getSortField() != null)
+            {
+                setGridSortInfo(settings.getSortField(), settings.getSortDir());
+            }
         } else
         {
             filterToolbar.rebuildColumnFilters(getInitialFilters());
@@ -1384,7 +1392,7 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod
     {
         List<IColumnDefinition<T>> initialFilters = getInitialFilters();
         return viewContext.getDisplaySettingsManager().tryApplySettings(getGridDisplayTypeID(),
-                columnModel, extractColumnIds(initialFilters));
+                columnModel, extractColumnIds(initialFilters), getGridSortInfo());
     }
 
     private void changeColumnModel(ColumnModel columnModel)
@@ -1463,9 +1471,9 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod
         pagingLoader.load(0, PAGE_SIZE);
     }
 
-    private IDisplaySettingsGetter createDisplaySettingsUpdater()
+    private IDisplaySettingsGetter<T> createDisplaySettingsUpdater()
     {
-        return new IDisplaySettingsGetter()
+        return new IDisplaySettingsGetter<T>()
             {
                 public ColumnModel getColumnModel()
                 {
@@ -1482,6 +1490,10 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod
                     return AbstractBrowserGrid.this;
                 }
 
+                public SortInfo<T> getSortState()
+                {
+                    return AbstractBrowserGrid.this.getGridSortInfo();
+                }
             };
     }
 
@@ -1623,7 +1635,7 @@ 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();
+        IDisplaySettingsGetter<T> settingsUpdater = createDisplaySettingsUpdater();
         viewContext.getDisplaySettingsManager().storeSettings(getGridDisplayTypeID(),
                 settingsUpdater, false);
     }
@@ -1659,12 +1671,25 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod
     }
 
     // returns info about sorting in current grid
-    private SortInfo<T> getGridSortInfo()
+    SortInfo<T> getGridSortInfo()
     {
         ListStore<M> store = grid.getStore();
         return translateSortInfo(store.getSortField(), store.getSortDir(), columnDefinitions);
     }
 
+    private void setGridSortInfo(String sortField, SortDir sortDir)
+    {
+        com.extjs.gxt.ui.client.data.SortInfo old = grid.getStore().getSortState();
+        grid.getStore().setDefaultSort(sortField, translate(sortDir));
+
+        if (old.getSortDir() != translate(sortDir)
+                || (sortField == null && old.getSortField() != null)
+                || (sortField != null && sortField.equals(old.getSortField()) == false))
+        {
+            grid.getStore().sort(sortField, translate(sortDir));
+        }
+    }
+
     /** @return the number of all objects cached in the browser */
     public int getTotalCount()
     {
@@ -1845,6 +1870,14 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod
                     }
                 }
             });
+        editorGrid.addListener(Events.SortChange, new Listener<BaseEvent>()
+            {
+                public void handleEvent(BaseEvent be)
+                {
+                    saveColumnDisplaySettings();
+                }
+            });
+
         return editorGrid;
     }
 
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 b681ead610f..02fa5d0f910 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
@@ -34,6 +34,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.Base
 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;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ResultSetFetchConfig;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SortInfo;
 
 /**
  * A class that manages the configuring of column settings in the AbstractBrowserGrid.
@@ -92,9 +93,8 @@ class ColumnSettingsConfigurer<T, M extends BaseEntityModel<T>>
                             DisplaySettingsManager displaySettingsManager =
                                     viewContext.getDisplaySettingsManager();
                             displaySettingsManager.storeSettings(gridDisplayTypeID,
-                                    new IDisplaySettingsGetter()
+                                    new IDisplaySettingsGetter<T>()
                                         {
-
                                             public Object getModifier()
                                             {
                                                 return browserGrid;
@@ -109,6 +109,11 @@ class ColumnSettingsConfigurer<T, M extends BaseEntityModel<T>>
                                             {
                                                 return newColumnModel;
                                             }
+
+                                            public SortInfo<T> getSortState()
+                                            {
+                                                return browserGrid.getGridSortInfo();
+                                            }
                                         }, false);
 
                             // refresh the whole grid if custom columns changed
@@ -182,7 +187,7 @@ class ColumnSettingsConfigurer<T, M extends BaseEntityModel<T>>
         }
         return new ColumnModel(columns);
     }
-    
+
     private Map<String, ColumnConfig> getOldColumns()
     {
         List<ColumnConfig> columns = browserGrid.getFullColumnModel().getColumns();
@@ -193,7 +198,7 @@ class ColumnSettingsConfigurer<T, M extends BaseEntityModel<T>>
         }
         return map;
     }
-    
+
     private static List<String> getFilteredColumnIds(List<ColumnDataModel> result)
     {
         List<String> filteredColumnsIds = new ArrayList<String>();
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ColumnSetting.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ColumnSetting.java
index 3728330f7f0..f1dfc2907c6 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ColumnSetting.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ColumnSetting.java
@@ -19,6 +19,7 @@ package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 import java.io.Serializable;
 
 import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SortInfo.SortDir;
 
 /**
  * Class storing personalised display settings for a table column. This class implements
@@ -41,6 +42,18 @@ public class ColumnSetting implements ISerializable
 
     private int width;
 
+    private SortDir sortDir;
+
+    public SortDir getSortDir()
+    {
+        return sortDir;
+    }
+
+    public void setSortDir(SortDir sortDir)
+    {
+        this.sortDir = sortDir;
+    }
+
     public final String getColumnID()
     {
         return columnID;
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/clientnonjs/DisplaySettingsManagerTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/clientnonjs/DisplaySettingsManagerTest.java
index c749eb5fa9d..62fb6e6b4f1 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/clientnonjs/DisplaySettingsManagerTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/clientnonjs/DisplaySettingsManagerTest.java
@@ -34,9 +34,9 @@ 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.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.framework.DisplaySettingsManager.GridDisplaySettings;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DisplaySettingsManager.IDelayedUpdater;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.IDisplaySettingsGetter;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ColumnSetting;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DisplaySettings;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.WebClientConfiguration;
@@ -119,7 +119,7 @@ public class DisplaySettingsManagerTest extends AssertJUnit
         final ColumnModel columnModel = new ColumnModel(new ArrayList<ColumnConfig>());
         List<String> filterColumnIds = new ArrayList<String>();
         GridDisplaySettings result =
-                manager.tryApplySettings(DISPLAY_TYPE_ID, columnModel, filterColumnIds);
+                manager.tryApplySettings(DISPLAY_TYPE_ID, columnModel, filterColumnIds, null);
         assertNull(result);
         context.assertIsSatisfied();
     }
@@ -137,7 +137,7 @@ public class DisplaySettingsManagerTest extends AssertJUnit
 
         List<String> filterColumnIds = new ArrayList<String>();
         GridDisplaySettings result =
-                manager.tryApplySettings(DISPLAY_TYPE_ID, columnModel, filterColumnIds);
+                manager.tryApplySettings(DISPLAY_TYPE_ID, columnModel, filterColumnIds, null);
         assertNull(result);
         context.assertIsSatisfied();
     }
@@ -155,7 +155,7 @@ public class DisplaySettingsManagerTest extends AssertJUnit
 
         List<String> filterColumnIds = new ArrayList<String>();
         GridDisplaySettings result =
-                manager.tryApplySettings(DISPLAY_TYPE_ID, columnModel, filterColumnIds);
+                manager.tryApplySettings(DISPLAY_TYPE_ID, columnModel, filterColumnIds, null);
         assertMatches(result.getColumnConfigs(), createColumnConfig(c1Setting), c2);
         context.assertIsSatisfied();
     }
@@ -173,7 +173,7 @@ public class DisplaySettingsManagerTest extends AssertJUnit
 
         List<String> filterColumnIds = new ArrayList<String>();
         GridDisplaySettings result =
-                manager.tryApplySettings(DISPLAY_TYPE_ID, columnModel, filterColumnIds);
+                manager.tryApplySettings(DISPLAY_TYPE_ID, columnModel, filterColumnIds, null);
         assertMatches(result.getColumnConfigs(), c2, c1);
 
         context.assertIsSatisfied();
@@ -192,7 +192,7 @@ public class DisplaySettingsManagerTest extends AssertJUnit
 
         List<String> filterColumnIds = new ArrayList<String>();
         GridDisplaySettings result =
-                manager.tryApplySettings(DISPLAY_TYPE_ID, columnModel, filterColumnIds);
+                manager.tryApplySettings(DISPLAY_TYPE_ID, columnModel, filterColumnIds, null);
         assertMatches(result.getColumnConfigs(), c2);
 
         context.assertIsSatisfied();
@@ -210,7 +210,7 @@ public class DisplaySettingsManagerTest extends AssertJUnit
 
         List<String> filterColumnIds = new ArrayList<String>();
         GridDisplaySettings result =
-                manager.tryApplySettings(DISPLAY_TYPE_ID, columnModel, filterColumnIds);
+                manager.tryApplySettings(DISPLAY_TYPE_ID, columnModel, filterColumnIds, null);
         assertMatches(result.getColumnConfigs(), c2, c1);
 
         context.assertIsSatisfied();
@@ -229,7 +229,7 @@ public class DisplaySettingsManagerTest extends AssertJUnit
 
         List<String> filterColumnIds = new ArrayList<String>();
         GridDisplaySettings result =
-                manager.tryApplySettings(DISPLAY_TYPE_ID, columnModel, filterColumnIds);
+                manager.tryApplySettings(DISPLAY_TYPE_ID, columnModel, filterColumnIds, null);
         assertMatches(result.getColumnConfigs(), createColumnConfig(c1Setting), c2);
 
         context.assertIsSatisfied();
-- 
GitLab