JDAL Swing M-VC
JDAL Swing proporciona soporte para el desarrollo del patrón Model-View-Controller en su versión simplificada M-VC, en la que el controlador y la vista se unen en la misma clase.
En la figura de la derecha, se puede observar la jerarquía de interfaces, hasta la clase principal de JDAL Swing, info.joseluismartin.gui.AbstractView.
Model Holder
ModelHolder es una interfaz genérica que define los métodos que tendrán las clases contenedoras de modelos del dominio:
- T getModel() obtiene el modelo del ModelHolder
- void setModel(T model) actualiza el valor del modelo en el ModelHolder
Las clases que implementa ModelHolder son tratadas de forma especial en algunos casos, como en el caso de CompositeBinder que desreferencia automáticamente los ModelHolders al realizar operaciones sobre los modelos.
Binder
La interfaz Binder añade a ModelHolder los métodos característicos del binding de datos.
- update(): Actualiza el modelo con los valores del los controles de la vista.
- refresh(): Actualiza los controles de la vista con los datos del modelo.
- getBindingResult() Devuelve el resultado de la operación de binding de los datos de la vista al modelo, ie update().
View
View añade a Binder los métodos que deberán implementar las vistas del paradigma MVC.
- getName() devuelve el nombre asignado a la vista
- getPanel() devuelve el JComponent asociado a la vista
- validateView() realiza la validación de de los valores del modelo que contiene la vista. El proceso de validación en la implementación por defecto se delega en un Validator de Spring Framework por lo que todos los validadores soportados por Spring están soportados en JDAL Swing, incluyendo validaciones JSR-303.
- getErrorMessage() Devuelve un String con los resultados de los errores de la validación.
- clear() pone los valores de los controles de la vista en su valor por defecto.
- isDirty() comprueba si los controles de la vista se han modificado desde la última llamada a refresh().
- enableView() permite activar/desactivar todos los controles de la vista.
AbstractView
AbstractView es la clase plantilla ( Template , GoF) principal de JDAL Swing. Aunque es posible utilizar las diferentes funcionalidades que proporciona JDAL Swing de forma independiente, AbstractView le permite condensar el trabajo de desarrollo de formularios en una única tarea: Implementar el método buildPanel(). Veremos como utilizar AbstractView en el siguiente capítulo. th_content_end(); th_footer(); th_body_end(); ?>