【发布时间】: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