Vaadin Container.Filter使用可变数量的标准

时间:2012-07-17 14:19:20

标签: vaadin

刚刚使用以下代码实现了新的Container.Filter:

Filter f  = 
new Or(new SimpleStringFilter(Columns.SEARCH.id(), "rpm-diastolic", true, false),  
new Or(new SimpleStringFilter(Columns.SEARCH.id(), "rpm-systolic", true, false)),
new Or(new SimpleStringFilter(Columns.SEARCH.id(), "rpm-weight", true, false))) ;
container.addContainerFilter(f);

并且工作正常。

现在我想使用以下内容来构建动态构建过滤器所需的标准:

List<String> filters;
for(String filter : filters) {
    Filter f  = new Or(new SimpleStringFilter(Columns.SEARCH.id(), filter, true, false) );
    container.addContainerFilter(f);
}

如何为此代码执行此操作无效...

1 个答案:

答案 0 :(得分:1)

行,

我能够通过这样简单地将数组传递给Or构造函数来实现这一点:

Filter[] filtersToAdd = new Filter[filters.size()];
for(String filterString : filters) {
filtersToAdd[i++] = 
    new Or(new SimpleStringFilter(Columns.SEARCH.id(), filterString, true, false));
}
Filter f = new Or(filtersToAdd);
container.addContainerFilter(f);