From a29868ab4d762d283b9c744c78c91848ab3ecf67 Mon Sep 17 00:00:00 2001 From: Zlatin Balevsky Date: Fri, 27 May 2022 16:27:09 +0100 Subject: [PATCH] preserve selection when updating results, try to fix GitHub issue #139 --- gui/griffon-app/views/com/muwire/gui/SearchTabView.groovy | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gui/griffon-app/views/com/muwire/gui/SearchTabView.groovy b/gui/griffon-app/views/com/muwire/gui/SearchTabView.groovy index 1bc43ba3..932ac84e 100644 --- a/gui/griffon-app/views/com/muwire/gui/SearchTabView.groovy +++ b/gui/griffon-app/views/com/muwire/gui/SearchTabView.groovy @@ -718,6 +718,9 @@ class SearchTabView { void addPendingResults() { JTable table = builder.getVariable("senders-table") int selectedRow = table.getSelectedRow() + int selectedRowToModel = -1 + if (selectedRow >= 0) + selectedRowToModel = table.rowSorter.convertRowIndexToModel(selectedRow) int newRowsStart = -1 int newRowsEnd = -1 @@ -752,6 +755,11 @@ class SearchTabView { table.model.fireTableDataChanged() } } + + if (selectedRowToModel >= 0) { + int selectedRowToView = table.rowSorter.convertRowIndexToView(selectedRowToModel) + table.selectionModel.setSelectionInterval(selectedRowToView, selectedRowToView) + } } private void displayPendingResults(List pending) {