1

質問

ドラッグアンドドロップ操作を開始するときにツリービューアーがフォーカスを取得しないようにする方法はありますか?または、ドラッグ時に選択が変更されないようにする別の方法を知っていますか?

状況

  • カテゴリー1
    • 注1.1
  • カテゴリー2
    • 注2.1

カテゴリを表示するTreeViewer「カテゴリ」と、選択したカテゴリ内のメモを表示する1つのTableViewer「メモ」があります。「メモ」ビューのコンテンツは、データバインディングを介して「カテゴリ」ビューを選択することで提供されます。

問題

「カテゴリ」ビューでカテゴリ1を選択すると、「メモ」ビューにメモ1.1が表示されます。問題は、カテゴリ2をNote 1.1にドラッグしたいときに、「categories」ビューでCategory 2が選択され、「notes」ビューにNote 2.1しか表示されなくなったため、Note1.1にカテゴリをドロップできなくなったことです。

4

1 に答える 1

0

ドラッグを開始したいときに、カテゴリビューがフォーカスを取得し、選択範囲が変更されるのを止めることはできないと思います。これは、コントロールの自然な動作です。選択の発火を遅らせるためのいくつかの型破りな方法があるかもしれませんが、それらは完全には機能しないかもしれません。

ただし、問題を解決するには、ドラッグドロップサポートを構成して、「カテゴリ2」のドラッグを開始する(およびその結果として選択を変更する)ときに、最初に「カテゴリ1」(「カテゴリ1」を再選択する必要があります)にカーソルを合わせる必要があるようにすることをお勧めします。 )そしてそれはあなたが「注1.1」に「カテゴリー2」をドロップすることを可能にするでしょう。

これは、カテゴリビューアにドロップサポートも追加しDropTargetListener#dragOver(DropTargetEvent)、マウスがカーソルを置いているカテゴリに選択を設定することを意味します。これにより、ドラッグしたカテゴリをその上にドロップできるように、正しいメモが表示され始めます。

于 2013-02-20T06:36:41.647 に答える