我使用下面的代碼片段來清除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