У меня есть некоторые проблемы с ярлыками в таблице.Мне нужно настроить некоторые клавиши: delete - для удаления строк и ввода, чтобы сделать таблицу редактируемой / недоступной для редактирования, стрелки вверх / вниз для переключения режима таблицы с редактируемого на нередактируемый.Я помещаю свою таблицу в прозрачную панель и использую Action.Handler для перехвата событий клавиатуры.Но когда я пишу внутри TextField, TextArea, Combobox, я хотел распространить события на этот компонент (обработка ключа удаления отключить, используя его для удаления текста в TextField, а клавиши вверх / вниз не позволяют открывать Combobox с клавиатуры).Я видел целевой параметр в методе handleAction (), но пока не знаю, как его использовать.Также интересно узнать, как добавлять ярлыки вместо замены.
// adding table inside Panel
tablePanel = new Panel();
tablePanel.setStyleName(Panel.STYLE_LIGHT);
VerticalLayout tableElementsLayout = new VerticalLayout();
tablePanel.setContent(tableElementsLayout);
tablePanel.setSizeFull();
tableElementsLayout.setSizeFull();
vl.addComponent(tablePanel);
vl.setExpandRatio(tablePanel, 1.0f);
tableElementsLayout.add(table);
// --- adding keyboard handler
final Action actionDel = new ShortcutAction("Delete",
ShortcutAction.KeyCode.DELETE, null);
deleteHandler = new Action.Handler() {
@Override
public void handleAction(Action action, Object sender, Object target) {
// I want handle events here when I'm not inside TextField
}
@Override
public Action[] getActions(Object target, Object sender) {
return new Action[] { actionDel };
}
};
tablePanel.addActionHandler(deleteHandler);
Есть идеи, как это сделать?