SWT表的"快速查找"

And*_*ith 5 java eclipse swt jface

我有一个显示数据库输出的表,通常可以达到或超过10,000行.我正在寻求实现一个"快速查找"功能,允许用户轻松滚动到他们搜索的值的行.

这个想法与Chrome或Firefox的快速查找非常相似.所以:

  1. 用户点击"CTRL + F"
  2. 弹出一个框:
  3. 快速查找示例
  4. 然后,用户可以快速浏览表格,推送/或/ \到每个匹配的值

我的问题是,这样的表格是否已经存在?我看过NatTableXViewer,但它们看起来都是相当小的变化.

另一个我已经看过的图书馆就是这个非常贴近的版本是Lucene TableSearcher,不幸的是,它是专为过滤而不是突出显示而设计的.然而,这可能是一个值得研究的途径.

And*_*ith 1

我选择的解决方案并不像我希望的那么简单,但性能令人满意。

涉及的表是虚拟表,可能非常大。因此,在加载数据集时,我们启动一个线程以列表的形式构建索引。因为这些表可能非常大(但并不常见),我们为此列表设置了 50mb 的限制,并在达到该限制时停止为其建立索引。对于大多数情况,这是完全可以接受的,但对于较大的表,这意味着虽然它可能会更慢,但它比其他选项要稳定得多。

“搜索”是一个简单的 SWT 文本框,带有 ModifyListener,它遍历列表,对每个条目执行“包含”操作。匹配后,行和列根据索引号计算(0=0,0, 1=0,1 ..)。

如果有一个简单的“插入式”解决方案就好了,但提供的所有桌子都有太多功能。