0

我想以编程方式选择某些行NatTable

NatTable 示例程序中有一些示例代码(在 Classic Examples -> Selection -> Get and set selected objects 下),它使用 ISelectionProvider(在这种情况下为 org.eclipse.nebula.widgets.nattable.selection.RowSelectionProvider)。

ISelectionProvider selectionProvider = new RowSelectionProvider(gridLayer.getBodyLayer().getSelectionLayer(), bodyDataProvider, false);
selectionProvider.setSelection(new StructuredSelection(new Person[] { homer, smithers, nelson }));

从另一个来源我发现了一种更简单的选择行的方法:

natTable.doCommand(new SelectRowsCommand(ILayer layer, int columnPosition, int rowPosition, boolean withShiftMask, boolean withControlMask));

有什么理由不使用第二种方法吗?

4

1 回答 1

0

正如您已经提到的,第一种方法是使用 ISelectionProvider,它通常用于在 Eclipse 应用程序中的部件之间共享选择。

第二种方法是 NatTable 默认值。在内部,选择提供程序也是如此。因此,如果您只关心以编程方式进行选择,则可以在没有选择提供程序的情况下使用它。

于 2014-07-22T08:17:07.427 回答