私は、メイン クラス (たとえばStockWatcher
) が JSNI を呼び出して、ページの読み込み時に本文内に jQuery UI ダイアログを定義しました。ダイアログはJSNI
関数内で呼び出されます。でonModuleLoad
、私は次のようなことをしますprepareUI();
。JSNI は次のprepareUI
ように実行されます。
public void native prepareUI() /*-{
$wnd.jQuery($doc).ready(function($) {
message = "<div id = 'message'>Don't do this...</div>
$(message).appendTo("body");
$( "#message" ).dialog({
modal: true,
buttons: {
Ok: function() {
$( this ).dialog( "close" );
}
},
close:function() { this.@com.google.gwt.sample.stockwatcher.client.StockWatcher::doit()(); },
autoOpen: true,
show: {
effect: "puff",
duration: 500
},
hide: {
effect: "explode",
duration: 500
}
});
});
}-*/;
これに関数が続きdoit()
ますが、これは非常に単純です。
public void doit() {
Window.alert("Foo");
}
ただし、ページの読み込み時に、ダイアログが正しく表示され、Ok
ボタンをクリックすると正しく閉じても、アラートはポップアップしません (コンソールにエラーは表示されません)。誰でもこれを修正する方法を教えてもらえますか? これが行われるクラスはStockWatcher
パッケージ内にありますcom.google.gwt.sample.stockwatcher.client
(デフォルトの GWTStockWatcher
パッケージ階層を想像してください)。