1

SmartGwt を使用して SDI Web アプリを開発しています。メインウィンドウで、ボタンがクリックされたときにウィンドウをポップアップしたい。ただし、ポップアップ ウィンドウが閉じられると、メイン ウィンドウはイベントをトラップできません。それを行う良い方法はありますか?

IButton showPopupButton = new IButton();
showPopupButton.addClickHandler(new ClickHandler() {
    public void onClick(ClickEvent event) {
        Window popup = new Window();
        popup.show();
        SC.say("The popup was closed"); // UNEXPECT: It shows up just after the popup is shown.
    }
});

現在、引数 BooleanCallback をコンストラクターに宣言できるため、ポップアップ ウィンドウを閉じるときにコールバック関数を呼び出す必要があります。

私は解決策を持っています:

IButton showPopupButton = new IButton();
showPopupButton.addClickHandler(new ClickHandler() {
    public void onClick(ClickEvent event) {
        Window popup = new MyWindow(new BooleanCallback() {
             public void execute(Boolean value) {
                 SC.say("The popup was closed");
             }
        });
        popup.show();
    }
});

しかし、他の誰かが私のためにプラグインを作成し、そのような「コールバック関数」をコンストラクターに使用していない場合、ウィンドウのクローズイベントを追跡するにはどうすればよいですか? VisiblityChangedHandler をポップアップ ウィンドウに登録しようとしましたが、うまくいきません。

4

1 に答える 1

3

ウィンドウを閉じるハンドラーイベントは、閉じるイベントをキャッチします, 試してみてください

Window.addWindowClosingHandler(new ClosingHandler() {

            @Override
            public void onWindowClosing(ClosingEvent event) {


            }
        });
于 2013-05-15T11:28:10.493 に答える