[Xojo 2024r4] ¡Más control en Charts!

A partir de Xojo 2024r4 el control Chart ofrece incluso más control sobre el modo en el que han de dibujarse los ChartDataset como parte de la instancia de gráfica representada. Para ello se han añadido nuevas propiedades disponibles en Desktop, Web y iOS. De igual modo, y en este caso sólo disponible sobre Desktop, el control Chart también incorpora dos nuevos manejadores de evento que puedes implementar para tener un control absoluto sobre cómo se dibujarán los puntos de datos sobre la gráfica en cuestión.

Control más granular en los DataSet

Las subclases de ChartDataset añaden tres nuevas propiedades, de modo que puedes decidir si quieres permitir la interacción o no por parte del usuario de la app (por ejemplo cuando se hace clic o tap sobre los puntos de datos o bien cuando se hace sobre cualquiera de las leyendas mostradas en la gráfica). También podrás decidir cuáles de las legendas serán visibles en el área superior de la gráfica, o incluso decidir si quieres mostrar la ventana Popover cuando el usuario sitúa el apuntador del ratón sobre cualquiera de los puntos renderizados en la gráfica correspondientes a un conjunto de datos determinado.

  • AllowInteraction: Si se define como False entonces la legenda asociada con ese ChartDataSet en particular no responderá a ninguna interacción (como pueda ser desactivar o activar el dibujado de los datos asociados en la gráfica), y tampoco lanzará el evento Pressed en la instancia de Chart. De igual modo, tampoco se lanzará el evento Pressed cuando el usuario haga clic sobre cualquiera de los puntos representados en la gráfica para ese conjunto de datos en particular.
  • IsLegendVisible: Si se define a False, entonces no se mostrará la leyenda correspondiente a ese ChartDataset en el área superior de la instancia Chart (siempre y cuando la propiedad Chart.HasLegend esté definida como True). Esto permite un control más granular sobre qué leyendas se mostrarán y cuáles no.
  • AllowPopover: Si se define a False para el ChartDataset, entonces no se mostrará la ventana Popover cuando el usuario sitúe el apuntador del ratón sobre cualquiera de los puntos de datos representados en la gráfica para ese ChartDataset en particular.

Nuevos eventos para Chart en Desktop

Comenzando con Xojo 2024r4 podrás decidir el modo en el que una instancia de Chart, en Desktop, dibujará los puntos de datos para cualquiera de los ChartDataset renderizados. Para ello han de implementarse los dos nuevos manejadores de eventos sobre la instancia de Chart:

  • DrawPointAt(g As Graphics, x As Double, y As Double, data As ChartDataSet, index As Integer) As Boolean. Este evento recibe en el parámetro “g” el contexto gráfico para el punto de dato en cuestión, de modo que podrás utilizar cualquiera de los métodos y propiedades de la clase Graphics para dibujarlo del modo que prefieras. Para saber a qué punto de dato en cuestión se corresponde el contexto gráfico, así como el DataSet asociado con dicho punto, amos valores se reciben en los parámetros “index” y “data”, respectivamente. De igual modo, recibirás en los parámetros “x” e “y” las coordenadas correspondientes a la esquina superior izquierda del punto de dato. Los valores de dichas coordenadas son relativos sobre la propia ubicación y tamaño de la instancia Chart. Cuando se devuelve True de dicho evento, significará que tu código se ha encargado de realizar el dibujado para el punto de dato; de lo contrario la instancia Chart procederá con el renderizado habitual de los puntos de datos atendiendo al resto de propiedades que se hayan configurado.
  • DrawMouseOverPointAt(g As Graphics, x As Double, y As Double, data As ChartDataSet, index As Integer) As Boolean. Este evento se comporta del mismo modo que el anterior. La única diferencia es que se ejecutará cuando el usuario mantenga el apuntador del ratón sobre un punto de dato en cuestión, de modo que tengas total libertad a la hora de dibujar la versión “destacada” del punto de dato en cuestión.

Puedes encontrar más información sobre el control Chart en la Documentación de Xojo disponible en: https://documentation.xojo.com/api/user_interface/controls/chart.html#chart

Puedes obtener más información sobre la clase ChartDataset (y resto de subclases asociadas) en la Documentación de Xojo disponible en: https://documentation.xojo.com/api/user_interface/charts/chartdataset.html#chartdataset

Muchas gracias a todos los que nos proporcionáis retroalimentación y sugerencias sobre el modo en el que podemos mejorar Chart en Xojo. De hecho, todas las mejoras mencionadas son la respuesta directa a las peticiones realizadas por vosotros a través de Issues, de modo que estamos encantados de lograr que Chart se ajuste aun más y mejor a las necesidades particulares de vuestras aplicaciones.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *