GXT [1.2.1] BUG Filtering ListStore with StoreFilterField gives an error
Hi, i found the following issue in 1.2 upgraded to 1.2.1 and the problem persists.
When i filter in the liststore it shows perfectly in the listview, if i try to filter also using the storefilterfield it gives me a nullpointerexpection, but only if i'm filtering in the liststore (and i need this to show different data depending on the type).
This is my example, that i was testing.
public class Teste10 extends VerticalPanel{
private ListView<ModelTest> listview;
private ListStore<ModelTest> store;
private StoreFilterField<ModelTest> filter;
public Teste10() {
List<ModelTest> list = new ArrayList<ModelTest>();
list.add(new ModelTest("A1","X1"));
list.add(new ModelTest("B1","X1"));
list.add(new ModelTest("C1","X1"));
list.add(new ModelTest("D1","X1"));
list.add(new ModelTest("A2","X2"));
list.add(new ModelTest("B2","X2"));
list.add(new ModelTest("C2","X2"));
list.add(new ModelTest("D2","X2"));
//---------------------------------
listview = new ListView<ModelTest>();
listview.setDisplayProperty("name");
store = new ListStore<ModelTest>();
store.setStoreSorter(new StoreSorter<ModelTest>());
//order by name
store.setSortField("name");
store.add(list);
//model has name and type fields
store.filter("type", "X1");
listview.setStore(store);
filter = new StoreFilterField<ModelTest>()
{
@Override
protected boolean doSelect(Store<ModelTest> store,
ModelTest parent, ModelTest record, String property,
String filter) {
String name = record.get("name");
name = name.toLowerCase();
if (name.startsWith(filter.toLowerCase())) {
return true;
}
return false;
}
};
filter.bind(store);
this.add(filter);
this.add(listview);
}
//This is my model if you need it
class ModelTest extends BaseModelData{
public ModelTest(String name, String type) {
setName(name);
setType(type);
}
public String getName(){
return get("name");
}
public String getType(){
return get("type");
}
public void setName(String name){
set("name", name);
}
public void setType(String type){
set("type", type);
}
}
}
This is the error:
[ERROR] Uncaught exception escaped
java.lang.NullPointerException: null
at com.extjs.gxt.ui.client.data.NestedModelUtil.isNestedProperty(NestedModelUtil.java:68)
at com.extjs.gxt.ui.client.data.BaseModelData.get(BaseModelData.java:42)
at com.extjs.gxt.ui.client.store.Store.applyFilters(Store.java:167)
at com.extjs.gxt.ui.client.widget.StoreFilterField.applyFilters(StoreFilterField.java:89)
at com.extjs.gxt.ui.client.widget.StoreFilterField.onFilter(StoreFilterField.java:97)
at com.extjs.gxt.ui.client.widget.StoreFilterField.validateValue(StoreFilterField.java:115)
at com.extjs.gxt.ui.client.widget.form.Field.validate(Field.java:768)
at com.extjs.gxt.ui.client.widget.form.TextField$1.handleEvent(TextField.java:440)
at com.extjs.gxt.ui.client.util.DelayedTask$1.run(DelayedTask.java:52)
at com.google.gwt.user.client.Timer.fireImpl(Timer.java:164)
at com.google.gwt.user.client.Timer.fireAndCatch(Timer.java:150)
at com.google.gwt.user.client.Timer.fire(Timer.java:142)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
at com.google.gwt.dev.shell.ie.IDispatchImpl.callMethod(IDispatchImpl.java:126)
at com.google.gwt.dev.shell.ie.IDispatchProxy.invoke(IDispatchProxy.java:155)
at com.google.gwt.dev.shell.ie.IDispatchImpl.Invoke(IDispatchImpl.java:294)
at com.google.gwt.dev.shell.ie.IDispatchImpl.method6(IDispatchImpl.java:194)
at org.eclipse.swt.internal.ole.win32.COMObject.callback6(COMObject.java:117)
at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1925)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2966)
at com.google.gwt.dev.GWTShell.pumpEventLoop(GWTShell.java:720)
at com.google.gwt.dev.GWTShell.run(GWTShell.java:593)
at com.google.gwt.dev.GWTShell.main(GWTShell.java:357)
If this is not an BUG and I'm doing something wrong, please correct me.
Cheers.