Seleccionar desde macro un nodo de un treecontrol
Publicado: Lun Mar 20, 2023 8:46 pm
Hola a todos. Este es mi primer post en el foro aunque ya llevo bastante tiempo consultando dudas aquí y ha sido de inestimable ayuda, así como los libros de Mauricio, no solo los de macros, también el de writer.
Me he decidido a escribir porque me he topado con una dificultad que no logro superar y tampoco encuentro apenas documentación.
Necesito seleccionar desde una macro un nodo de un treecontrol ya creado. Se trata de un árbol muy grande, por lo que, además de la búsqueda jerárquica por el árbol, estoy implementando un buscador que localiza el nodo deseado en la BDD. Lo que necesito es activar ese nodo en el árbol.
Después de probar muchos caminos, creo que la única opción es mediante el método "select" del treeControl, pero no logro que me funcione y la documentación no puede ser más escueta. He probado a crear el nodo idéntico al creado en el momento de insertarlo en el árbol (incluido el DataValue) pero el resultado es IllegalArgumentException.
La sintaxis es la siguiente:
wSeleccionado=ctlArbol.select(wNodo)
donde wSeleccionado es un booleano, ctlArbol es el treeControl y wNodo es un MutableTreeNode con los mismos datos que el nodo del árbol que quiero seleccionar.
Un detalle que quizás tenga relevancia es que al ejecutar la sentencia se dispara el listener "selectionChanged" y es al terminar la ejecución y volver a la sentencia cuando salta el error.
Si alguien puede aportarme alguna ayuda en forma de ejemplo, documentación o consejo, lo agradecería enormemente.
Juan Carlos
Me he decidido a escribir porque me he topado con una dificultad que no logro superar y tampoco encuentro apenas documentación.
Necesito seleccionar desde una macro un nodo de un treecontrol ya creado. Se trata de un árbol muy grande, por lo que, además de la búsqueda jerárquica por el árbol, estoy implementando un buscador que localiza el nodo deseado en la BDD. Lo que necesito es activar ese nodo en el árbol.
Después de probar muchos caminos, creo que la única opción es mediante el método "select" del treeControl, pero no logro que me funcione y la documentación no puede ser más escueta. He probado a crear el nodo idéntico al creado en el momento de insertarlo en el árbol (incluido el DataValue) pero el resultado es IllegalArgumentException.
La sintaxis es la siguiente:
wSeleccionado=ctlArbol.select(wNodo)
donde wSeleccionado es un booleano, ctlArbol es el treeControl y wNodo es un MutableTreeNode con los mismos datos que el nodo del árbol que quiero seleccionar.
Un detalle que quizás tenga relevancia es que al ejecutar la sentencia se dispara el listener "selectionChanged" y es al terminar la ejecución y volver a la sentencia cuando salta el error.
Si alguien puede aportarme alguna ayuda en forma de ejemplo, documentación o consejo, lo agradecería enormemente.
Juan Carlos