0

プログラムで特定の行を選択したいNatTable

ISelectionProvider (この場合は org.eclipse.nebula.widgets.nattable.selection.RowSelectionProvider) を使用するサンプル コードが、NatTable サンプル プログラム(Classic Examples -> Selection -> Get and set selected objects の下) にあります。

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));

2 番目のアプローチを使用しない理由はありますか?

4

1 に答える 1

0

すでに述べたように、最初のアプローチは ISelectionProvider を使用することです。これは通常、Eclipse アプリケーションのパーツ間で選択を共有するために使用されます。

2 番目のアプローチは、NatTable のデフォルトです。内部的には、セレクション プロバイダーも同じことを行います。したがって、プログラムによる選択のみを行う場合は、選択プロバイダーなしで使用しても問題ありません。

于 2014-07-22T08:17:07.427 に答える