フィルターjavadocから:
フィルターを Grid 列に追加するには、フィルターの具体的なサブクラスのインスタンスを作成し、コンストラクターに列の ValueProvider を渡し、フィルターを GridFilters に追加します。
コード サンプルは制限が多すぎるようで、おそらくパラメーター化する必要があります。StringFilter には、フィルタリングするモデル オブジェクトのプロパティの ValueProvider を指定する必要があります。以下は、フィルターを使用してグリッドを作成する方法の簡単な概要です。
クラス User があるとしましょう
public class User implements Serializable {
private String name;
private Integer id;
// Setters and getters
}
public interface UserProperties extends PropertyAccess<User> {
@Path("id")
ModelKeyProvider<User> key();
ValueProvider<User, String> name();
}
ユーザーを表示するグリッドを作成するには、次のようにします。
private static final UserProperties props = GWT.create(UserProperties.class);
...
// Create column config
ColumnConfig<User, String> nameCol = new ColumnConfig<User, String>(props.name(), 200, "Name");
// Create column model
List<ColumnConfig<User, ?>> l = new ArrayList<ColumnConfig<User, ?>>();
l.add(nameCol);
ColumnModel<User> cm = new ColumnModel<User>(l);
// Create User store
ListStore<User> store = new ListStore<User>(props.key());
// Create your grid
final LiveGridView<User> liveGridView = new LiveGridView<User>();
liveGridView.setForceFit(true);
Grid<User> view = new Grid<User>(store, cm) {
@Override
protected void onAfterFirstAttach() {
super.onAfterFirstAttach();
// Get grid data
}
};
// Create a String filter for the column
StringFilter<User> nameFilter = new StringFilter<User>(props.name());
// Create a GridFilters
GridFilters<User> filters = new GridFilters<User>();
filters.initPlugin(grid);
filters.setLocal(true);
filters.addFilter(nameFilter);