Guardar estado de un tree

Hola!
Estoy trabajando con árboles en XUL y me estoy encontrando con un problema…
Necesito tener un tree jerárquico que cambie su contenido dinámicamente (cuando cambie un xml en el servidor). Esto lo puedo hacer facilmente cambiando el datasource del arbol (lo estoy haciendo con templates) y el arbol se “repinta” perfectamente… pero tengo un problema… necesito almacenar qué nodos tenía abierto el usuario antes del cambio de xml para que luego vuelvan a estar abiertos (el xml del servidor es el mismo para todos los usuarios y por defecto todos los nodos están cerrados).
¿Alguien ha jugado con esto alguna vez? ¿Qué solución ha tomado?

Gracias por vuestra ayuda…me estoy bloqueando… :slight_smile:

Hola de nuevo.
Bueno problema mas o menos solucionado, no sé si es la mejor manera, pero de momento lo que hago es recorrer el arbol y almacenar los ids de los nodos cerrados en un string que posteriormente pongo como de la plantilla de manera que los nodos que están en el cerrados los ejecuta un template que tiene “open =false” y el resto se ponen como “open=true”.
Si os interesa os puedo copiar el ejemplo…

Ahora surge otro problema… estoy trabajando con datasources xml… y quiero que al cambiar el datasource se reflejen los cambios en el arbol, no puedo utilizar tree.template.refresh() ya que no es un rdf, asi que lo que hago es quitar el datasource actual y volver a indicarle el datasource. Esto me funciona bien pero como en el fondo lo que debe hacer es borrar el arbol y volverlo a crear, se produce un “parpadeo” en el arbol cada vez que lo recargo lo cual es muy molesto.
¿Alguna idea de como refrescar el arbol siendo el datasource un xml sin quitar y poner el atributo datasource cada vez a ver si asi no se produce el parpadeo?