Registro de un nuevo wizard
.. include-document:: org.gvsig.app.daltransform/reference-links
:rest:
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:
.. code-block:: java
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.
![View document View source document](gvsig_iconset/Tulliana/16x16/template_source.png)