1

IButton を備えた HStack があります。HStack の Button を Darg & Drop で移動できます。ドロップ後に IButton が最終的に HStack に統合された後に通知を受け取りたいと考えています。HStack でドラッグされたボタンの位置を特定したいと思います。私が見つけたのは、DropHander (Hstack 用) と DragRepositionStopHandler (ボタン用) だけでした。どちらも、マウス ボタンが離された後にイベントを発生させます。彼の時点では、ボタンは HStack にありません。私の質問は: アイテムがレイア​​ウト ウィジェットに追加された後にイベントを発生させる EventHandler はありますか?

前もって感謝します。

メドロッド

4

1 に答える 1

0

DropEvent が発生すると、Button が配置され、HStack のメンバーになろうとしています。これを実際に止めることはできません。したがって、このイベントを受け取ったときに HStack で行う必要があるのは、イベントのソースを取得して、その getAbsoluteLeft メソッドと getAbsoluteTop メソッドを呼び出すことだけです。これにより、ブラウザ内のボタンの位置がわかります。HSTack 内の位置を取得する場合は、HStack の Left 座標と Top 座標にそれぞれ追加します。次のようなものを使用できます。

HStack hStack = new HStack();
hStack.addDropHandler(new DropHandler() {

        @Override
        public void onDrop(DropEvent event) {
            Object source = event.getSource();
            if (source instanceof BaseWidget) { //This shall cover all Buttons and UI elements.
                int buttonLeftPosition = ((BaseWidget) source).getAbsoluteLeft();
                int buttonTopPosition = ((BaseWidget) source).getAbsoluteTop();
            }
        }
    });
于 2012-08-08T10:45:10.933 に答える