【问题标题】:Auto Resizing Nattable for single row in Eclipse RCP Application自动调整 Eclipse RCP 应用程序中单行的 Nattable 大小
【发布时间】:2017-08-07 04:26:16
【问题描述】:

在应用程序中有一个包含 Nattable 的视图。

在该表中,当我使用过滤器搜索字符串并且只剩下一行时,如果您随后更改列宽,所有列都会更改宽度。

我在其中一个论坛中阅读它,因为选择了该行,因此所有列都将调整大小。

请告诉我如何解决它。

谢谢。

【问题讨论】:

    标签: java eclipse-plugin eclipse-rcp nattable


    【解决方案1】:

    第一个问题,如果您在 NatTable 论坛上阅读过有关此主题的信息,为什么您会在 Stackoverflow 上提出问题而不是写信给论坛?

    第二个问题,为什么选择行?我不知道有任何功能会在过滤时选择一行。

    我认为调整所有选定列的大小是一种常见行为,如果您只有一行并且选择了该行,则意味着所有列都已完全选中。所以恕我直言,这是正确的行为。改变这一点的唯一方法是覆盖 SelectionLayer#handleColumnResizeCommand 以禁用多列调整大小功能。目前没有修改该行为的选项。

    您还可以打开增强票证以获取 NatTable 中包含的此类选项并提供补丁。

    【讨论】:

      【解决方案2】:

      我发现 Dirk 的答案不是很有效。

      我认为 body-rows/cells 的选择与标题区域的选择无关。选择所有列(假设通过选择带有标题矩形的列)与选择数据行完全不同。

      但是,我找到了一个快速修复,它可以非常轻松地关闭所有多重隐藏、-resize 和 -clear 功能。这可能有点脏,但它首先帮助了我:

      class MySelectionLayer extends SelectionLayer {
          public MySelectionLayer(IUniqueIndexLayer underlyingLayer) {
              super(underlyingLayer);
          }
      
          @Override
          public boolean isColumnPositionFullySelected(int columnPosition) {
              return false;
          }
      }
      

      【讨论】:

      • 我的回答对 NatTable 有效。无论您认为它作为一般设计是否正确。如果您认为 NatTable 有问题,请随时为此创建错误票。当它们被完全选中时,您的 hack 还会以不同的方式禁用呈现列,甚至可能更多。
      猜你喜欢
      • 1970-01-01
      • 2014-02-11
      • 2016-01-26
      • 2018-01-26
      • 1970-01-01
      • 1970-01-01
      • 2016-12-02
      • 1970-01-01
      • 2017-06-04
      相关资源
      最近更新 更多