【问题标题】:Auto Resizing NatTable in Eclipse RCP Application在 Eclipse RCP 应用程序中自动调整 NatTable 的大小
【发布时间】:2015-10-19 21:08:07
【问题描述】:

我正在尝试自动调整我的 NatTable 的大小。我有几样东西:

1) 我的 NatTable 仅包含一列。 2) 我偶尔会隐藏 NatTable。 3) 围绕 NatTable 的 Part Control 会在鼠标拖动时自动调整大小。 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));

通过位置自动调整列的大小。但它也没有呈现任何内容。我想知道如何调整我的 NatTable 的大小?

【问题讨论】:

    标签: eclipse-rcp nattable


    【解决方案1】:

    通常DataLayer#setColumnPercentageSizing(true)应该足以用于百分比大小。

    我只能假设偶尔隐藏 NatTable 会产生负面影响,因为这可能会导致百分比值的错误计算。 0 的 100% 仍然是 0。

    你打电话NatTable#setVisible(false) 是为了隐藏 NatTable 吗?在这种情况下,请尝试执行以下代码行

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

    如果这样可以解决您的问题,请开票并报告该问题。在这种情况下,我们似乎需要为SWT.Show 添加一个侦听器或覆盖setVisible() 以在可见性更改时执行这些代码行。

    【讨论】:

    • hm,我刚刚通过添加可见处理对示例应用程序进行了测试,但它可以在没有修改的情况下工作。查看 NatTable 示例应用程序 -> 教程示例 -> 图层 -> 数据 -> PercentageSizingDataLayerExample。也许它会给你一些提示。或者创建一个带有示例的工单,以便我可以更详细地验证问题。
    • 感谢 Dirk,调整大小命令对我有用。我在布局时排除了 NatTable 的父组合。
    猜你喜欢
    • 2017-08-07
    • 2014-02-11
    • 2016-01-26
    • 2018-01-26
    • 1970-01-01
    • 2017-06-04
    • 1970-01-01
    • 1970-01-01
    • 2015-06-04
    相关资源
    最近更新 更多