繁体   English   中英

如何向GWT CellTable添加自定义键盘快捷键

[英]How to add custom keyboard shortcuts to GWT CellTable

我在GWT中创建了一个CellTable,并设置了.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED); 启用键盘功能。

现在,我可以使用键盘上下移动并按空格键与每一行进行交互。 是否可以向此CellTable添加自定义键盘快捷键? 例如,我想更改空格键以充当输入按钮。

您可以抓住任何按键,然后随心所欲。 如果覆盖该键的默认行为,则需要先取消本机事件,然后再执行操作。

CellTable<Object> myTable = new CellTable<Object>();
// build myTable

myTable.addCellPreviewHandler(new Handler<Object>() {

    @Override
    public void onCellPreview(CellPreviewEvent<Object> event) {
        if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ESCAPE) {
            // Get selected object or objects from your SelectionModel
            // Do something with this object or objects, or
            // do something with the selected row or rows
        }
    }

});

小心空格键。 在某些浏览器中,它充当“向下翻页”的角色,因此用户按下按钮时可能不会期望您的自定义行为。

1-您不应该先禁用keyboardSelectionPolicy。

2-您应将此块添加到构造函数或onLoad方法中:

myTable.addCellPreviewHandler(new CellPreviewEvent.Handler<GuiltyAccusationInfoDto>() {
@Override
public void onCellPreview(CellPreviewEvent<GuiltyAccusationInfoDto> event) {
    if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_UP || event.getNativeEvent().getKeyCode() == KeyCodes.KEY_DOWN
            || event.getNativeEvent().getKeyCode() == KeyCodes.KEY_LEFT || event.getNativeEvent().getKeyCode() == KeyCodes.KEY_RIGHT
            || event.getNativeEvent().getKeyCode() == KeyCodes.KEY_PAGEUP || event.getNativeEvent().getKeyCode() == KeyCodes.KEY_PAGEDOWN) {
        selectionModel.setSelected(listOfData.get(table.getKeyboardSelectedRow()), true);
    }
}});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM