JFace Tree Viewer:节点扩展的监听器?

时间:2015-11-13 16:43:04

标签: java eclipse swt jface

我有一个JFace树,需要存储在变量中完成扩展之前扩展的每个父元素,因为我需要在Label Provider中为方法扩展元素的引用这似乎是在点击扩展箭头后直接调用的。

我知道ITreeViewerListener接口可用于在完全展开之后获取元素,但不能在扩展时(=单击元素扩展箭头后直接)。这样,当我尝试在Label Provider中使用对扩展元素的引用时,我得到一个nullpointer异常,因为在单击元素扩展箭头后不直接调用Label Provider并且不等待元素完全展开。 / p>

我尝试使用ISelectionChangedListener。遗憾的是,单击其展开箭头时,元素不会被选中,因此不会触发ISelectionChangedListener。

经过一番研究,我发现摇摆有TreeWillExpandListener。这似乎正是我所需要的,但我无法使用我的JFace Tree Viewer。有没有办法使用JFace完成这项工作?

1 个答案:

答案 0 :(得分:0)

感谢greg-449,我仔细研究了内容提供商。

最初,我为Label Provider和Content Provider提供了单独的类。通过创建一个实现ITableLabelProvider和ITreeContentProvider的单个类,我可以将它们连接在一起,从而使我的Label Provider可以访问每个元素父元素而无需选择。