2015-10-19 96 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的父组合。 –