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 bfdfcce38df93faeaa3c4863c38f268116c5dfc6..5c5d41990b933324d0c671c0402a3c442e1fd7c9 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 ad4dfc4ab86e7444e0b348378c613b7a0d2a73d3..2265736819498671a7f846885f417b963c3d9831 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 559ffc9b66a8598cbf7a8b3111641b945a2374d1..160f1ee70d207b8e29317b83380773b11d8f5d58 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 b681ead610f58963ec429c6c6d606ed07d6d443a..02fa5d0f91068a41f1225afcc6c5e0b994635110 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 3728330f7f072c85ceca0449238a875f54575cef..f1dfc2907c6c107be8bf5c29af3dc1affdac891a 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 c749eb5fa9dee3cea6400227586ee9230c423d24..62fb6e6b4f140c992c4dbd708c006ba9d5b31378 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();