Tengo lo que creo que es un problema interesante.¿Hay una estructura de árbol o algoritmo para barajar los niveles en un árbol?
Básicamente, tengo una lista de elementos, donde cada elemento tiene un conjunto fijo de metadatos, de diferentes valores.
Por ejemplo:
- Punto 1: {type = "text", Autor = "Usuario A", Editado Fecha = "03/03/2003"}
- Tema 2: Tipo = { "Tabla", autor = "Usuario A", fecha editada = "04/05/2006"}
- Elemento 3: {Tipo = "Imagen", Autor = "Usuario B", fecha editada = "05/05/2005" }
- Tema 4: {type = "text", Autor = "usuario B", Editado Fecha = "05/07/2007"}
Ahora, tal como está, esa lista de elementos se aplana y se presenta en una tabla.
Sin embargo, nos gustaría encontrar una forma de permitir que los usuarios lo naveguen en un árbol, pero con la flexibilidad añadida de que pueden 'pivotar' el orden en que cada una de las etiquetas de metadatos aparece en el árbol.
Así, en un principio puede parecer que:
Items
+ Table
+ User A
+ 04/05/2006
-> Item 2
-> Item 2
-> Item 2
+ Text
+ User A
+ 03/03/2003
-> Item 1
-> Item 1
+ User B
+ 05/07/2007
-> Item 4
-> Item 4
-> Item 1
-> Item 4
+ Image
..
Sin embargo, supongamos que en su lugar, un usuario quiere darle la vuelta y ver todos los elementos relacionados con un usuario en particular:
Items
+ User A
+ Text
+ Table
-> Item 1
-> Item 2
+ User B
+ Image
+ Text
-> Item 3
-> Item 4
Y así en.
Espero que tenga sentido.
Entonces, lo que me pregunto por lo tanto, es si hay un enfoque de mejores prácticas para lograr esto a bajo costo? El resultado de cada 'flip/shuffle/pivot' está muy bien representado en un árbol, por lo que obviamente el primer pensamiento es que cuando un usuario solicita cambiar la representación, se puede generar un nuevo árbol de la lista de elementos según sea necesario. Sin embargo, esperaba que tal vez haya una mejor manera, simplemente rotando un solo árbol, etc.
También, esto es algo que se puede hacer de manera computacionalmente barata en JavaScript en el navegador del usuario, si el backend simplemente se devuelve una lista plana de elementos?
Muchas gracias & saludos cordiales,
Jamie
¿Esto está en Java o Javascript? Son dos idiomas muy diferentes. –
@Reverend Gonzo - Preferentemente en JavaScript para permitir que el navegador del cliente modifique la presentación de los datos sin tener que repetir las solicitudes a un servlet. Sin embargo, si fuera demasiado intenso en JS, podría manejarse en Java cada vez. – Jay
conozco a alguien que ha implementado esto como una forma de ver grandes conjuntos de datos en dispositivos móviles (si lo entiendo correctamente). Creo que es una especie de lib de JavaScript. ha presentado dos veces en nuestro grupo local de idiomas dinámicos. si está interesado, envíeme un correo electrónico a [email protected] y probablemente pueda conectarlo. –