GEF編集者の数字を外の世界にどのように落としますか?
-
28-10-2019 - |
質問
長い調査とこれを読んだ後
Gefエディターがあり、ユーザーがこのエディターから図(==モデルオブジェクト)を自分の視点で使用できる他のカスタムビューにドラッグアンドドロップできるようにしたい。
GEFエディターのフィギュアキャンバスに独自のドラッグ転送でDragSourceを追加すると、それが可能になります。しかし、副作用として、そして私はこの副作用を望まないので、これはドラッグアンドドロップを使用してエディター内でフィギュアを移動する可能性を無効にします。
調査の結果、この日食フォーラムへの投稿を見つけました。 ですが、解決策は私には受け入れられません。したがって、さらに詳しく調べて、次の純粋なSWTスニペットにたどり着きました。これは、ドラッグソースが追加されると、MouseMoveイベント(gefがエディター内でのドラッグをサポートするために使用するイベント)が発生しなくなることを示しています。 ジェネラコディセタグプレ
これは、SWTの観点から見た通常の動作だと思います。確認しますか?
さらに、Shiftが押されたなどの特定の条件が満たされた場合にのみDragSourceをアクティブ化することで構成されるEclipseフォーラムで提案されたもの以外のこの問題の解決策を本当に探しています(これはDragSourceListener.dragStartメソッドで行われます) event.doitをfalseに設定することにより)
ヘルプ、提案、コメントは大歓迎です。
よろしくお願いします
マヌー
解決
通常のGEFドラッグアンドドロップを拡張して、画像ドラッグのサポートも含めることをお勧めします。
GEFエディター内でアイテムをドラッグすると、それらを図としてドラッグできます(実際には、少し複雑で、Request-Commandパターンを使用しています)。ただし、ドラッグがエディターの境界を超える場合は、を提供できる必要があります。このデータからの画像。
SWTは、次のような複数の異なるドラッグデータ転送のサポートを提供します。 ジェネラコディセタグプレ
したがって、GEF DragTrackerで、このImageTransferをOSドラッグにも含める方法を見つけたいと思います。 DragTrackerは、ドラッグを処理するGEFの方法であり、EditPartの関数getDragTracker()
で返されます
これをどのように行うことができるかは完全にはわかりませんが、OSレベルのイメージも提供できる独自のDragTrackerを拡張することでうまくいくはずです。
ケースはコピー貼り付けと非常によく似ており、基本的なGMFエディターでは、貼り付けアイテムをエディターの外部の画像として、画像を受け入れる任意のツールにコピーできます。