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 7968626fd687b033652e03060d628373190e540f..63bdcca460f1e11451c5c79b5887dcccdc04e3f5 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 @@ -255,7 +255,7 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod contentPanel.add(grid); contentPanel.setBottomComponent(bottomToolbars); contentPanel.setHeaderVisible(false); - filterToolbar.addListener(Events.AfterLayout, new Listener<BaseEvent>() + pagingToolbar.addListener(Events.AfterLayout, new Listener<BaseEvent>() { public void handleEvent(BaseEvent be) { @@ -279,10 +279,9 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod add(contentPanel); addRefreshDisplaySettingsListener(); - pagingLoader.addLoadListener(new LoadListener()); + pagingLoader.addLoadListener(new LoadListener()); // TODO why do we need this? if (viewContext.isLoggingEnabled()) { - prepareLoggingBetweenEvents(contentPanel, EventPair.RENDER); prepareLoggingBetweenEvents(this, EventPair.LAYOUT); prepareLoggingBetweenEvents(grid, EventPair.LAYOUT); prepareLoggingBetweenEvents(contentPanel, EventPair.LAYOUT); @@ -614,10 +613,11 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod new ListEntitiesCallback(viewContext, callback, resultSetConfig); listEntities(resultSetConfig, listCallback); + + // TODO it is a bit faster for small tables to add this after data are loaded if (bottomToolbars.getItemCount() == 0) { - int addLogID = log("add bottom tool bars"); - bottomToolbars.add(filterToolbar, new RowData(1, -1)); + int addLogID = log("add bottom toolbars"); bottomToolbars.add(pagingToolbar, new RowData(1, -1)); bottomToolbars.layout(true); viewContext.logStop(addLogID); @@ -856,6 +856,15 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod { delegate.configureColumnSettings(); } + + public void showFilters() + { + int logId = log("adding filters"); + bottomToolbars.insert(filterToolbar, 0); + bottomToolbars.layout(); + // TODO filterToolbar.setApplyFiltersAction(createApplyFiltersDelagator()); + viewContext.logStop(logId); + } }; } @@ -1109,6 +1118,8 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod protected final void recreateColumnModelAndRefreshColumnsWithFilters() { + int logId = log("recreateColumnModelAndRefreshColumnsWithFilters"); + ColumnDefsAndConfigs<T> defsAndConfigs = createColumnsDefinition(); // add custom columns List<GridCustomColumnInfo> customColumnsMetadata = @@ -1133,8 +1144,10 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod this.columnDefinitions = defsAndConfigs.getColumnDefs(); ColumnModel columnModel = createColumnModel(defsAndConfigs.getColumnConfigs()); - + refreshColumnsAndFilters(columnModel); + + viewContext.logStop(logId); } private static <T> List<IColumnDefinitionUI<T>> createCustomColumnDefinitions( @@ -1188,7 +1201,9 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod private void changeColumnModel(ColumnModel columnModel) { + int logId = log("grid reconfigure"); grid.reconfigure(grid.getStore(), columnModel); + viewContext.logStop(logId); registerGridSettingsChangesListener(); } @@ -1293,6 +1308,7 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod } updateDefaultRefreshButton(); + if (wasSuccessful) { pagingToolbar.updateDefaultConfigButton(true); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/IBrowserGridActionInvoker.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/IBrowserGridActionInvoker.java index ed068d5005c8babf0d2870b5a78018386e5fe940..4a84f35a2a84dec94bd12e43c5236507461a0c3b 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/IBrowserGridActionInvoker.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/IBrowserGridActionInvoker.java @@ -8,6 +8,8 @@ public interface IBrowserGridActionInvoker void export(); void refresh(); - + void configure(); + + void showFilters(); } 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 38c93728bf4b71f99d356e425819b003b198c9eb..694eb5b19390ae060bcb6a19b5a93c8700547a63 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 @@ -311,7 +311,7 @@ public class FilterToolbar<T> extends ToolBar implements IDatabaseModificationOb private void apply() { - if (disableApply == false) + if (disableApply == false) // FIXME don't do this after first render { applyFiltersAction.execute(); }