Skip to content

Commit 49d3476

Browse files
committed
Fix cannot find correct item in search function.
1 parent 7191853 commit 49d3476

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,6 @@ ui.json
1111
applog
1212
*/catspy.log*
1313
*/settings.json
14-
.DS_Store
14+
.DS_Store
15+
*/bin/
16+
*/*/bin/

ui/log/src/main/kotlin/me/gegenbauer/catspy/log/ui/table/LogTable.kt

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ class LogTable(
162162
val rowIdx = rowIndex % tableModel.pageSize
163163

164164
if (setSelected) {
165-
setRowSelectionInterval(rowIdx, rowIdx)
165+
setInternalSelectedRows(listOf(rowIdx))
166166
}
167167

168168
val viewPort = parent as JViewport
@@ -205,35 +205,40 @@ class LogTable(
205205
}
206206

207207
fun isLastRowSelected(): Boolean {
208+
val selectedRow = getInternalSelectedRow()
208209
return selectedRow == tableModel.rowCount - 1 && tableModel.currentPage == tableModel.pageCount - 1
209210
}
210-
211+
211212
private fun updateRowHeight() {
212213
setRowHeight(getFontMetrics(font).height + 4)
213214
}
214215

215216
override fun moveToNextSeveralRows() {
217+
val selectedRow = getInternalSelectedRow()
216218
if (selectedRow < 0) {
217219
return
218220
}
219221
moveRowToCenter((selectedRow + BATCH_ROW_COUNT_TO_SCROLL).coerceAtMost(tableModel.dataSize - 1), true)
220222
}
221223

222224
override fun moveToPreviousSeveralRows() {
225+
val selectedRow = getInternalSelectedRow()
223226
if (selectedRow < 0) {
224227
return
225228
}
226229
moveRowToCenter((selectedRow - BATCH_ROW_COUNT_TO_SCROLL).coerceAtLeast(0), true)
227230
}
228231

229232
override fun moveToNextRow() {
233+
val selectedRow = getInternalSelectedRow()
230234
if (selectedRow < 0) {
231235
return
232236
}
233237
moveRowToCenter((selectedRow + 1).coerceAtMost(tableModel.dataSize - 1), true)
234238
}
235239

236240
override fun moveToPreviousRow() {
241+
val selectedRow = getInternalSelectedRow()
237242
if (selectedRow < 0) {
238243
return
239244
}
@@ -282,6 +287,16 @@ class LogTable(
282287
}
283288
}
284289

290+
private fun getInternalSelectedRow(): Int {
291+
return tableModel.selectedLogRows.firstOrNull() ?: -1
292+
}
293+
294+
private fun setInternalSelectedRows(rows: List<Int>) {
295+
tableModel.selectedLogRows.clear()
296+
tableModel.selectedLogRows.addAll(rows)
297+
repaint()
298+
}
299+
285300
private fun showComponentInDialog(
286301
logTable: LogTable,
287302
textComponent: JTextComponent,

0 commit comments

Comments
 (0)