Para el ejemplo que aquí se expone, se realizará una pequeña tabla que muestre los valores de un XML, los cuales estarán contenidos en un fichero. En un caso real, lo haríamos sobre una respuesta HTTP, tipo Web Services.
Esta tabla o matriz contendrá funcionalidades extra, tales como ordenar por una determinada columna, cambiar una columna de posición o hacer scrolling a través de los datos.
En primer lugar crearemos un fichero llamado "categorias.xml", el cual almacenaremos (para el ejemplo) en la raíz del disco duro "C:". Su contenido será el siguiente
|
Para crear la aplicación en Flex, podemos utilizar Flex Builder (es de pago, pero se puede utilizar durante 60 días), o bien utilizando el SDK y un editor cualquiera (como Java).
Flex Builder permite utilizar MXML y ActionScript, ambos combinados, en un mismo fichero, cuya extensión es ".mxml". MXML es un lenguaje en formato XML, específico para las aplicaciones de Adobe.
Las primeras líneas del código serán:
|
La primera línea es la típica que indica que el fichero está en formato XML. La segunda identifica dicho fichero como una aplicación MXML. Asimismo, indica que la disposición (layout) de los objetos que se dibujarán será absoluta, es decir, por coordenadas X,Y desde la esquina superior izquierda.
Toda aplicación en Flex comienza con esta línea, y acabará por está otra:
|
Para cargar el fichero XML, se utilizará la siguiente sentencia:
|
Por defecto, el formato será "e4x", el cual permitirá realizar operaciones directas, de una forma sencilla, sobre el xml, principalmente la navegación. Gracias a este formato, podremos acceder directamente al nodo del cual deseamos extraer la información (category), y ello se indica mediante la siguiente línea:
|
Con ésta, se crea una lista de colección XML, llamada "goCategoryList", que se extrae a partir del objeto "myXML", accediendo al nodo "category".
A continuación se crea la tabla con la información contenida en esta lista de colección:
|
El objeto "mx:DataGrid" representa una tabla o matriz, que Flex ya tiene prefabricada con las funcionalidades descritas anteriormente. En la construcción de la tabla, se puede definir de dónde provienen los datos (dataProvider), que en este caso se especifica la lista de colección XML. También se puede indicar si es editable o no (se pueden introducir campos para entradas de datos), la posición de la tabla en el área de trabajo (X e Y), el alto y el ancho (height y width), si está activo o no (enabled), así como el nombre o identificador del objeto table (id).
Dentro de este objeto se debe definir el conjunto de columnas que integrará la tabla, a través del objeto "mx:column". Este objeto contendrá el detalle de cada columna, a través del objeto "mx:DataGridColumn". Este objeto designa un nombre o identificador para la columna (id), el texto de la cabecera de la columna (headerText), y se asocia el nombre del nodo XML del campo a la columna (dataField).
El código completo es el siguiente:
|
El resultado final es el siguiente:
Espero que este primer ejemplo os anime a iniciaros en este fascinante mundillo de las aplicaciones RIA, especialmente con Flex.