2016-12-20 161 views
0

我使用的JFace CheckboxTreeViewer並增加對ICheckStateListener拿到檢查elemets,CheckboxTreeViewer上選中子節點獲取父節點值

我CheckboxTreeViewer結構如下,

P1 
----Child1 
----Child2 
----Child3 
----Child4 
P2 
----Child6 
----Child7 
----Child8 
----Child9 

我的要求是,當我上午查了孩子節點,以獲取其相關父節點

例如

,當我檢查Child8然後獲取父節點P2 當我檢查CHILD2然後得到父節點P1

如何實現這一目標?

回答

1

你得到的是已經從CheckStateChangedEvent傳遞給聽衆通過調用getElement方法改變元素:

public void checkStateChanged(CheckStateChangedEvent event) { 

    Object changed = event.getElement(); 

這是您的樹內容提供商提供的對象。所以,你可以通過詢問內容提供商處獲得其母公司:

ITreeContentProvider provider = (ITreeContentProvider)viewer.getContentProvider(); 

    Object parent = provider.getParent(changed); 

其中viewerCheckboxTreeViewer