0

当某些行被复制到剪贴板时,我也想每次都复制行标题。我发现了这个: 用于将 SelectionLayer 中的选定数据复制到剪贴板的处理程序类。默认情况下,此处理程序在 SelectionLayer 中注册,不引用标题区域。您可以通过将此处理程序的实例注册到 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()));
}

}

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

4

1 回答 1

1

您需要CopyDataCommandHandlerSelectionLayer. 实际上也应该可以在 上注册它,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

于 2020-12-18T13:05:31.697 回答