SWT Browser: ¿el navegador definitivo?

No, no es el navegador definitivo, pero es muy versátil. El componente SWT Browser encapsula un navegador en un componente SWT que se puede utilizar en cualquier interfaz de usuario basada en SWT. Llegados a este punto, parece algo bastante útil. Permite mostrar páginas web en aplicaciones de escritorio, simplemente incluyendo el componente en la interfaz de la aplicación.

Pero SWT Browser es mucho más. En este post, Lars Voggel muestra cómo ejecutar código Javascript en un componente SWT Browser. También muestra cómo llamar a código Java de nuestra aplicación desde el código Javascript que ejecuta el navegador.

Cada vez es más frecuente que nuestra aplicación se integre con servicios que provienen de la web: Google Maps, redes sociales, etc. En este sentido, SWT Browser nos puede ayudar enormemente en esta tarea.

Más componentes SWT

Habitualmente, si uno está desarrollando plug-ins, en algún momento necesita lidiar con la interfaz de usuario. En ese momento puede que nos demos cuenta de que los componentes SWT de los que disponemos no nos satisfacen totalmente, o directamente no existe un componente adecuado para la información que queremos mostrar.

Bueno, pues esto les pasa habitualmente a los desarrolladores de los diferentes proyectos Eclipse. Por ello han decidido que en lugar de que esos componentes queden ocultos en los proyectos donde se originaron, se agrupen dentro del proyecto Nebula. Nebula es un proyecto Eclipse (como lo puede ser CDT o JDT) destinado a albergar componentes SWT y JFace que se originan tanto en otros proyectos Eclipse como en proyectos independientes.

Así que si has hecho algún componente «customizado» SWT o has construido algún componente JFace para algún propósito específico, puedes publicarlo en el proyecto Nebula.

Problema con los botones de Eclipse en Ubuntu 9.10

Acabo de instalar Ubuntu 9.10. Ya comentaré lo que funciona y lo que no funciona en mi portátil (HP dv3550es), pero esta entrada viene motivada por otra cosa. Una de las primeras acciones siempre que reinstalo Ubuntu es bajarme la última versión de eclipse. Cuando tengo Eclipse funcionando, ya puedo respirar tranquilo (incluso aunque tenga que pasarme sin muchas otras cosas hasta que tenga tiempo de solucionarlas).

En esta ocasión me instalo Eclipse 3.5.1. Concretamente me bajo el paquete Classic. Este paquete viene ya con PDE y el código fuente de la plataforma y de JDT, con lo que te sitúa en buena disposición a la hora de realizar plug-ins. Lo arranco sobre un workspace nuevo, por no tener problemas con recursos que dependen de plug-ins aún no instalados. Inmediatamente, me pongo a instalar los plug-ins que necesito. Marco algunos de la categoría Modeling (UML2 y OCL para un proyecto en el que estamos trabajando), CDT, Ruby (para una de las asignaturas que impartimos), Subversive y Mylyn.

Voy a pulsar el botón Next para continuar una vez seleccionados los que necesito del repositorio de Galileo, y me sorprendo al ver que el botón se pulsa, sí, pero se queda pulsado. Y no realiza ninguna acción. Pruebo a darle al enter, y entonces sí reacciona. Voy utilizando el enter para ir pasando de una ventana a otra hasta dejar mi Eclipse instalando lo que le he dicho.

Entonces me pongo a buscar quién se ha encontrado el mismo error. Rápidamente me encuentro con alguna entrada donde se comenta el problema. Se trata de un problema en Ubuntu 9.10 Karmic Koala debido a la versión de GTK que incluye esta nueva versión (GTK 2.18). No es que GTK tenga un bug ni nada parecido. Simplemente han cambiado el modo de gestionar ventanas hijas de la aplicación, pero la versión SWT de Eclipse 3.5 no fue pensada con esta nueva característica en mente. El resultado es un comportamiento de SWT erróneo con esta versión de GTK.

En este bug se comenta en detalle el problema. En la versión 3.6M3 ya está solucionado (acabo de descargarlo y probarlo). Estará también solucionado en 3.5.2 y en la próxima versión de mantenimiento (parece que para la próxima semana, porque la de esta semana aún no funciona). Mientras tanto el problema puede solventarse arrancando Eclipse desde un script que contenga lo siguiente:

#!/bin/sh
export GDK_NATIVE_WINDOWS=1
/opt/eclipse-3.5/eclipse

En otras páginas he visto true en la variable de entorno en lugar de 1.

Cuando mi Eclipse termina de instalar, lo cierro, me creo el script y lo lanzo desde ahí (yo además le tengo que pasar el bin del jdk de 64 bits con la opción -vm). Observo que los botones funcionan, pero el aspecto está raro:

menu
¿Qué ves extraño en esta imagen?

La respuesta está en el espacio a la izquierda de las diferentes opciones del menú: no aparecen los iconos. Por lo visto en Ubuntu 9.10 se puede especificar que no se muestren los iconos en los menús. En mi caso era un poco raro, porque en los menús Aplicaciones y Lugares se mostraban, pero no en Sistema. En Sistema>Preferencias>Apariencia, en la pestaña Interfaz, marcando la casilla Mostrar iconos en los menús, todo vuelve a la normalidad.

menu2

Hope it helps!