在 Eclipse 的 NatTables 中复制 headers

Copy headers in NatTables in Eclipse

我想每次也复制行 header,当某些行被复制到剪贴板时。我发现了这个: Handler class 用于将 SelectionLayer 中的选定数据复制到剪贴板。此处理程序默认注册到 SelectionLayer,不引用 header 区域。您可以通过将此处理程序的实例注册到 SelectionLayer 之上的层来覆盖复制数据行为。这样,注册的自定义实例将使用 CopyDataToClipboardCommand,并且不会调用注册的默认处理程序。

但是我不是很了解。我是 运行:

public class CopyDataAction implements IKeyAction {
public void run(NatTable natTable, KeyEvent event) {
   natTable.doCommand(new CopyDataToClipboardCommand("\t", System.getProperty("line.separator"), 
     natTable.getConfigRegistry()));
}

}

可以只更改一些配置吗?还是我应该实现自己的处理程序来覆盖默认行为?

您需要在 SelectionLayer 之上的层上注册一个 CopyDataCommandHandler 实例,该实例是通过引用 header 层创建的。实际上也应该可以在 SelectionLayer 上注册它,因为它应该覆盖默认的注册实例。

没有配置。您需要使用命令处理程序进行自定义。但是现有的实现提供了实现您想要的功能的可能性,而无需创建自定义命令处理程序。

此示例说明如何执行此操作: https://github.com/eclipse/nebula.widgets.nattable/blob/master/org.eclipse.nebula.widgets.nattable.examples/src/org/eclipse/nebula/widgets/nattable/examples/_700_AdditionalFunctions/_751_CopyExample.java