默认情况下,当用户按向上或向下箭头键时,JFace TableViewer会上下移动选择。这在大多数情况下都很有意义,但在我的应用程序中,业务逻辑会有所不同。
如何覆盖此行为?我尝试添加一个KeyListener并调用它,但默认操作仍然发生:选择更改。
答案 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);