Modifier des boîtes à outils

L'application peut modifier les blocs disponibles dans la boîte à outils à tout moment avec un seul appel de fonction:

workspace.updateToolbox(newTree);

Comme lors de la configuration initiale, newTree peut être un arbre de nœuds, une représentation de chaîne ou un objet JSON. La seule restriction est que le mode ne peut pas être modifié. Autrement dit, si des catégories figuraient dans la boîte à outils définie initialement, la nouvelle boîte à outils doit également en comporter (même si les catégories peuvent changer). De même, si la boîte à outils définie initialement ne comportait aucune catégorie, il est possible que la nouvelle boîte à outils n'en comporte aucune.

Vous pouvez mettre à jour le contenu d'une seule catégorie de plusieurs façons:

var category = workspace.getToolbox().getToolboxItems()[0];
category.updateFlyoutContents(flyoutContents);

flyoutContents peut être une liste de blocs définis à l'aide de JSON, une arborescence de nœuds ou une représentation de chaîne.

Notez que, pour le moment, la mise à jour de la boîte à outils entraîne quelques réinitialisations mineures de l'interface utilisateur:

  • Dans une boîte à outils sans catégories, tous les champs modifiés par l'utilisateur (comme une liste déroulante) reviennent à leur valeur par défaut.

Voici une démonstration en direct d'une arborescence avec des catégories et des groupes de blocs.