Ho quello che penso sia un problema interessante.Esiste una struttura ad albero o un algoritmo per mescolare i livelli di un albero?
Fondamentalmente, ho un elenco di elementi, in cui ogni elemento ha un insieme fisso di meta-dati, di valori diversi.
Ad esempio:
- Articolo 1: {type = "text", autore = "Utente A", a cura Data = "03/03/2003"}
- Articolo 2: {Type = "Tabella", Autore = "Utente A", Data di modifica = "04/05/2006"}
- Elemento 3: {Tipo = "Immagine", Autore = "Utente B", Data di revisione = "05/05/2005" }
- Articolo 4: {type = "text", autore = "utente B", a cura Data = "05/07/2007"}
Ora, così com'è, quell'elenco di elementi è appiattito e presentato in una tabella.
Tuttavia, vorremmo trovare un modo per consentire agli utenti di sfogliarlo in un albero, ma con la maggiore flessibilità di poter "ruotare" l'ordine, ciascuno dei tag dei meta-dati appare nell'albero.
Quindi, inizialmente potrebbe apparire come:
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
..
Tuttavia, supponiamo invece, un utente vuole capovolgere rotonda e visualizzare tutti gli elementi relativi a un particolare utente:
Items
+ User A
+ Text
+ Table
-> Item 1
-> Item 2
+ User B
+ Image
+ Text
-> Item 3
-> Item 4
E così sopra.
Spero che abbia senso.
Quindi, quello che mi chiedo, quindi, è se esiste un approccio migliore per ottenere questo a basso costo? Il risultato di ogni 'flip/shuffle/pivot' è ben rappresentato in un albero, quindi ovviamente il primo pensiero è che quando un utente richiede di cambiare la rappresentazione, può essere generato un nuovo albero dell'elenco di elementi come richiesto. Tuttavia, speravo che potesse esserci un modo migliore, semplicemente ruotando un singolo albero ecc.
Inoltre, questo è qualcosa che potrebbe essere fatto a livello computazionale in JavaScript sul browser dell'utente, se il backend dovesse semplicemente restituire un elenco di articoli?
Molte grazie & cordiali saluti,
Jamie
È questo in Java o Javascript? Sono due lingue molto diverse. –
@Reverend Gonzo - Preferibilmente in JavaScript per consentire al browser client di modificare la presentazione dei dati senza dover effettuare richieste di ripetizione a un servlet. Tuttavia, se fosse troppo intensivo da fare in JS, potrebbe essere gestito in Java ogni volta. – Jay
conosco qualcuno che ha implementato questo come un modo per visualizzare grandi serie di dati su dispositivi mobili (se ho capito bene). Penso che sia una sorta di lib javascript. gli ha fatto una presentazione due volte nel nostro gruppo di lingue dinamiche locali. se sei interessato mandami una email a [email protected] e probabilmente ti connetterò. –