diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/ListColumnFilterWidget.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/ListColumnFilterWidget.java index d899507e54350f2ee9fcdce8d0f2d200dc08ab98..e2d5270dff232c42590c8c1d87204b9d4e411f3e 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/ListColumnFilterWidget.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/ListColumnFilterWidget.java @@ -63,6 +63,8 @@ public class ListColumnFilterWidget<T> extends ComboBox<ModelData> implements private final DelayedTask delayedFilterApplierTask; + private boolean disableApply = false; + public ListColumnFilterWidget(IColumnDefinition<T> filteredField, final IDelegatedAction onFilterAction, List<String> distinctValues) { @@ -76,7 +78,10 @@ public class ListColumnFilterWidget<T> extends ComboBox<ModelData> implements @Override public void selectionChanged(SelectionChangedEvent<ModelData> event) { - onFilterAction.execute(); + if (disableApply == false) + { + onFilterAction.execute(); + } } }); @@ -89,7 +94,7 @@ public class ListColumnFilterWidget<T> extends ComboBox<ModelData> implements setToolTip(label); setTemplate(GWTUtils.getTooltipTemplate(MODEL_DISPLAY_KEY, ModelDataPropertyNames.TOOLTIP)); - GWTUtils.setupAutoWidth(this); + GWTUtils.setupAutoWidth(this); } private static DelayedTask createFilterApplierTask(final IDelegatedAction onFilterAction) @@ -210,10 +215,11 @@ public class ListColumnFilterWidget<T> extends ComboBox<ModelData> implements @Override public void reset() { - // Simple 'f.reset()' causes automatic filter application, - // but we want to reload data only once after all filters are cleared. - setRawValue(getEmptyText()); - applyEmptyText(); + // 'super.reset()' causes automatic filter application, + // but we want to reload data only once after all filters are cleared + disableApply = true; + super.reset(); + disableApply = false; } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/TextColumnFilterWidget.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/TextColumnFilterWidget.java index 1ecb8205339e63d97a40bc450d573fc9b89d0fba..d096a19ba7d7c6b506a1a669f8ff30f08a324491 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/TextColumnFilterWidget.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/TextColumnFilterWidget.java @@ -40,6 +40,8 @@ public class TextColumnFilterWidget<T/* entity */> extends StoreFilterField<Mode private final IDelegatedAction onFilterAction; + private boolean disableApply = false; + /** @param onFilterAction callback executed when data are about to be filtered. */ public TextColumnFilterWidget(IColumnDefinition<T> filteredField, IDelegatedAction onFilterAction) @@ -71,8 +73,11 @@ public class TextColumnFilterWidget<T/* entity */> extends StoreFilterField<Mode @Override protected void onFilter() { - super.onFilter(); - onFilterAction.execute(); + if (disableApply == false) + { + super.onFilter(); + onFilterAction.execute(); + } } /** NOTE: We do not use this method, data are filtered on the server side */ @@ -103,9 +108,10 @@ public class TextColumnFilterWidget<T/* entity */> extends StoreFilterField<Mode @Override public void reset() { - // Simple 'f.reset()' causes automatic filter application, - // but we want to reload data only once after all filters are cleared. - setRawValue(getEmptyText()); - applyEmptyText(); + // 'super.reset()' causes automatic filter application, + // but we want to reload data only once after all filters are cleared + disableApply = true; + super.reset(); + disableApply = false; } }