アプリは、1 つの関数呼び出しでいつでもツールボックスで使用可能なブロックを変更できます。
workspace.updateToolbox(newTree);
初期構成の場合と同様に、newTree
はノードのツリー、文字列表現、または JSON オブジェクトのいずれかです。唯一の制限は、モードを変更できないことです。つまり、最初に定義したツールボックスにカテゴリがある場合は、新しいツールボックスにもカテゴリが必要です(カテゴリは変更される場合があります)。同様に、最初に定義したツールボックスにカテゴリがない場合、新しいツールボックスにカテゴリがない場合もあります。
1 つのカテゴリの内容は、次の方法で更新できます。
var category = workspace.getToolbox().getToolboxItems()[0];
category.updateFlyoutContents(flyoutContents);
ここで、flyoutContents
は JSON を使用して定義されたブロックのリスト、ノードのツリー、または文字列表現にできます。
現時点では、ツールボックスを更新すると、UI が若干リセットされます。
- カテゴリのないツールボックスでは、ユーザーが変更したフィールド(プルダウンなど)はデフォルトに戻ります。
カテゴリとブロック グループを含むツリーのライブデモをご覧ください。