0

デフォルトでは、JFace TableViewerは、ユーザーが上矢印キーまたは下矢印キーを押すと、選択範囲を上下に移動します。これはほとんどの場合理にかなっていますが、私のアプリケーションではビジネスロジックが異なります。

この動作をオーバーライドするにはどうすればよいですか?KeyListenerを追加しようとしましたが、呼び出されますが、デフォルトのアクションが引き続き発生します。選択が変更されます。

4

1 に答える 1

0

CellNavigationStrategy と一緒に TableViewerFocusCellManager を使用する必要があることがわかりました。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);
于 2013-03-16T11:03:19.980 に答える