Noticias Weblogs Foros Wiki Código

Meta-Info

¿Que es?

Planeta Código es un agregador de weblogs sobre programación y desarrollo en castellano. Si eres lector te permite seguirlos de modo cómodo en esta misma página o mediante el fichero de subscripción.

rss subscripción

Sponsors

Puedes utilizar las siguientes imagenes para enlazar PlanetaCodigo:
planetacodigo

planetacodigo

Si tienes un weblog de programación y quieres ser añadido aquí, envíame un email solicitándolo.

Idea: Juanjo Navarro

Diseño: Albin

MadeInFlex

Flex Hero: nuevos componentes para Desktop(I): Spark DataGrid

Noviembre 23rd, 2010 - [Enlace local]

Uno de los componentes más esperados ha sido el Spark DataGrid. Es un componente complejo, bajo desarrollo y que en este post veremos sus particularidades más interesantes.

Introducción

Le diferencian dos características principales de su homólogo Halo:

La implementación de la funcionalidad del Spark DataGrid se divide en dos niveles: El primer nivel de funcionalidad se incluye en esta preview release de Hero; el segundo nivel vendrá en las siguientes releases.
Expliquemos en que se centra cada uno de estos niveles:

Especificaciones

El Spark DataGrid quiere describir el mismo concepto que su predecesor: un componente que muestra una lista de datos y que los visualiza en una tabla o grid, es decir, divide el espacio de visualización en filas y columnas. Cada uno de estos datos forman una fila del componente.
A partir de ahora veremos las diferencias con el mx Datagrid.

Cada celda puede contener un elemento visual, desde un simple elemento gráfico, hasta formas más complejas.

El Spark DataGrid nos permite la selección individual o multiple de filas o celdas. También nos permite la edición de dichos elementos.

El Spark DataGrid soporta grandes cantidades de datos: podemos hacer smooth scrolling a través de miles de filas ( es decir miles de elementos de datos ) y miles de columnas. Aunque la altura de cada fila puede variar, inicialmente se muestra con la altura del typical data item.

El componente Spark DataGrid es skineable. Mediante el skin situaremos los elementos dentro del grid, personalizaremos tanto las cabeceras como el scroller y podremos configurar los elementos gráficos que mostrarán nuestros datos. Un aspecto importante es que la skin puede determinar un item renderer por defecto, que se usará para renderizar el contenido de cada celda, para las colmnas no especifica ninguno.

Las diferencias más notables entre el Spark DataGrid y su homólogo en la versión MX son estas:

Ejemplo de uso

Definición del componente

El componente Spark DataGrid es en realidad un contenedor con un propósito especial: definir el skin, mediante las skin parts, del grid y de la barra de la cabecera. Debemos tener claro que es el componente Grid quien muestra las filas y columnas, controla la selección y la edición. La Skin del Spark DataGrid se responsabiliza de organizar estos elementos y el Scroller.
En cuanto a estructura, Spark DataGrid es similar al Spark List: delega la responsabilidad de mostrar los elementos a un componente no skinneable como es el DataGroup. El Spark DataGrid maneja los eventos de teclado y mouse que suceden sobre el Grid y la barra de cabeceras de columnas.
El Spark DataGrid tiene como dataProvider un IList que contiene “data items” o “items”, son dos maneras de llamarlos. Cada aspecto de los ítems se representa en cada columna. La intersección de fila y columna define una celda, indexada mediante las propiedades rowIndex y columnIndex. Las columnas, además también definen el item renderer que se usará para la celda. Las columnas también se definen con un IList, donde cada columna debe ser una instancia de elementos visuales concretos relacionados con el Grid.
El DataGrid no se dibuja solo con los item renderers de las columnas, algunos elementos visuals se dibujan por separado. Esto es lo que lo diferencia del component List, en la que son sus item renderers los responsables de determinar todos los aspectos visuals. Para entenderlo mejor pongamos un ejemplo: cuando definimos el modo de seleccion del grid a nivel de filas, no es práctico que cada item renderer ( representación de la celda), intervenga en la representación visual de la fila. En este caso, esta representación se determina mediante las propiedades del DataGroup, como “selectionIndicator” o “caretIndicator”. El Grid crea, recicla y dibuja los IVisualElements como sea necesario.
A continuación vemos las diferentes partes que componen el Spark DataGrid:
datagridParts

Custom Item Renderers

El itemRenderer de una columna es un IVisualElement que implementa la interface IGridItemRenderer. Los Item renderers no requieren el uso del data binding par configurar sus elementos visuales. En lugar de esto, puede ser más eficiente sobreescribir el metodo prepare() de la clase GridItemRenderer, que se lanza después de configurar el ítem renderer y antes de que dibuje. Aquí tenemos un ejemplo:

El parámetro hasBeenRecycled del método prepare(), le informa de si el renderer acaba de ser creado o se está reutilizando. A veces es necesario hacer renderers que se usen una sola vez, asignando recycle=false.

Documentos de especificación

Las especificaciones del Spark DataGrid están divididas en diferentes secciones para que así sea más comprensible.Estas secciones

Más información

videos en el Adobe TV

Spark DataGrid 1
Spark DataGrid 2

Especificaciones

Spark DataGrid
Accesibilidad del Spark DataGrid

» Leer más, comentarios, etc...

Información legal y técnica