选中子节点上的 CheckboxTreeViewer 获取父节点值
CheckboxTreeViewer on checked Children node get Parent node value
我正在使用 JFace CheckboxTreeViewer 并添加 ICheckStateListener 来获取选中的元素,
我的CheckboxTreeViewer结构如下,
P1
----Child1
----Child2
----Child3
----Child4
P2
----Child6
----Child7
----Child8
----Child9
我的要求是当我检查子节点时获取其相关父节点
例如
当我检查 Child8 然后得到父节点 p2
当我检查 Child2 然后得到父节点 p1
如何实现?
您通过调用 getElement
方法获取从 CheckStateChangedEvent
传递给侦听器的已更改元素:
public void checkStateChanged(CheckStateChangedEvent event) {
Object changed = event.getElement();
这是您的树内容提供者提供的对象。所以你可以通过询问内容提供者来获取它的父级:
ITreeContentProvider provider = (ITreeContentProvider)viewer.getContentProvider();
Object parent = provider.getParent(changed);
其中 viewer
是 CheckboxTreeViewer
。
我正在使用 JFace CheckboxTreeViewer 并添加 ICheckStateListener 来获取选中的元素,
我的CheckboxTreeViewer结构如下,
P1
----Child1
----Child2
----Child3
----Child4
P2
----Child6
----Child7
----Child8
----Child9
我的要求是当我检查子节点时获取其相关父节点
例如
当我检查 Child8 然后得到父节点 p2 当我检查 Child2 然后得到父节点 p1
如何实现?
您通过调用 getElement
方法获取从 CheckStateChangedEvent
传递给侦听器的已更改元素:
public void checkStateChanged(CheckStateChangedEvent event) {
Object changed = event.getElement();
这是您的树内容提供者提供的对象。所以你可以通过询问内容提供者来获取它的父级:
ITreeContentProvider provider = (ITreeContentProvider)viewer.getContentProvider();
Object parent = provider.getParent(changed);
其中 viewer
是 CheckboxTreeViewer
。