- Crear un gráfico.
- Añadir un tooltip que se muestra al pulsar un elemento.
- Crear un tooltip personalizado para mostrarnos los totales seleccionados.
Ahora vamos a ver una opción adicional con los elementos del gráfico, y es que podemos realizar acciones cuando se seleccione uno de ellos, sin necesidad de mostrar un tooltip.
Para ello usaremos una propiedad de los Vizframe, la propiedad interaction.decorations, que nos permite ejecutar una función callback cuando se muestra el tooltip (al seleccionar) y cuando se oculta (al deseleccionar).
Podemos encontrar la ayuda en la documentación específica de Vizframes, buscando en el apartado de Propiedades.
Aunque esta propiedad nos la proponen para crear nuestros propios tooltips, ya que con las funciones callback podemos recuperar el elemento seleccionado y la posición (x e y), vamos a utilizarla para otro propósito: Para mostrar un panel informativo con los puntos seleccionados y la probabilidad. No lo haremos en un tooltip, sino en un panel desplegable, y obtendremos algo como lo siguiente:
Y los pasos que seguiremos serán:
- Crear un modelo de datos para guardar los elementos seleccionados (un string concatenado) y el total de probabilidad.
- Añadir una propiedad al gráfico (interaction.decorations), a la que podemos asignar dos valores: showDetail, para indicar una función callback que se ejecutará al seleccionar un elemento; y hideDetail, que se ejecutará cuando se deseleccione un elemento.
- Definir las dos funciones que se llaman desde showDetail y hideDetail, para modificar el contenido del modelo de datos.
- Añadir a la vista XML un panel expansible para mostrar los datos que hemos seleccionado, enlazándolo con el modelo de datos.
Al final del artículo, tenemos el enlace para descargar el ejemplo en GitHub.