2013-02-21 61 views
0

我想過濾沒有在文本框中輸入的樹,但是當事件被觸發時。 我試着子類StoreFilterField這樣的:GWT StoreFilterField - 自動過濾器

class MyStoreFilter<M extends ModelData> extends StoreFilterField<M>{ 
public MyStoreFilter() { 
      super(); 
     } 

     public void startFilter(){ 
      super.onFilter(); 
     } 


     @Override 
     protected boolean doSelect(Store<M> store, M parent, M record, 
       String property, String filter) { 
      String name = record.get("name"); 
      name = name.toLowerCase(); 
      if (name.startsWith(filter.toLowerCase())) 
       return true; 
      else 
       return false; 
     } 

    }; 

當我想篩選我的樹:

MyStoreFilter<ModelData> f=new MyStoreFilter<ModelData>(); 
f.setRawValue(myText); 
f.bind(store); 
f.startFilter(); 

但不工作,我的過濾器顯示我的樹的所有項目。 有什麼不對?

回答

0

我解決了自己加入這個構造:

public MyStoreFilter(String f) { 
    filtro=f; 
    setAutoValidate(true); 
    setValidateOnBlur(false); 
    setTriggerStyle("x-form-clear-trigger"); 
    filter = new StoreFilter<M>() { 
     public boolean select(Store<M> store, M parent, M model, String property) { 
     String v = filtro; 
     return doSelect(store, parent, model, property, v); 
     } 
    }; 
}