我有一个JFace树,需要存储在变量中完成扩展之前扩展的每个父元素,因为我需要在Label Provider中为方法扩展元素的引用这似乎是在点击扩展箭头后直接调用的。
我知道ITreeViewerListener接口可用于在完全展开之后获取元素,但不能在扩展时(=单击元素扩展箭头后直接)。这样,当我尝试在Label Provider中使用对扩展元素的引用时,我得到一个nullpointer异常,因为在单击元素扩展箭头后不直接调用Label Provider并且不等待元素完全展开。 / p>
我尝试使用ISelectionChangedListener。遗憾的是,单击其展开箭头时,元素不会被选中,因此不会触发ISelectionChangedListener。
答案 0 :(得分:0)
感谢greg-449,我仔细研究了内容提供商。
最初,我为Label Provider和Content Provider提供了单独的类。通过创建一个实现ITableLabelProvider和ITreeContentProvider的单个类,我可以将它们连接在一起,从而使我的Label Provider可以访问每个元素父元素而无需选择。