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 をポップアップ ウィンドウに登録しようとしましたが、うまくいきません。