我想模拟一个用户在TreeTableView的TreeItem上按F2。如果为列设置了默认编辑器,则应该启动编辑器。
given:
def cllr = App.instance.fxmlController
def iterator = new TreeIterator(cllr.treeTableView.root)
// NB TreeIterator is a simple depth-first stack-based iterator
int nTreeItems = 0
TreeItem treeItemToModify = null
while (iterator.hasNext()) {
nTreeItems++
TreeItem ti = iterator.next()
// choose tree item "at random"...
if( nTreeItems == 10 ){
treeItemToModify = ti
}
}
assert treeItemToModify != null
// make sure showing
for( TreeItem ti = treeItemToModify; ti.parent != null; ti = ti.parent ){
ti.parent.setExpanded( true )
}
// set selection on the tree item
int row = cllr.treeTableView.getRow( treeItemToModify )
cllr.treeTableView.selectionModel.select( row, cllr.treeTableView.columns.get( 0 ) )
// set focus on this tree item
cllr.treeTableView.focusModel.focus( row, cllr.treeTableView.columns.get( 0 ) )
when:
clickOn( cllr.treeTableView )
type( KeyCode.F2 )
sleep( 3000 )
then:
... 当它运行时,我看到光标根本不移动。。。它位于控件的中间,而不是列0(树列)上。我看到所选内容变为另一个项目,而不是所选的、聚焦的项目,然后
type( KeyCode.F2 )
目前什么也没做。
我试过各种排列
cllr.treeTableView.requestFocus()
我不知道的主要问题是如何使机器人的光标移动到
TreeItem
我已经选择并专注于。
clickOn
被注释掉,将F2应用到所选的右侧
特雷特姆