我使用下面的代码片段来清除NatTable数据并在刷新操作上完成重新加载。NatTable在清除数据时保留行选择并重新加载
natTable.getBodyDataProvider().getList().clear();
natTable.getBodyDataProvider().getList().addAll(inputList);
natTable.refresh();
因为数据被清除并重置,所以我无法在刷新前将行选择设置回先前选择的行。
不过,我现在用的是RowSelectionModel成功恢复选择的排序
final RowSelectionModel<T> rowSelectionModel = new RowSelectionModel<T>(bodyLayer.getSelectionLayer(),bodyDataProvider, rowIdAccessor);
bodyLayer.getSelectionLayer().setSelectionModel(rowSelectionModel);
是否有可能恢复行选择时,数据将被清除并重新加载?
我看到PreserveModel上存在的问题:How to use Nebula NatTable's PreserveSelectionModel?但它没有回答我的问题。
感谢有人能提供更多关于此的指针。
问候, SDS
谢谢你的回复Dirk。我正在缓存选择对象,并清除并重新加载我使用rowSelectionProviderNatTable.setSelection(新的StructuredSelection(previousSelectedObj))设置选择;这不会将选择设置回表格。既然NatTable已经拥有了Paintlistener,那么我可以使用DefaultPaintListner吗? – SDS
不明白这个问题。为什么不能添加另一个PaintListener? –
我是NatTable和SWT PaintListener的新手。感谢您是否可以共享代码段来设置行选择。谢谢。 – SDS