Приложение может изменить блоки, доступные в панели инструментов, в любое время с помощью одного вызова функции:
workspace.updateToolbox(newTree);
Как и во время первоначальной настройки, newTree
может быть деревом узлов, строковым представлением или объектом JSON. Единственное ограничение состоит в том, что режим нельзя изменить; то есть, если в первоначально определенном наборе инструментов были категории, то новый набор инструментов также должен иметь категории (хотя категории могут меняться). Аналогично, если изначально определенный набор инструментов не имел категорий, то и новый набор инструментов может не иметь категорий.
Содержимое одной категории можно обновить следующим образом:
var category = workspace.getToolbox().getToolboxItems()[0];
category.updateFlyoutContents(flyoutContents);
Где flyoutContents
может быть списком блоков, определенных с использованием JSON, дерева узлов или строкового представления.
Имейте в виду, что в настоящее время обновление набора инструментов приводит к незначительному сбросу пользовательского интерфейса:
- В наборе инструментов без категорий любые поля, измененные пользователем (например, раскрывающийся список), вернутся к значениям по умолчанию.
Вот живая демонстрация дерева с категориями и группами блоков.