O aplicativo pode mudar os blocos disponíveis na caixa de ferramentas a qualquer momento com uma única chamada de função:
workspace.updateToolbox(newTree);
Como na configuração inicial, newTree
pode ser uma árvore de
nós, uma representação de string ou um objeto JSON. A única restrição é que
o modo não pode ser alterado. Ou seja, se houver categorias na
caixa de ferramentas definida inicialmente, a nova caixa de ferramentas também precisará ter categorias,
embora elas possam mudar. Da mesma forma, se a caixa de ferramentas definida inicialmente
não tiver categorias, a nova caixa de ferramentas também não terá.
O conteúdo de uma única categoria pode ser atualizado por:
var category = workspace.getToolbox().getToolboxItems()[0];
category.updateFlyoutContents(flyoutContents);
Em que flyoutContents
pode ser uma lista de blocos definidos usando JSON, uma árvore de nós
ou uma representação de string.
No momento, a atualização da caixa de ferramentas causa algumas pequenas redefinições da interface:
- Em uma caixa de ferramentas sem categorias, todos os campos alterados pelo usuário (como um menu suspenso) são revertidos para o padrão.
Confira uma demonstração ao vivo de uma árvore com categorias e grupos de blocos.