Personal tools
You are here: Home gvSIG Projects gvSIG Desktop Documentation Developers documentation org.gvsig.app.daltransform 2.0.0 El wizard de las transformaciones
gvSIG Desktop
gvSIG Desktop
 
Document Actions

El wizard de las transformaciones

by Jorge Piera last modified 2012-09-08 00:47


Apertura del wizard

El wizard para aplicar transformaciones se podrá instanciar desde cualquier punto de la aplicación invocando el método createWizard del DataTransformManager del siguiente modo:

DataTransformWizard dataTransformWizard = DataTransformLocator.getDataTransformManager().createWizard();

Este código devolverá el wizard por defecto que ha sido creado y registrado en gvSIG para poder aplicar transformaciones. Más adelante se explica cómo crear un nuevo wizard y reemplazar al que ya existe en gvSIG.

El wizard por defecto está basado en el wizard que ya existe en Andami. Todas las capturas de pantalla que se hacen a continuación se han hecho sobre ese wizard por lo que si se modificase, el aspecto que presentaría sería distinto.

La interfaz DataTransformWizard tiene un método getWindow que devolverá una IWindow que se puede visualizar en gvSIG. Por lo tanto desde cualquier punto de la aplicación se podrá abrir el wizard de las transformaciones con tan sólo ejecutar el código:

DataTransformWizard dataTransformWizard = DataTransformLocator.getDataTransformManager().createWizard();
PluginServices.getMDIManager().addWindow(dataTransformWizard.getWindow());

Ejemplo de wizard

Este es un manual para el desarrollador, pero para poder entender algunos de los métodos que presentan las interfaces de las transformaciones es necesario tener una visión clara del problema al que pretenden dar solución y por ello, se han incluído unas cuantas capturas de pantalla del wizard por defecto que existe en gvSIG.

En la primera ventana el wizard mostrará todas las transformaciones que hayan sido registradas. Al hablar de "transformaciones" nos estamos refiriendo a todas las transformaciones que se han registrado en gvSIG junto con su interfaz de usuario o lo que es lo mismo, todas las clases que implementen el interfaz DataTransformGui y que se han resgistrado mediante el DataTransformManager. Más adelante se comenta cómo crear y registrar una transformación y su interfaz de usuario.

TEXTO

El usuario deberá elegir la transformación que desee aplicar y el resto del wizard se comportará en función de la transformación elegida en esta primera ventana.

Al pulsar en el botón siguiente se abrirá una nueva ventana en la que se tendrá que seleccionar el DataStore sobre el que se va a aplicar la transformación. Esta ventana también será común a todas las transformaciones ya que una transformación se tiene que aplicar sobre al menos un origen de datos.

TEXTO

Tras pulsar en siguiente se abrirán los paneles asociados a una transformación concreta (más adelante se comenta cómo se asocia un panel a una transformación). En función de la transformación que se elija en la primera ventana del wizard estos panales serán de una forma u otra ya que los parámetros asociados a una transformación no son los mismos que los parámetros de otra transformación.

Una vez que hayan pasado todas las ventanas particulares de la transformación elegida, aparecerá una ventana en la que se podrá seleccionar lo que se desea hacer con la transformación (cancelar el proceso, aplicar sobre una capa, cargar en una vista si se trata de una tabla...). La siguiente figura muestra un ejemplo de la última ventana.

TEXTO

En el ejemplo hemos aplicado una transformación sobre una tabla, por lo que podremos elegir la vista sobre la que queremos que se cargue como una capa. Para que esto sea así, la transformación resultante tiene que tener un atributo de tipo geometría.

Registro de un nuevo wizard

Si se quiere modificar el wizard por defecto, se tiene que crear una nueva clase que implemente el interfaz DataTransformWizard y se tiene que registrar en el DataTransformManager mediante el método registerDataTransformWizard que tendrá un único parámetro con una clase que implemente el nuevo wizard. En el ejemplo se asume que existe una clase MyDataTransformWizard que implementa el interfaz:

DataTransformLocator.getDataTransformManager().registerDataTransformWizard(MyDataTransformWizard.class);

Un wizard puede verse como un conjunto de formularios que se utilizan para realizar una acción. El wizard de transformaciones debe proporcionar un interfaz de usuario para poder aplicar una transformación. Este interfaz se proporciona mediante el método DataTransformWizard.getWindow()_, que devuelve un objeto de tipo IWindow que gvSIG es capaz de visualizar.

Pero además de un interfaz de usuario, el wizard es un objeto que puede ser utilizado por todos los panales lo forman para poder recuperar la información que se va seleccionando. Por ejemplo, si en la primera ventana del wizard se elige un DataStore, éste debería poder ser utilizado en las siguientes ventanas para por ejemplo, añadir un combo con los nombres de los campos del origen de datos. Es por ello que tiene los siguientes métodos:

  • DataTransformGui getDataTransformGui(): devolverá la tranformación que se tiene que aplicar sobre un origen de datos. Los detalles de la interfaz DataTransformGui se comentarán más adelante. El nuevo wizard está obligado a proporcionar una transformación puediendo cambiar la forma en la que se seleccionaba en le wizard por defecto.
  • FeatureStore getFeatureStore(): devolverá el FeatureStore sobre el que se aplica la transformación. El nuevo wizard está obligado a proporcionar un origen de datos puediendo cambiar la forma en la que se seleccionaba en le wizard por defecto.
  • boolean isFeatureStoreLayer(): además de proporcionar un FeatureStore, el wizard deberá indicar dónde si es una capa o una tabla ya que en función de ese valor la ultima acción del wizard será una u otra.
  • setApplicable(boolean isApplicable): este método servirá para bloquear el botón "Siguiente" del wizard, de modo que evitará que se pueda continuar. Serán los distintos formularios que forman el wizard los que activen el botón cuando en usuario haya seleccionado los valores mínimos que requiere la transformacioón.

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: