【问题标题】:Implement search functionality in Jface Treeviewer在 Jface Treeviewer 中实现搜索功能
【发布时间】:2021-05-13 05:02:15
【问题描述】:

我正在尝试在 Jface Treeviewer 中实现搜索功能,我曾尝试使用 SearchableTreeViewer 但它没有帮助,我想突出显示包含相应文本的所有列

    public void searchTree(String searchtext) {
    
    viewer.collapseAll();
    final int itemCount = viewer.getTree().getItemCount();
    for (int itemIndex = 0; itemIndex < itemCount; itemIndex++) {
        TreeItem item = viewer.getTree().getItem(itemIndex);
            if (item.getData().toString().toUpperCase().contains(searchtext.toUpperCase())) {
                viewer.expandToLevel(item.getData(), TreeViewer.ALL_LEVELS);
                item.setForeground(new Color(Display.getCurrent(), 255, 0, 0));         
            }
            else {
                item.setForeground(new Color(Display.getCurrent(), 0, 0, 0));   
            }
        }
    } 

在这里我可以突出显示父行,但我想要实现的是突出显示确切的列(符号名称)

任何想法突出子节点特定列?

【问题讨论】:

  • TreeViewerColumn 与单独的标签提供程序一起使用可能是最好的方法。使用StyledCellLabelProvider 或其子类之一允许大量样式选择。不要乱用 TreeItem,查看者拥有它们,并且可以随时更改它们。

标签: java treeview swt eclipse-rcp jface


【解决方案1】:

在设置前景色之前尝试对该子项执行 tree.setSelection。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-18
    • 1970-01-01
    • 1970-01-01
    • 2019-05-06
    • 1970-01-01
    相关资源
    最近更新 更多