It is currently 31 October 2020, 12:49 Advanced search

[RISOLTO] Creare albero in DO

Questions and answers on how to best use Instant Developer

[RISOLTO] Creare albero in DO

Postby ivan.gani » 30 September 2020, 9:03

Buongiorno a tutti,
Avrei la necessità di creare un albero basando su una classe DO con dei figli che a sua volta è un collection dello stessa classe. L'alberò puo andare a multi livelli. I dati dell'albero provengono da una lettura JSON (di un web services esterna).

Cosa ho fatto:
- Ho creato una classe e ho aggiunto un collection (dello stesso tipo della classe). Quindi :
- Ho creato un albero supponiamo che si chiami TreeTest

Per popolare l'albero dello primolivello, ho usato l'evento Load del panello:
- chiamo il webservices esterna per fornirmi i dati da visualizzare (in JSON)
- trasformo il JSON in una collection della classe.
- e successivamente ho associato la collection a Treetest.collection.
Fin qui tutto apposto.

Ad ogni apertura di un nodo dell'albero, dovrei di nuovo interogare il webservices esterna (per farmi tornare il JSON) e collegarlo come collection figlio. Quindi l'albero viene popolato dinamicamente man mano che si apre. Ho cercato ad utilizzare l'evento OnActivateNode, ma non riesco a capire come posso aggiungere i collection figli al documento ? Ho provato diversi modi, ma non vedo risultato (i figli, all'apertura, non si vedono).

Grazie in anticipo per un vostro aiuto.
Ivan
Last edited by ivan.gani on 14 October 2020, 10:50, edited 1 time in total.
ivan.gani
 
Posts: 14
Joined: 30 September 2020, 8:47

Re: Creare albero in DO

Postby g.lanzi » 14 October 2020, 6:55

Io proverei a nascondere all'albero la natura dei documenti. Che vengano da WS o meno non importa.

Alla prima chiamata leggi solo il primo livello e nei documenti che leggi dal JSON poi ti assicuri di avere collection.loaded = false.

Se hai la collection non caricata, all'apertura dell'albero dovrebbe caricarsi. Se è transient e non si carica da sola, nell'onActivateDoc dell'albero prendi il documento e carichi manualmente con loadCollection().

Nel documento gestisci l'evento di load della collection (secondo me ti scatta il beforeLoadCollection) e lo usi per caricare la collection dal JSON.

Non ho provato, ma secondo me così dovresti trovare una strada percorribile.
Giuseppe Lanzi
Director of Support services
Pro Gamma S.p.A.
User avatar
g.lanzi
Pro Gamma
Pro Gamma
 
Posts: 3404
Joined: 29 September 2010, 10:24
Location: Bologna

Re: Creare albero in DO

Postby ivan.gani » 14 October 2020, 10:31

Grazie Giuseppe. Avevo aperto un ticket. L'evento OnActivateNode era troppo tardi. Dovevo utilizzare onActivateDoc
ivan.gani
 
Posts: 14
Joined: 30 September 2020, 8:47


Return to Tips & Tricks

Who is online

Users browsing this forum: No registered users and 10 guests

cron