L'applicazione può modificare i blocchi disponibili nella cassetta degli attrezzi in qualsiasi momento con una singola chiamata di funzione:
workspace.updateToolbox(newTree);
Come durante la configurazione iniziale, newTree
può essere una struttura ad albero di nodi, una rappresentazione di stringa o un oggetto JSON. L'unica limitazione è che la modalità non può essere modificata; ovvero, se nella cassetta degli attrezzi inizialmente definita erano presenti categorie, anche la nuova cassetta degli attrezzi deve avere categorie (anche se le categorie possono cambiare). Allo stesso modo, se la cassetta degli attrezzi inizialmente definita non aveva categorie, la nuova cassetta degli attrezzi potrebbe non averne.
I contenuti di una singola categoria possono essere aggiornati:
var category = workspace.getToolbox().getToolboxItems()[0];
category.updateFlyoutContents(flyoutContents);
Dove flyoutContents
può essere un elenco di blocchi definiti utilizzando JSON, una struttura ad albero di nodi o una rappresentazione di stringa.
Tieni presente che al momento l'aggiornamento della cassetta degli attrezzi causa alcuni piccoli ripristini dell'interfaccia utente:
- In una cassetta degli attrezzi senza categorie, tutti i campi modificati dall'utente (ad esempio un menu a discesa) torneranno ai valori predefiniti.
Ecco una demo dal vivo di un albero con categorie e gruppi di blocchi.