Una de las más bien recibidas mejoras en el Módulo de Scripting durante los últimos meses, fue el desarrollo realizado para la creación de scripts con interfaz visual.
Siempre se han podido realizar scripts con una interfaz visual, es algo vital para la interacción del usuario con nuestro programa, pero nunca había sido tan sencillo. La forma de realizarlo anteriormente era excesivamente complicada, se perdía mucho tiempo y no cumplía siempre su propósito.
El desarrollo actual que se ha realizado es el de dar soporte a las interfaces creadas con un programa conocido como Abeille.

Ejemplo de interfaz incluyendo una imagen
Este programa es muy sencillo de usar, cualquiera puede aprender a manejarlo rápidamente. Corresponde a una cuadrícula en la cual vamos situando los elementos que necesitamos, definiendo sus características y dándoles nombre. Solo quedará guardarlos con extensión .xml y gvSIG podrá usarlos en nuestros scripts.
El uso de este programa lo introdujimos en las 11as Jornadas de gvSIG, podéis ver el video aquí (8m15segs y mucho más sobre cómo programar usándolo):
Pero las mejoras no se quedan ahí, se ha desarrollado una librería para que cargar nuestra interfaz sea posible con un par de líneas.
from gvsig import * from libs.formpanel import FormPanel class Panel(FormPanel): def __init__(self): FormPanel.__init__(self, script.getResource("ui_basic.xml")) def btnCalcular_click(self, *args): self.txtField.setText("Clicked!") print "Clicked!" def btnClose_click(self,*args): self.hide() def main(*args): l = Panel() l.showTool("Visual") pass
Además se ha facilitado mucho la interacción entre nuestro script y esta interfaz visual, dando soporte tanto para los click de ratón sobre los elementos como botones, así como listeners para realizar acciones cuando estos elementos de la interfaz cambien de una cierta manera.
La librería se encarga de todo, tu solo tendrás que programar las funciones necesarias. Por ejemplo: miboton_click() definirá las acciones que se realizarán al presionar “miboton“. En la imagen podemos ver como btnCalcular modificará el cuadro de texto txtField al hacer un click además de mostrar un texto por consola.
Podemos insertar componentes visuales ya existentes en gvSIG que estén siendo utilizados en otras partes del programa, como por ejemplo:
También se irán añadiendo funciones que nos sean útiles para, por ejemplo, cargar las Vistas o Capas de nuestro proyecto en un menú desplegable (combobox), en un menú de tipo árbol, etc.
Estás librerías y herramientas van ya todas incluidas de serie a partir de la versión de gvSIG 2.3, facilitando al máximo para los que queráis poneros a programar.
Si estás interesado en desarrollar para la versión 2.2 de gvSIG, las herramientas deberían de funcionar correctamente (la mayoría al menos) solo que la instalación de ellas y algunos trozos de código serían diferentes. Podéis hacérnoslo saber por aquí o por las listas de correo, realizaremos comprobaciones de que todo funcione correctamente en esa versión 2.2, y realizaremos un pequeño manual o post con todo lo necesario.
El desarrollador principal de gvSIG, Joaquín del Cerro, sigue actualmente haciendo mejoras en estos apartados, así que tal vez tengamos alguna novedad más.
Espero que os interese este post, y que así podáis ver mejor la potencia que tiene el poder realizar scripts en gvSIG con el extra de dotarles de una interfaz visual de una forma tan sencilla, restando increíblemente el tiempo de desarrollo, para poder centrarnos en lo que realmente queramos hacer.
Un saludo,
Óscar Martínez.
Reblogged this on másquesig.
Excelente, a probarlo!