Eu acredito que boa parte de vocês já viu os demos do GWT na sua página oficial, ficou encantado, baixou o GWT, rodou os samples, criou um projeto simples, fez passo-a-passo algum tutorial “Hello World” e ficou mais encantado ainda.
Porém “o mundo é cruel”, e quando nós caÃmos no mundo real e tentamos desenvolver uma aplicação mais robusta do que um Hello World nos deparamos com alguns problemas um pouco mais complicados.
Vou tentar escrever alguns posts falando de algumas experiências que eu tive com GWT, os problemas que surgiram e como eu resolvi estes problemas.
O primeiro problema que eu tive foi quando tentei utilizar uma biblioteca javascript pré-existente, ou quando eu tentei utilizar alguma funcionalidade que há nos objetos providos pelos browser via javascript (window, document, etc) mas está implementada nos mesmos objetos no nÃvel GWT.
A forma que encontrei para resolver este (e mais um monte de problemas) foi utilizar JSNI – Java Script Native Interface. JSNI está para GWT assim como JNI (Java Native Interface) está para Java. Com JSNI é possÃvel implementar o corpo de métodos GWT utilizando Java Script.
Vejamos um exemplo. Vamos supor que, por alguma razão esquisita, eu queira escrever um método que faça o mesmo que o Window.alert. Vamos chamar este método de meuAlert:
[java]
public native void meuAlert(String mensagem) /*-{
alert(mensagem);
}-*/;
[/java]
Continue reading »