如何为 ComboViewer 实现 Viewerfilter?我需要 comboViewer 只显示以我输入的文本开头的元素

问题描述

我已经使用其相应的过滤器功能完成了以下组​​合查看器,但我无法弄清楚 addListener() 部分以及准确放置刷新的位置,因为当我在 ComboViewer 中输入搜索文本时,我需要下拉菜单进行刷新.

ComboViewer comboViewer = new ComboViewer(parent,SWT.DROP_DOWN | SWT.READ_ONLY);
comboViewer.setLabelProider(new LabelProvider(){
@Override
public String getText(final Object element){
  if(element instanceof Object){
    return Object.getName();
  }
  return "";
}
comboViewer.setInput(input);
comboViewer.setFilters(new CustomFil());

ViewerFilter 函数

public class CustomFil extends ViewerFilter {

  private String searchString;

  public void setSearchText(String str) {
   
    this.searchString = str;
  }

  @Override
  public boolean select(Viewer viewer,Object parentElement,Object element) {
    if (searchString == null || searchString.length() == 0) {
      return true;
    }

    if (element.getText().toLower().startsWith(searchString)) {
      return true;
    }
    return false;
  }
} 

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)