更改TableViewer的默认键绑定

时间:2013-03-15 17:29:10

标签: java swt jface

默认情况下,当用户按向上或向下箭头键时,JFace TableViewer会上下移动选择。这在大多数情况下都很有意义,但在我的应用程序中,业务逻辑会有所不同。

如何覆盖此行为?我尝试添加一个KeyListener并调用它,但默认操作仍然发生:选择更改。

1 个答案:

答案 0 :(得分:0)

我已经想到我必须使用TableViewerFocusCellManager和CellNavigationStrategy。我希望FocusCellManager是TableViewer的一个属性,但事实并非如此。显然,FocusCellManager在幕后进行布线。

    CellNavigationStrategy navigationStrategy = new CellNavigationStrategy() {
        @Override
        public boolean shouldCancelEvent(ColumnViewer viewer, Event event) {
            return true;
        }
        @Override
        public boolean isNavigationEvent(ColumnViewer viewer, Event event) {
            return false;
        }
    };
    TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(tableViewer, new FocusCellOwnerDrawHighlighter(tableViewer), navigationStrategy);