「ArduBlock のカスタマイズ はじめて編」
https://qiita.com/nanbuwks/items/6bb036b5e915a5b24bd4
では、最低限の引き出しとブロックを作成し、
「ArduBlock のカスタマイズ 中級編」
https://qiita.com/nanbuwks/items/f2067f06a0012791ee3d
では、もう少し複雑なブロックを作成しました。
上級編では、更に設定をしていきます。
パラメータのプルダウンメニュー
こんな感じにしたい。これは DigitalPin のブロックで、GPIOポート番号が選択できるようになっている。
これは、主に src/main/resources/com/ardublock/block/ardublock.xml
で作業する。
src/main/resources/com/ardublock/block/ardublock.xml
BlockDrawer の設定
まず、選択肢をすべてブロックで定義しておく。今回は選択肢は2つなので、2つを定義。
</BlockDrawer>
<BlockDrawer button-color="50 180 70" name="bd.plant" type="factory">
<BlockGenusMember>pinListPlant_beep</BlockGenusMember>
<BlockGenusMember>pinListPlant_pump1</BlockGenusMember>
<BlockGenusMember>pinListPlant_pump2</BlockGenusMember>
<BlockGenusMember>pinListPlant_valve</BlockGenusMember>
</BlockDrawer>
<BlockGenus name="pinListPlant_pump1" kind="data" color="60 100 30" initlabel="bg.pinListCleaner_right_back" editable-label="no">
<BlockConnectors>
<BlockConnector connector-type="number" connector-kind="plug"/>
</BlockConnectors>
</BlockGenus>
<BlockGenus name="pinListPlant_pump2" kind="data" color="60 100 30" initlabel="bg.pinListCleaner_right_back" editable-label="no">
<BlockConnectors>
<BlockConnector connector-type="number" connector-kind="plug"/>
</BlockConnectors>
</BlockGenus>
BlockFamily でひとまとめ
このように定義されたものは、以下で BlockFamily として定義される。
<BlockFamilies>
.
.
.
<BlockFamily>
<FamilyMember>pinListPlant_pump1</FamilyMember>
<FamilyMember>pinListPlant_pump2</FamilyMember>
</BlockFamily>
</BlockFamilies>
このようにすると、選択肢が選択できるようになる。
あとは BlockDrawer を必要なものを選んで整理。