Salve a tutti, sono nuovo del forum nonostante molto spesso utilizzo HTML.it per fini di apprendimento. Premetto che non ho mai utilizzato JavaScript, ma ho una buona familiarità sia con Java che con HTML. Sto svolgendo la mia tesi di laurea magistrale e una piccola parte di essa verte sulla programmazione front-end. In particolare ho bisogno di trovare una libreria, scritta in javascript, open source e possibilmente riutilizzabile anche per fini commerciali, che mi dia la possibilità di disegnare grafi o statechart. In particolare, le cose che devo ottenere sono :


  • Modelli. Ho bisogno di avere diversi tipi di "nodi". Essi devono avere un numero finito di porte di ingresso / uscita. Ad esempio Model2in1out, Model2in2out, ecc ..



  • Informazioni sugli archi. Ho bisogno di collegare le informazioni agli archi. Ad esempio "input1, output1, output2" per Model2in1out. Dopo aver inserito il secondo ingresso, l'informazione sullo stesso arco sarà "input1, input2, output1, output2" (dinamicamente).



  • Stampa stato attuale dell'intero statechart. Ho bisogno di "estrarre" lo stato globale dello statechart in ogni momento



  • Pannello di impostanzioni a richiesta. Ho bisogno di un pannello che mi dia l'informazione relativa ad un nodo quando faccio click su di esso, come un menu a comparsa o una specie di pop-up.


E' chiaro che attualmente una libreria che mi permette di fare tutto questo non esiste. Ho effettuato delle ricerche e ho trovato dei buoni compromessi, che elenco di seguito :



  • Stativus : offre tutte le funzionalità per creare gli statechart, ma ci sono pochi tutorial al riguardo, quindi mi è difficile personalizzare per i miei scopi



  • Statechart : libreria scritta dallo sviluppatore David Durman, anche qui libreria molto piccola, pochi esempi, nessun tutorial, non saprei da dove cominciare



  • JointJS core : libreria completa, con molti esempi, buon livello di personalizzazione, codice ben strutturato. La licenza tuttavia non è completamente open source : si tratta infatti di una Mozilla Public License Version 2.0 (non ho ben capito cosa ci posso fare realmente)


In alternativa, invece di usare una sola libreria, avevo anche pensato alla possibilità di combinare due librerie, una che si occupa solo dei grafi/statechart e l'altra della parte "editor" (menu a comparsa, stampa dello stato, palette con nodi da inserire nel pannello principale etc..). Anche qui però non saprei cosa è più semplice da apprendere e da usare. Apprezzo suggerimenti da chi, in un modo o nell'altro, ha già affrontato questo tipo di problematiche ed è certamente più esperto di me.