La empresa Zetasoftware necesitaba para uno de sus sistemas desarrollado en Genexus X un grid web que permitiera presentar filas de manera jerarquizada. Analizando las posibilidades optamos por implementar un user control usando Adobe Flex 3. El siguiente es un ejemplo del “look and feel” del control:
Hace unos meses me contactó Rogelio Arosemena de Inalambrik para desarrollar un user control que le permitiera usar los servicios de Google Maps desde Genexus. Había visto el Map Control pero necesitaba funcionalidades mas específicas.
Acordamos la metodología de trabajo y en pocas semanas ya teníamos el user control funcional. Quedamos ambos muy conformes con el resultado obtenido y nos demostró que la distancia (Ecuador-Uruguay) no impide que se pueda trabajar de manera fluida.
El Google Map Control soporta:
Markers (con eventos click, drag)
Polilíneas
Polígonos
KML
LocalSearch
UPDATE: Si alguien quiere más información o le interesa usar el control contactarse conmigo.
A la hora de desarrollar user controls son muy útiles (diría necesarias) algunas herramientas que faciliten el desarrollo javascript. Yo he utilizado las siguientes extensiones para Firefox e IE:
- Render de diseño
- Se crean las variables y se asocia la variable de databinding con “Actions”.
- Se agregó una propiedad para elegir el tipo de distribución (lineal, logarítmica) para el tamaño de las fuentes.
Distribución del tamaño de las fuentes
Un tag cloud es una especie de histograma con la diferencia que permite representar información de manera mucho mas densa. Lo equivalente a una barra sería un tag y lo equivalente al tamaño de la barra es el tamaño de la fuente.
Hay veces que por la naturaleza de los datos y por la alta densidad de información si se hace una distribución lineal del tamaño de la fuente se pierde la capacidad de identificar a golpe de vista que tag es mas relevante que otro (se agrupan muchos tags en la misma categoría). Por ejemplo usando 8 diferentes tamaños de fuentes y con el siguiente juego de datos:
Haciendo una distribución lineal del tamaño de las fuentes el resultado es el siguiente:
Sin embargo, si utilizamos una distribución logarítmica obtenemos:
Con la distribución logarítmica se pierde un poco el “cuánto” mas relevante es un tag pero para algunos casos es útil para representar mejor el “cuál” es mas relevante.
En esta versión se le agregó al control una propiedad para poder elegir el tipo de distribución.
Experimentando con los nuevos user controls de Genexus Rocha me surgió la idea de hacer un control Tag Cloud. Una primera versión (beta o CTP1 ) está disponible para bajar acá.
¿Cómo lo uso?
Instalación
- Crear la carpeta TagCloud bajo la carpeta de User Controls. Ej.:
- Copiar el contenido del archivo TagCloud.zip a la carpeta creada.
Uso
- Arrastro el control a un web panel.
- Creo una variable del tipo TagCloud y otra del tipo TagCloudItem.
- Asocio a la propiedad “Data” del control la variable de tipo TagCloud.
- Cargo los tags. Ej.:
Resultado
¿Qué arreglos tiene pendiente?
- Que no sea necesario ni crear las variables ni asociar la variable databinding, que esto se haga solo al insertar el control.
- Hacer que la cantidad de diferentes tamaños de tags sean una propiedad del control, actualmente son 10 y son fijos.
- Poder asociar una clase de un theme al control.
- Hacerle un render de diseño.
- Etc…