sábado, 17 de marzo de 2012

JSNI… JavaScript Native Interface (GWT)


JSNI es el mecanismo por el cual es posible invocar código javascript nativo (entre los comentarios /*-  -*/) desde código java.


Ejemplo  1. Ventana javascript dentro de código java (gwt).  
public static native void msg(String cad)/*-{
   $wnd.alert(‘Tu dices:  ’+cad);
}-*/;

Es necesario usar la palabra native y colocar las llaves dentro de comentarios para que el compilador java no lo considere un error.

//invoco el código javascript  dentro del código java
public void onModuleLoad(){
msg(“Es un buen día”);
}

Ejemplo 2. Manejar los mensajes tipo consola (firebug):
//defino los métodos  “logs”
public static native void info(Object obj)/*-{
   console.log(obj);
}-*/;

public static native void debug(Object obj)/*-{
   console.debug(obj);
}-*/;

public static native void warning(Object obj)/*-{
   console.warn(obj);
}-*/;

public static native void error(Object obj)/*-{
   console.error(obj);
}-*/;
Ahora invocarlos en código java
public void onModuleLoad(){
info(“iniciando aplicación web…”);
try{
debug(“se ha creado el objeto satisfactoriamente”);
warning(“esperando un error”);
}catch(Exception ex){
error(“error encontrado:  ”+ex+” causa: ”+ex.getCause());
}
}

Para poder ver los mensajes es necesario activar firebug dentro de firefox o chrome. Esto puede ser una buena práctica de testing.


Ejemplo 3. Contenido html

public static native void contenido()/*-{
document.write(“<h1>GWT ejemplos</h1>”);
}-*/;
//invocar el método
public void onModuleLoad(){
       contenido();
      RootPanel.get().add(new  Acceso.getVista());
}

No hay comentarios:

Publicar un comentario

Vibe Coding (la programación vía IA): ¿el futuro de la programación?

Vibe Coding es un nuevo paradigma de programación, una nueva forma de crear código. Es un enfoque emergente en el desarrollo de sof...

Etiquetas

Archivo del blog