0
默認情況下,當用戶按向上或向下箭頭鍵時,JFace TableViewer會上下移動選擇。這在大多數情況下都是有意義的,但在我的應用程序中,業務邏輯將會不同。更改TableViewer的默認鍵盤綁定
如何覆蓋此行爲?我嘗試添加一個KeyListener並將其調用,但默認操作仍然發生:選擇更改。
默認情況下,當用戶按向上或向下箭頭鍵時,JFace TableViewer會上下移動選擇。這在大多數情況下都是有意義的,但在我的應用程序中,業務邏輯將會不同。更改TableViewer的默認鍵盤綁定
如何覆蓋此行爲?我嘗試添加一個KeyListener並將其調用,但默認操作仍然發生:選擇更改。
我已經想通了,我必須使用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);