2009-08-31 8 views

答えて

0

複合ウィジェットをドラッグする場合は、コンポジットウィジェット内の要素の1つである「ドラッグハンドル」への参照があり、HasAllMouseHandlersを実装する必要があります。これを行う最も簡単な方法は、コンポジットウィジェットがインターフェイスを拡張することです。HasDragHandleコンポジットにメソッドが必要です。 Widget getDragHandle();インターフェイスに明示的には通知されませんが、返されるウィジェットはa HasAllMouseHandlersインターフェイスを実装しているウィジェット(またはランタイムエラーが発生します)。

HasAllMouseHandlersを実装する非複合ウィジェットを直接使用することができます)

私はドラッグハンドルとしてラベルを使用してreccomendだろう(それは、ユーザーが理解してそれだけでスタイリングすることができ、任意のテキストを含める必要はありません。それはフォーム要素ではなく、ドラッグに使用することができます。これは、ユーザーが最も期待しない方法で動作をオーバーロードしているためです。私は本当に無効な要素がドラッグハンドルとしてどのように機能するのかはよく分かりません。要素を無効にすると、マウスのリストが動作しなくなり、ドラッグハンドルとして機能しなくなります。

+0

問題は*無効になっています*要素はマウスイベントを受け付けません。そうでなければDnDを動作させる方法を知っています。 – pvoosten

+1

次に、答えはおそらく:いいえ、無効な​​要素をドラッグアンドドロップすることはできません。無効な要素を移動することが本当に重要な場合は、フォーム要素の上に透明な絶対配置要素を作成し、それを「クリックキャッチャー」として使用することができます(コンポジットとしてラップする) –

+1

BTW:透過要素はおそらく要素0.01の不透明度でクリック可能であることを確認します。 –

0

または、あなたのウィジェットをFocusPanelに入れてみてください。すでにドラッグアンドドロップが有効になっています。私はTextBoxとボタンでこれをやったが、うまくいくようだ。 FocusPanelの内部のウィジェットを無効にすることで、誤って起動されることもありません。

関連する問題