Можно ли вызывать методы Java (GWT) из Javascript?Это также неясно из документации.Все примеры здесь http://code.google.com/intl/ru/webtoolkit/doc/latest/DevGuideCodingBasicsJSNI.html демонстрируют вызов функций Java из функций JSNI (не JS).
ОБНОВЛЕНИЕ 1
Вот код Java:
public class Test_GoogleWeb_JSNI_02 implements EntryPoint {
/**
* This is the entry point method.
*/
public void onModuleLoad() {
}
public static void Callee() {
Window.alert("Callee");
}
}
Вот примеры кнопок вызова в html:
<input type='button' value='Call' onclick='Test02()'>
А вот некоторые функции, которые я пробовал и которые не работали:
<script type="text/javascript">
function Test01() {
@com.inthemoon.tests.client.Test_GoogleWeb_JSNI_02::Callee()();
}
function Test02() {
com.inthemoon.tests.client.Test_GoogleWeb_JSNI_02::Callee()();
}
</script>
ОБНОВЛЕНИЕ 2
Сработало следующее.
Подготовка Java:
public void onModuleLoad() {
Prepare();
}
public static native void Prepare() /*-{
$doc.calleeRunner = @com.inthemoon.tests.client.Test_GoogleWeb_JSNI_02::Callee();
}-*/;
public static void Callee() {
Window.alert("Callee");
}
Звонящий:
function Test03() {
document.calleeRunner();
}
Есть ли лучший способ?