Java EclipseRCP应用程序中自动调整单行Nattable的大小
在应用程序中,有一个包含Nattable的视图 在该表中,当我使用过滤器搜索字符串时,只剩下一行,如果更改列宽,则所有列都会更改列宽 我在一个论坛上读到它,因为该行被选中,所以所有列的大小都将调整 请让我知道如何解决它Java EclipseRCP应用程序中自动调整单行Nattable的大小,java,eclipse-plugin,eclipse-rcp,nattable,Java,Eclipse Plugin,Eclipse Rcp,Nattable,在应用程序中,有一个包含Nattable的视图 在该表中,当我使用过滤器搜索字符串时,只剩下一行,如果更改列宽,则所有列都会更改列宽 我在一个论坛上读到它,因为该行被选中,所以所有列的大小都将调整 请让我知道如何解决它 谢谢。第一个问题,如果你在NatTable论坛上读到了关于这个话题的文章,为什么你会提出关于Stackoverflow的问题而不是写信给论坛 第二个问题,为什么选择该行?我不知道有什么功能会在筛选时选择一行 我认为调整所有选定列的大小是一种常见行为,如果只有一行且该行已选定,则意
谢谢。第一个问题,如果你在NatTable论坛上读到了关于这个话题的文章,为什么你会提出关于Stackoverflow的问题而不是写信给论坛 第二个问题,为什么选择该行?我不知道有什么功能会在筛选时选择一行 我认为调整所有选定列的大小是一种常见行为,如果只有一行且该行已选定,则意味着所有列都已完全选定。所以我认为这是正确的行为。改变这一点的唯一方法是重写SelectionLayerhandleColumnResizeCommand以禁用多列调整大小功能。目前没有修改该行为的选项
您还可以打开一个增强票证,将这样一个选项包括在NatTable中,并提供一个补丁。我发现Dirk的答案并不真正有效 我认为正文行/单元格的选择与标题区域的选择无关。所有列的选择——比如说,通过选择标题为矩形的列,与选择数据行完全不同 然而,我发现了一个快速修复,它可以很容易地关闭所有的多重隐藏、调整大小和清除功能。这可能有点脏,但它首先帮助了我:
class MySelectionLayer extends SelectionLayer {
public MySelectionLayer(IUniqueIndexLayer underlyingLayer) {
super(underlyingLayer);
}
@Override
public boolean isColumnPositionFullySelected(int columnPosition) {
return false;
}
}
我的回答对NatTable有效。无论你认为它作为一个设计是否正确。如果您认为NatTable中的错误,请随意为此创建错误通知单。当列被完全选中时,您的hack也会以不同的方式禁用呈现列,甚至可能禁用更多。