Skip to content
This repository has been archived by the owner on Apr 9, 2024. It is now read-only.

¿Cual es el comportamiento correcto al 'comprimir' un nodo de la visualización? #191

Open
dcabo opened this issue Feb 11, 2015 · 3 comments

Comments

@dcabo
Copy link
Member

dcabo commented Feb 11, 2015

Es decir, ¿cual es el comportamiento deseado cuando deshacemos la operación de expandir (+) un nodo de la visualización?

Ahora mismo eliminamos todos los hijos que fueron creados al expandir el nodo. Parece un comportamiento razonable si lo hacemos justo después de haberlo expandido. Pero la cosa se complica cuando algunos de esos hijos son compartidos con otro nodo. Imaginemos por ejemplo el nodo Real Madrid con hijos Cristiano y Pepe. Expandimos Ronaldo, aparece Portugal y Manchester United. Expandimos Pepe, Portugal ya estaba, aparece Porto. Ahora comprimimos Cristiano, desaparece Portugal y ManU. El nodo Pepe aparece con el signo (-), pero en realidad no está expandido, falta Portugal.

¿Es una mejor solución eliminar sólo aquellos nodos que estaban relacionados únicamente con el nodo comprimido? Intuitivamente tiene cierto sentido, pero no sé si hay escenarios donde tampoco funcione.

@dcabo
Copy link
Member Author

dcabo commented Feb 11, 2015

Sobre el tema del signo en un nodos, (+) o (-), en realidad tenemos un problema relacionado, que es el hecho de que ahora ese signo lo cambiamos nosotros cuando -y sólo cuando- interactuamos con ese nodo. Pero en realidad el signo puede cambiar por lo que pasa alrededor de ese nodo: es decir, si un nodo A aparece como 'expandible' porque tiene una relación con otro nodo B no mostrada, pero llegamos a mostrar ese B a través de un nodo vecino C, entonces deberíamos actualizar el estado de A, que ya está plenamente expandido. Ahora no llevamos la cuenta de estas cosas, pero deberíamos plantearnos recalcular el estado de los nodos de forma global cada vez que hay una interacción expandir/comprimir.

@dcabo
Copy link
Member Author

dcabo commented Feb 11, 2015

PS: Me está resultando útil imaginarme a los nodos no como esferas perfectas sino como esferas con "pelos", donde esos pelos son las relaciones a nodos no mostrados. La información de esos "pelos" la calcula el servidor y la devuelve vía el JSON, y es lo que nos permite mostrar una relación de hermanos entre dos nodos A y B hijos de uno central: vemos un "pelo" de A acabar en B y viceversa, algo que no podríamos hacer si el servidor simplemente nos hubiera devuelto una lista de nodos hijos (A, B...) sin más información.

Tal vez más interesante, esta información de los "pelos" nos permite sugerir nodos "puente": si visualizamos el Real Madrid y tenemos a Cristiano y a Pepe, uno de los "pelos" del nodo Cristiano acaba en Portugal, igual que uno de los de Pepe; buscando destinos comunes de la "lista de pelos del gráfico" podemos detectar y sugerir el nodo Portugal como relevante. Este ejemplo es chorra, pero imagina redes más complejas.

@dcabo
Copy link
Member Author

dcabo commented Feb 11, 2015

También tenemos una información útil que no mostramos: cuantos nodos nuevos van a aparecer cuando expandamos un nodo. Tenemos incluso los nombres de esos nodos: ¿merece la pena mostrarlos en algún tipo de tooltip?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant