2013-03-03 70 views
3

我想完全隱藏TreeViewer中的第一列。如果我用setWidth(0)將它隱藏起來,那麼下一個可見列將會得到三角形和填充。每當第一列被隱藏時,最愚蠢的方式是處置TreeViewer並創建TableViewer。有沒有可靠的方法來解決這個問題?如何在treeviewer中隱藏樹狀層次結構的第一列?

已編輯。插圖:

demonstration

  1. 原始表idlabel
  2. 與隱藏id列的表。寬度是1px。點綴的分隔符非常難看。
  3. 該表格帶有隱藏的id列。寬度是0px。現在第二列有重新格式化的元素。

PS我可以在運行時使用鼠標成功隱藏1 id列(無虛線分隔和第2列看起來是一樣的)。但是如何通過代碼做到這一點?我綁在閱讀JFace的源代碼,但沒有找到任何有用的公共方法。

+0

「_gets triangles and paddings_」是什麼意思?你可以添加一個截圖嗎? – Baz 2013-03-03 10:48:56

+0

有趣的問題。你能告訴我們爲什麼你想這樣做,而不是_just_使用'TableViewer'和自定義'IContentProvider'? – 2013-03-03 12:36:54

+1

嗯。第一列是樹。你想讓我用'TableViewer'實現第一列的樹邏輯嗎?用戶可以隨時隱藏/取消隱藏第1列。 – Ezhik 2013-03-03 12:52:22

回答

0

你必須處理這對於實現中ITreeContentProvider, 你getElements()您應該返回根元素,而是返回其子。 在getParent()你應該返回null爲根。