Изменение наборов инструментов

Приложение может изменить блоки, доступные в панели инструментов, в любое время с помощью одного вызова функции:

workspace.updateToolbox(newTree);

Как и во время первоначальной настройки, newTree может быть деревом узлов, строковым представлением или объектом JSON. Единственное ограничение состоит в том, что режим нельзя изменить; то есть, если в первоначально определенном наборе инструментов были категории, то новый набор инструментов также должен иметь категории (хотя категории могут меняться). Аналогично, если изначально определенный набор инструментов не имел категорий, то и новый набор инструментов может не иметь категорий.

Содержимое одной категории можно обновить следующим образом:

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

Где flyoutContents может быть списком блоков, определенных с использованием JSON, дерева узлов или строкового представления.

Имейте в виду, что в настоящее время обновление набора инструментов приводит к незначительному сбросу пользовательского интерфейса:

  • В наборе инструментов без категорий любые поля, измененные пользователем (например, раскрывающийся список), вернутся к значениям по умолчанию.

Вот живая демонстрация дерева с категориями и группами блоков.