Как добавить ViewerFilter в JFace TableViewer, который обновляется динамически?

Я хочу добавить в приложение 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);

Нужно ли мне удалить фильтр и создать новый в слушатель изменения или есть лучшее решение?

6
задан Cœur 2 May 2019 в 12:41
поделиться