Per fare un albero, ci vuole un albero

by Luca Baldini on 14 dicembre 2010

Quando abbiamo deciso di avviare il nostro forum ero dubbioso. In particolare mi preoccupava il fatto che un forum, perché funzioni, richiede tempo ed energie e la risorsa tempo è sempre più scarsa. Però, come spesso accade, mi sono dovuto ricredere.

Davide chiedeva di implementare una nuova funzionalità: un albero a più colonne dato che In.de, ad oggi, non lo supporta in maniera nativa. Faccio subito una precisazione: In.de è uno strumento molto potente che, nella maggior parte dei casi, fa molto con poco. Con qualche drag&drop si ottiene un albero ricorsivo a più livelli. Con un altro paio di drag&drop si ottiene un albero con menù contestuale. Con una sola riga di codice Visual Code si può comunicare all’albero che deve gestire il drag&drop, e così via. Chi usa In.de è abituato ad associare la parola nativa al concetto con un paio di click o con qualche riga di codice. Con la maggior degli ambienti di sviluppo in circolazione non è così. Dovete realizzare un albero a partire dai dati contenuti in una tabella del database? Beh, occore partire dal creare una connessione al database, poi fare la query, poi creare l’HTML necessario alla visualizzazione dell’albero. Se poi volete un’applicazione Ajax occorre ancora di più. Con In.de tutto questo è nativo.

Però non si può fare tutto con un paio di click. In.de genera applicazioni web ed è stato pensato per essere configurabile. Ma questo concetto, la configurabilità, non è facile da dimostrare a parole. Servono esempi concreti che permettano di dimostrarlo nei fatti e sono convinto che il forum possa aiutare in questo.

Ma torniamo al problema iniziale: un albero a più colonne. Nel thread, che trovate qui, mi veniva indicato un esempio specifico:

Ho subito provato a copiare l’esempio utilizzando i controlli che In.de mette a disposizione in maniera nativa, tenendo conto che la maggior parte di questi controlli sono configurabili. Dapprima ho provato con un Book, un oggetto che normalmente viene utilizzato per produrre stampe anche complesse su PDF ma che può essere anche mostrato in HTML all’interno di una pagina web. Ciò che ho ottenuto era davvero simile all’originale. Ma non ero ancora soddisfatto.

Qiundi ho provato a rifare l’albero con un Pannello, una griglia pensata per mostrare dati in formato tabellare. Anche qui, dopo aver creato gli opportuni stili visuali, sono riuscito ad ottenere un albero multi-colonnare molto simile all’originale.

Alla fine ho ceduto: come dice il titolo del post per fare un albero, ci vuole un albero e l’ho rifatto, appunto, utilizzando un Albero, un altro dei controlli nativi che è possibile utilizzare nelle applicazioni sviluppate con In.de. Gli alberi nativi visualizzano solo una colonna, ma il testo mostrato nella colonna può contenere HTML ed è quindi sufficiente utilizzare l’HTML giusto all’interno dei nodi per ottenere un albero multi-colonnare. Lascio a voi fare il confronto con l’originale:

Come dicevo all’inizio, la maggior parte dei controlli messi a disposizione da In.de sono configurabili. Inoltre dato che il motore utilizzato per la visualizzazione è scritto completamente in Javascript è anche possibile personalizzarlo per mostrare i dati come si vuole e, per esempio, estendere la classe utilizzata per mostrare gli alberi e farla diventare multi-colonnare. Ovviamente questo richiede un po’ di tempo ma provate ad immaginare quanto tempo ci vuole con gli strumenti tradizionali.

Dopo tutto questo sono sembre più convinto che con In.de si possono affrontare anche le situazioni più impensate. Sono curioso di conoscere il vostro parere.

Immagine: Templates.com

{ 5 comments… read them below or add one }

1 Alberto Senni 14 dicembre 2010 alle 19:05

Se @Inde mi “abitua” a fare le cose con due click (e su questo piano è NETTAMENTE superiroe ad altri strumenti) vien da se o mi aspetto di fare “quasi” tutto con due o “tre” click…..

2 Alberto Senni 14 dicembre 2010 alle 19:09

Dimenticavvo di dire che anche per me il blog è utile ho imparato molto dai vostri brevi e sfiziosi esempi di uso evoluto di inde creati a partire da problemi proposti dai vari utenti.

3 Riccardo Bianco 15 dicembre 2010 alle 08:51

Apprezzo moltissimo il concetto espresso da Luca, cioè che InDe non sia un sistema chiuso, ma non posso fare a meno di concordare con Alberto Senni, la velocità di sviluppo e manutenzione (pur avendo un ottimo prodotto) è una delle caratteristiche che, personalmente, amo di più in InDe.

ps
L’idea di un forum è stata assolutamente azzeccata.

4 Giuseppe Lanzi 15 dicembre 2010 alle 16:12

Mi fa molto piacere che il forum sia apprezzato, e in effetti anch’io ne sono molto contento. Ha permesso di ottenere il dialogo che nella vecchia versione delle proposte di modifica sulla documentazione non era raggiungibile.

5 Andrea Maioli 15 dicembre 2010 alle 23:26

Nel merito dell’articolo, io penso che Instant Developer debba permettere di fare molto (e sempre di più) con poco, ma che sia indispensabile che esista comunque un modo non troppo complicato per fare qualunque cosa che mi salti in mente. Solo così posso essere tranquillo di non avere, prima o poi, una strada bloccata.

Leave a Comment

Previous post:

Next post: