Treebolic es un applet Java cuyo propósito es crear una representación hiperbólica de datos jerárquicos.
Los datos se pueden obtener de un fichero XML (local o via http/ftp) o directamente de una base de datos.
El resultado de un XML como este:
<treebolic>
<tree>
<nodes>
<node id="root" backcolor="0033cc" forecolor="ffffff">
<label>Raiz</label>
<node id="X6ea8a92149d7615a">
<label>Nodo A</label>
<img src="bball.gif"/>
</node>
<node id="Xbcada8f2a9b0467d">
<label>Nodo B</label>
<img src="rball.gif"/>
</node>
<node id="X2a4990a7fa4e9d1c" backcolor="ffffff">
<label>Nodo C</label>
<img src="rball.gif"/>
<node id="Xf439a01d7dd25f00">
<label>Nodo C-0</label>
</node>
<node id="X61cda71acafdf5c6">
<label>Nodo C-1</label>
</node>
<node id="Xf9bb23281bbd8fbe" backcolor="009900" forecolor="ffffff">
<label>Nodo C-2</label>
<node id="Xe566c4465c94c922">
<label>C-2-0</label>
</node>
<node id="Xc2ec6980243315a0">
<label>C-2-1</label>
</node>
<node id="X364fd28b294610a2">
<label>C-2-2</label>
<img src="item.gif"/>
</node>
</node>
<node id="X67babf94b0a57d0a">
<label>Nodo C-3</label>
</node>
<node id="Xb65e58ea11f5a30d">
<label>Nodo C-4</label>
</node>
<node id="Xc196ad20dff21769">
<label>Nodo C-5</label>
</node>
</node>
</node>
</nodes>
</tree>
</treebolic>
es el siguiente:
Lo interesante de esta vista es que es dinámica, se puede navegar de un nodo a otro y el applet mueve el nodo seleccionado al centro de la pantalla, mostrando los nodos padres/hijos en forma circular a su alrededor, cada vez mas pequeños a medida que nos alejamos del centro.
Cada nodo debe tener su id y el texto a mostrar como mínimos requerimientos, pero también se pueden asociar una url, una imagen y un color.
Siendo una herramienta de visualización de datos, es muy útil el poder especificar el color/imagen de cada nodo, ya que nos permite llamar la atención sobre alguna particularidad del mismo. En el ejemplo anterior, los nodos
B y
C tienen una imagen en rojo y el nodo
C-2 es de color verde.
Y los datos no tienen por que estar en un solo XML, ni cargarse todos a la vez, podemos decirle a un nodo que "monte" otro xml al inicio, o cuando hacemos doble click sobre el.
Aquí podemos ver otro ejemplo:
También se pueden seleccionar los datos desde una base de datos, directamente o mediante un servlet que convierta el resultado de una query en xml y lo envíe al applet.
La query de los nodos para obtener los datos míninos es la siguiente:
SELECT id_node,
path,
descripcion AS label
FROM Nodos;
con este resultado:
id_node | path | label |
animal | [NULL] | animal |
vertebrate | /animal | vertebrate |
mammal | /animal/vertebrate | mammal |
eutherian | /animal/vertebrate/mammal | eutherian |
carnivorous | /animal/vertebrate/mammal/eutherian | carnivorous |
cat | /animal/vertebrate/mammal/eutherian/carnivorous | cat |
tiger | /animal/vertebrate/mammal/eutherian/carnivorous | tiger |
Alguien me dijo que es un
chupete para ejecutivos, y aunque no está muy errado es una excelente herramienta de visualización rápida de datos.
Si comparamos por ejemplo esta forma de ver los datos para un cuadro de mando con un listado de dos páginas con números indicadores de "como va la empresa", se gana en claridad y rapidez para ver cualquier alarma que especifiquemos.