2015-10-19 124 views
1

我正在嘗試自動調整我的NatTable大小。我有幾件事:在Eclipse RCP應用程序中自動調整NatTable的大小

1)我的NatTable只包含一列。 2)我偶爾隱藏NatTable。 3)圍繞NatTable auto的Part Control調整鼠標拖動大小。 NatTable也應該適合大小。 4)我有自定義細胞畫家NatTable細胞。

我試着與我的bodyDataLayer(這是基於GlazedListsDataProvider):

bodyDataLayer.setDefaultRowHeight(35); 
    bodyDataLayer.setColumnWidthByPosition(0, 100); 
    bodyDataLayer.setColumnPercentageSizing(true); 

但nattable不顯示在所有。如果我雙擊不可見的行,我會得到所需的行。但是natTable本身並沒有出現。只有在 bodyDataLayer.setDefaultColumnWidth(SOME_VALUE); 只有默認列寬有效。

我試圖添加一個Paint Listener到NatTable來初始化正式文檔中建議的自動調整大小命令。但它根本沒有效果。

我嘗試添加

natTable.setLayerPainter(
      new NatGridLayerPainter(natTable, SOME_VALUE)); 

與列的自動調整大小由position.But也呈現什麼。我想知道如何調整我的NatTable?

回答

2

通常DataLayer#setColumnPercentageSizing(true)應該足夠用於百分比大小。

我只能假設隱藏NatTable偶爾有負面影響,因爲這可能會導致錯誤的百分比值的計算。 0的100%仍爲0.

你打電話給NatTable#setVisible(false)來隱藏NatTable嗎?在這種情況下,請嘗試執行以下代碼行

natTable.doCommand(new ClientAreaResizeCommand(natTable)); 
natTable.redraw(); 

如果問題解決了,請打開票證並報告該問題。在這種情況下,我們似乎需要爲SWT.Show添加一個偵聽器或覆蓋setVisible()以在可見性更改時執行這些代碼行。

+0

hm,我剛剛通過添加可視化處理來測試示例應用程序,但它在那裏沒有任何修改就可以工作。查看NatTable示例應用程序 - >教程示例 - >圖層 - >數據 - > PercentageSizingDataLayerExample。也許它會給你一些提示。或者用示例創建票證,以便我可以更詳細地驗證問題。 –

+0

謝謝德克,做Resize命令爲我工作。佈局時,我排除了NatTable的父組合。 –

相關問題