2013-10-01 50 views
0

我花了幾個小時,並沒有找到解決方案,對我來說似乎是自然操作: 我如何強制TreeViewer顯示樹的Visiple部分給定元件? 換句話說,我如何將它滾動到第一個要顯示的元素是特定的點?JFace TreeViewer,編程設置元素頂部

_______________ 
A 
B 
C 
_______________ 

And I want to visualize B as the first element: 
_______________ 
B 
C 

_______________ 
(So the tree is scrolled down, programatically). 

我真的很感謝這裏的一些幫助。 感謝很多提前:)


Thankis格雷格, 但setInput設置,不改變根?我想是不是設置根至B,這導致的例子是:

__________ 
B 

_ ___ (在左上角和它的孩子掛着B)。

但是爲了在頂部(不是左上角)顯示B元素,所以相當於向上或向下滾動它。 換句話說,我不想改變模型,我想應用視圖來顯示模型的其他部分。

回答

0

調用TreeViewer.setInput指定二級元素列表而不是頂級元素(並確保您的內容提供者getElements方法理解這一點)。

如果您在Eclipse中使用此功能,您可以使用org.eclipse.ui.part.DrillDownComposite,該功能會添加使用setInput方法更改根(例如在新建/文件嚮導中使用)的「進入」,「返回」和「主頁」按鈕, 。

+0

謝謝你greg, 但setInput,不改變根?我想要的不是將根設置爲B,這會導致該示例爲: __________ B __________ (B位於左上方,其子懸掛)。 但是爲了在頂部(不是左上角)顯示B元素,所以相當於向上或向下滾動它。 換句話說,我不想改變模型,我想應用視圖來顯示模型的其他部分。 –

+0

請參閱說明以獲得有意義的閱讀:P –

+0

可能會滾動樹的唯一內容是'setSelection(xxx,true)'或'showItem(TreeItem)',但它們只確保項目可見。 –