2010-06-06 58 views
2

這個問題聽起來可能不重要,但我正在努力解決這個問題,所以,如果可以,請幫助。所以,這裏是:我使用CheckboxTreeViewer有一些很好的理由。我已經谷歌 - 它爲一些類的用途,我目前能夠檢查/取消選中所有節點的所有兒童,並通過自定義實施StyledCellLabelProvider供應商實時搜索後保留選擇。迄今爲止都很好。但是,到目前爲止,我無法在顯示小部件並調用查看器的setInput()方法之後以編程方式選擇樹查看器的一個或多個元素。Jface的CheckboxTreeViewer如何設置初始選擇

所以,讓我們假設,例如,該樹將有10個主節點,並在節點5個葉子6.我的問題是如何設置的3葉的選中狀態?

謝謝你。

回答

0

看看這個:http://akravets.blogspot.com/2009/08/disabling-nodes-in-checkboxtreeviewer.html,可能有一定的幫助。它可能不是100%的解決方案,但我解釋瞭如何跳過一些節點。

+0

感謝ü的答覆。不幸的是,正如在指定鏈接中創建的代碼所證實的那樣,使用checkboxtreeviewer對於我的口味來說過於複雜和模糊。相反,我已經適應了一個普通的treeviewer允許各種選擇模式,我已經創建了一個文本區域來啓用該樹中的搜索。搜索是在觀看者的模型上執行的,並且選擇模式在觀看者的控制(常規樹)上得到增強。那麼問題就解決了,而且我也有強烈的感覺,不要再使用checkboxtreeviewer:D。乾杯。 – hypercube 2010-09-02 06:22:47

3

您應該使用樹查看器的ICheckedStateProvider。例如:

checkboxTreeViewer.setCheckStateProvider(new TreeCheckedStatedProvider()); 

private class TreeCheckedStatedProvider implements ICheckStateProvider { 

    @Override 
    public boolean isChecked(Object element) { 
     return false; 
    } 

    @Override 
    public boolean isGrayed(Object element) { 
     return false; 
    } 

}