在 Eclipse RCP 应用程序中自动调整 NatTable 的大小
Auto Resizing NatTable in Eclipse RCP Application
我正在尝试自动调整 NatTable 的大小。我没有什么东西:
1) 我的 NatTable 只有一列。
2)我偶尔会隐藏 NatTable。
3) NatTable 周围的部件控件在鼠标拖动时自动调整大小。 NatTable 也应该适合大小。
4) 我有 NatTable 单元格的自定义单元格画家。
我尝试使用我的 bodyDataLayer(它基于 GlazedListsDataProvider):
bodyDataLayer.setDefaultRowHeight(35);
bodyDataLayer.setColumnWidthByPosition(0, 100);
bodyDataLayer.setColumnPercentageSizing(true);
但是 nattable 根本没有出现。如果我双击不可见的行,我会得到所需的行。但是 natTable 本身并没有出现。
NatTable 仅在以下情况下出现
bodyDataLayer.setDefaultColumnWidth(SOME_VALUE);
只有默认列宽有效。
我尝试按照官方文档中的建议向 NatTable 添加一个 Paint Listener 以初始化自动调整大小命令。但是一点效果都没有。
我尝试添加
natTable.setLayerPainter(
new NatGridLayerPainter(natTable, SOME_VALUE));
通过 position.But 自动调整列的大小,它也不会呈现任何内容。我想知道如何调整 NatTable 的大小?
通常 DataLayer#setColumnPercentageSizing(true)
应该足以进行百分比调整。
我只能假设偶尔隐藏 NatTable 会产生负面影响,因为这可能会导致百分比值计算错误。 0 的 100% 仍然是 0。
您是在调用 NatTable#setVisible(false)
来隐藏 NatTable 吗?在那种情况下尝试执行以下代码行
natTable.doCommand(new ClientAreaResizeCommand(natTable));
natTable.redraw();
如果这解决了您的问题,请打开工单并报告该问题。在那种情况下,我们似乎需要为 SWT.Show
添加侦听器或覆盖 setVisible()
以在可见性更改时执行这些代码行。
我正在尝试自动调整 NatTable 的大小。我没有什么东西:
1) 我的 NatTable 只有一列。 2)我偶尔会隐藏 NatTable。 3) NatTable 周围的部件控件在鼠标拖动时自动调整大小。 NatTable 也应该适合大小。 4) 我有 NatTable 单元格的自定义单元格画家。
我尝试使用我的 bodyDataLayer(它基于 GlazedListsDataProvider):
bodyDataLayer.setDefaultRowHeight(35);
bodyDataLayer.setColumnWidthByPosition(0, 100);
bodyDataLayer.setColumnPercentageSizing(true);
但是 nattable 根本没有出现。如果我双击不可见的行,我会得到所需的行。但是 natTable 本身并没有出现。 NatTable 仅在以下情况下出现 bodyDataLayer.setDefaultColumnWidth(SOME_VALUE); 只有默认列宽有效。
我尝试按照官方文档中的建议向 NatTable 添加一个 Paint Listener 以初始化自动调整大小命令。但是一点效果都没有。
我尝试添加
natTable.setLayerPainter(
new NatGridLayerPainter(natTable, SOME_VALUE));
通过 position.But 自动调整列的大小,它也不会呈现任何内容。我想知道如何调整 NatTable 的大小?
通常 DataLayer#setColumnPercentageSizing(true)
应该足以进行百分比调整。
我只能假设偶尔隐藏 NatTable 会产生负面影响,因为这可能会导致百分比值计算错误。 0 的 100% 仍然是 0。
您是在调用 NatTable#setVisible(false)
来隐藏 NatTable 吗?在那种情况下尝试执行以下代码行
natTable.doCommand(new ClientAreaResizeCommand(natTable));
natTable.redraw();
如果这解决了您的问题,请打开工单并报告该问题。在那种情况下,我们似乎需要为 SWT.Show
添加侦听器或覆盖 setVisible()
以在可见性更改时执行这些代码行。