[英]How to add a ViewerFilter on a JFace TableViewer that update dynamically?
我想在SWT / JFace應用程序中添加一個搜索功能,當用戶在搜索文本字段中輸入文本時,該功能會過濾TableViewer。
final Text filterText = new Text(parent, SWT.NONE);
filterText.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent arg0) {
//TODO how to update the viewer filter with the new text ?
}
});
TableViewer tableViewer = new TableViewer(...);
ViewerFilter filterViewer = new ViewerFilter() {
@Override
public boolean select(Viewer viewer, Object parentElement, Object element) {
if (filterText.getText() == "") {
return true;
}
//do my stuff to know if element need to be filtered or not
return false;
}
};
tableViewer.addFilter(filterViewer);
我是否需要刪除過濾器並在修改偵聽器中創建一個新過濾器,還是有更好的解決方案?
基本上,您需要有一種方法將輸入的文本傳遞給過濾器,在您選擇的方法中,您應該根據此文本進行過濾,並在文本小部件的監聽器中將文本傳遞給過濾器並調用viewer.refresh()
表。
這個例子可以幫助你: http : //www.vogella.com/tutorials/EclipseJFaceTableAdvanced/article.html#jfacetable_filter
org.eclipse.ui.dialogs.FilteredTree
專門用於此目的。 你為什么不能用它?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.