У меня есть простое CustomTextCellEditor
, которое расширяется AbstractCellEditor
Я пытался пройти по ячейке, если клавиша со стрелкой нажата, когда ячейка либо пуста, либо мы находимся в конце данных ячейки.
textFieldControl.addTraverseListener(new TraverseListener() {
@Override
public void keyTraversed(TraverseEvent e) {
switch (e.keyCode) {
case SWT.ARROW_DOWN:
commit(MoveDirectionEnum.DOWN, true);
break;
case SWT.ARROW_UP:
commit(MoveDirectionEnum.UP, true);
break;
case SWT.ARROW_LEFT:
if(textFieldControl.getText().length()==0 || textFieldControl.getCaretPosition() == 0 )
commit(MoveDirectionEnum.LEFT, true);
break;
case SWT.ARROW_RIGHT:
if(textFieldControl.getText().length()==0 || textFieldControl.getCaretPosition() == textFieldControl.getText().length() )
commit(MoveDirectionEnum.RIGHT, true);
break;
}
}
});
@Override
public boolean activateOnTraversal(IConfigRegistry configRegistry, List<String> configLabels) {
return true;
}
Дело в том, что activateOnTraversal
никогда не вызывается, и хотя да, когда я нажимаю клавишу со стрелкой в соответствующее время, он меняет фокус на нужную ячейку, он не активируется.
Чего мне не хватает?