PDA

View Full Version : [FIXED] Beta3 StoreFilterField doesn't clear the filter when the built-in TriggerClick occurs



CPD
28 Feb 2012, 7:09 AM
Create a StoreFilterField<ModelObject> and then assign it to a TreeStore (or any store really). Create the tree, and display the StoreFilterField.

When typing into the field, the tree will filter. When the "clear" button is clicked, the filter is not cleared.

The constructor for StoreFilterField adds a new TriggerClickHandler that references the internal method onTriggerClick


protected void onTriggerClick(TriggerClickEvent event) {
setValue(null);
onFilter();
}


The onFilter() method applyFilters on the store, but the applyFilters method uses the following code:


protected void applyFilters(Store<T> store) {
if (getText().length() > 0) {
store.addFilter(filter);
store.setEnableFilters(true);
} else {
store.removeFilter(filter);
}
}


The clearing of the filter is only done if the text length is 0, but the onTriggerClick method sets the value to null, not the text.

This behaviour exists in the demo http://sencha.com/examples-dev/#ExamplePlace:filtertree

vokiel
29 Feb 2012, 8:10 AM
Yes I can confirm the trigger wiring is missing. Workaround i did:



filter.addTriggerClickHandler(new TriggerClickHandler() {
@Override
public void onTriggerClick(final TriggerClickEvent event) {
store.removeFilters();
filter.setText("");
}
});

WesleyMoy
1 Mar 2012, 5:18 PM
Thanks for the detailed description; this should go a long way toward our ironing this bug out. I've filed an issue against the team and will update with thread with any progress.

darrellmeyer
19 Mar 2012, 1:58 PM
The issue is now fixed in SVN (rev 2426).

WesleyMoy
28 Mar 2012, 2:17 PM
This bug has been fixed in the Ext GWT 3.0 Release Candidate. Please upgrade your copy of Ext GWT and try your test case again. While we're confident that we've addressed this issue, please reply if you notice any continued problems after upgrading. Again, thanks for taking the time to report this bug.