Skip to content

Commit 5d12095

Browse files
author
Hanseter
committed
Fix minor navigation bug
1 parent 642ea94 commit 5d12095

1 file changed

Lines changed: 16 additions & 6 deletions

File tree

src/main/kotlin/com/github/hanseter/json/editor/ui/TreeTableNavigation.kt

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ package com.github.hanseter.json.editor.ui
22

33
import javafx.scene.control.TreeItem
44
import javafx.scene.control.TreeTableView
5+
import javafx.scene.control.skin.TreeTableViewSkin
6+
import javafx.scene.control.skin.VirtualFlow
57
import javafx.scene.input.KeyCode
68
import javafx.scene.input.KeyEvent
79

@@ -48,6 +50,10 @@ object TreeTableNavigation {
4850

4951
}
5052

53+
private fun TreeTableView<*>.getVirtualFlow() = (this.skin as? TreeTableViewSkin<*>)?.children
54+
?.filterIsInstance<VirtualFlow<*>>()
55+
?.firstOrNull()
56+
5157
private fun TreeTableView<*>.getSelected() =
5258
selectionModel.selectedCells.firstOrNull()?.treeItem
5359

@@ -86,29 +92,33 @@ object TreeTableNavigation {
8692
}
8793
}
8894

89-
private fun TreeTableView<*>.scrollToCurrentRow() {
90-
scrollTo(selectionModel.selectedIndex)
95+
private fun TreeTableView<*>.scrollToSelectedRow() {
96+
scrollToRow(selectionModel.selectedIndex)
97+
}
98+
99+
private fun TreeTableView<*>.scrollToRow(rowIndex:Int) {
100+
getVirtualFlow()?.scrollTo(rowIndex)
91101
}
92102

93103
private fun TreeTableView<*>.selectFirst() {
94104
selectionModel.selectFirst()
95-
scrollToCurrentRow()
105+
scrollToSelectedRow()
96106
}
97107

98108
private fun TreeTableView<*>.selectLast() {
99109
selectionModel.selectLast()
100-
scrollToCurrentRow()
110+
scrollToSelectedRow()
101111
}
102112

103113

104114
private fun TreeTableView<*>.selectUp() {
105115
selectionModel.selectAboveCell()
106-
scrollToCurrentRow()
116+
scrollToSelectedRow()
107117
}
108118

109119
private fun TreeTableView<*>.selectDown() {
110120
selectionModel.selectBelowCell()
111-
scrollToCurrentRow()
121+
scrollToSelectedRow()
112122
}
113123

114124
private fun TreeTableView<*>.selectLeft() {

0 commit comments

Comments
 (0)