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 53bf45b53cef0886b48a31e259ebea9f840d8e5f..808429c73fe0f652685a2257b11e93fbaf0994b3 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 @@ -37,7 +37,6 @@ import com.extjs.gxt.ui.client.event.BaseEvent; import com.extjs.gxt.ui.client.event.ButtonEvent; import com.extjs.gxt.ui.client.event.Events; import com.extjs.gxt.ui.client.event.Listener; -import com.extjs.gxt.ui.client.event.LoadListener; import com.extjs.gxt.ui.client.event.SelectionChangedEvent; import com.extjs.gxt.ui.client.event.SelectionListener; import com.extjs.gxt.ui.client.store.ListStore; @@ -281,7 +280,6 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod add(contentPanel); addRefreshDisplaySettingsListener(); - pagingLoader.addLoadListener(new LoadListener()); // TODO why do we need this? if (viewContext.isLoggingEnabled()) { ComponentEventLogger logger = new ComponentEventLogger(viewContext, getId()); 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 effcaeb956d33ff05e35343496e33155a9bd1205..40c56397b62e62478b976ad1f08ee222dfb5db52 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 @@ -112,12 +112,19 @@ public class FilterToolbar<T> extends ToolBar implements IDatabaseModificationOb public void postRefresh(boolean wasSuccessful) { updateFilterFields(); - // TODO 2009-11-24, Tomasz Pylak: IMPR this apply is usually unnecessary and - // causes screen flickering - if (isCustomFilterSelected()) - { - apply(); - } + // TODO 2010-04-16, Piotr Buczek: not needed if column filter is selected + // Because of this code there is a reload of data visible on the client + // when user shows filter toolbar. It is quite fast as data are taken from cache + // but the loading mask is visible. + // On the other hand if we don't perform apply here column filters are not + // working properly. Somehow they are not refreshed correctly first load of + // data. To reproduce it show Database Instance and Code columns and filters in + // experiment detail sample browser: + // - Database Instance filter should be a combo box filter + // - Database Instance filter removes all letters on first usage (after refresh) + // - Code filter looses focus on first usage after refresh + // Refreshing the data fixes all problems. + apply(); } }); applyTool.addSelectionListener(new SelectionListener<ButtonEvent>() @@ -287,8 +294,8 @@ public class FilterToolbar<T> extends ToolBar implements IDatabaseModificationOb } if (changed) { - // contentPanel of AbstractBrowserGrid is listening on this layout and synchronizes size - layout(); + // contentPanel of AbstractBrowserGrid was listening on this layout and synchronized size + layout(); // TODO 2010-04-16, Piotr Buczek: second layout } }