ノードの見た目として、 アイコン、背景色、ラベルの3点を変更できます。
ノードのアイコンは、定義内のicon
プロパティに指定します。
プロパティの値は、文字列または関数を設定できます。
プロパティの値が文字列の場合は、その文字列をアイコン名として扱います。
プロパティの値が関数の場合は、 ノードが最初に読み込まれた時、またはノードが編集された後に評価されます。 関数はアイコン名として使う文字列を返すようにしてください。
関数は、ワークスペース上のノード(this
が参照するノードインスタンス)と、
パレット上のノードの両方のアイコンを表示するために使用されます。
パレット上のノード向けの場合、this
は特定のノードインスタンスを参照しません。
関数は有効な値を返す必要があります。
アイコンは次のいずれかとなります:
注意: Node-RED 1.0では、これらすべてのアイコンはより良い表示のためSVGに代替されました。 後方互換を確保するため、 可能な場合はエディタが自動的にSVGへのリクエストをpngへのリクエストに置き換えます。
ノードの.js
ファイルや.html
ファイルと同じディレクトリに存在するicons
ディレクトリの中に、ノード固有の独自アイコンを配置します。
アイコンのファイル名を指定すると、エディタは本ディレクトリ内からアイコンを探し出します。
そのため、アイコンのファイル名は一意にする必要があります。
アイコンは、背景を透過色にしたアスクペクト比2:3、最小でも40 x 60ピクセルの白い画像にしてください。
Node-REDはFont Awesome 4.7のアイコンのフルセットを同梱しています。
Font Awesomeアイコンを指定するには、次のプロパティを指定します:
1ユーザーは、各ノードのアイコンを エディター内にあるノードの編集ダイアログの’外観’タブでカスタマイズできます。
注意: ノードがデフォルトのicon
プロパティを持っている場合、ノードのアイコンは上書きすることができません。
たとえば、node-red-dashboard
のui_button
ノードなどがそれです。
ノードの背景色は、異なるノードの型を素早く区別するための主な手段の1つです。
ノードの背景色は、ノード定義のcolor
プロパティに定義してください。
Node-REDでは落ち着いた色を採用しています。 新たなノードは、この色に合うようにしてみてください。
以下は、ノードの背景色として良く使われる色です。:
ノードのラベルについては、label
、paletteLabel
、outputLabel
、inputLabel
の4つのプロパティがあります。
ワークスペース内のノードのlabel
は静的なテキストにもできますし、
各ノード毎のプロパティに基づき動的に設定することもできます。
プロパティに設定できる値は文字列または関数です。
値が文字列の場合は、それがそのまま使用されます。
値が関数の場合は、ノードが最初にロードされたタイミング、 またはノードが編集された段階で評価されます。 関数はラベルとして利用する値を返却することを期待されています。
前のセクションで言及したとおり、
それぞれのノードを区別しやすくするためname
プロパティを持つことが通例です。
下記の例は
label
にプロパティまたはデフォルト値がセットされることを表しています。
プロパティのクレデンシャルはラベルの関数内では使用できません。
デフォルトでは、ノードの型をパレット上のノード名として使います。
paletteLabel
プロパティを指定すると、デフォルトのノード名を上書きします。
label
と同様に、プロパティは文字列または関数とします。
関数の場合は、ノードがパレットに追加されたとき1回評価されます。
ラベルのCSSはlabelStyle
を利用して動的に設定できます。
現状では、このプロパティは適用するCSSクラスを特定できなければいけません。
指定されていない場合は、デフォルトのnode_label
が指定されます。
他にあらかじめ定義されているクラスはnode_label_italic
のみです。
下記はname
プロパティが設定されている場合に、
labelStyle
にnode_label_italic
を設定する例です。
デフォルトでは、アイコンとラベルはノード内の左寄せになっています。
フローの最後となるノードの場合は、慣例では右寄せにします。
これはノードのalign
プロパティにright
を設定することによって実現されます。
ポートにマウスオーバーすることで表示されるラベルを 入力ポートと出力ポートに設定できます。
これらはノードのhtmlファイルで静的に設定できます。
関数の場合は、出力ピンの位置が得られます(indexは0から始まります)。
どちらの場合でも、設定エディタのnode settings
でユーザが値を設定すると上書きされます。
注意: ラベルは動的には生成されず、msg
プロパティで設定することもできません。
ノードには、コアのInjectノードやDebugノードのように、 左端または右端にボタンを配置できます。
原則として、エディタはフローを制御するためのダッシュボードではないため、 一般的にはノードにボタンを配置すべきではありません。 InjectノードとDebugノードは、フローの開発という役割を行うという点で特例です。
button
プロパティはボタンの挙動を定義するために使用されます。
最低限、ボタンがクリックされたときの挙動を
onclick
に定義しなければなりません。
プロパティには、ノードの現在の設定をベースとしてボタンの有効無効を動的に切り替えるための
enabled
を関数定義することもできます。
同様に、ボタンを表示するかどうかを決定するためのvisible
関数も定義できます。
button
はDebugノードのようにトグルボタンとしても設定することもできます。
まず、ノードのdefaults
オブジェクト内のプロパティを特定するためのtoggle
プロパティを追加します。
そして、特定されたdefaults
オブジェクト内のプロパティは
ボタンが押下されているかどうかのboolean値を持ちます。
Node-RED: Low-code programming for event-driven applications.
Copyright OpenJS Foundation and Node-RED contributors. All rights reserved. The OpenJS Foundation has registered trademarks and uses trademarks. For a list of trademarks of the OpenJS Foundation, please see our Trademark Policy and Trademark List. Trademarks and logos not indicated on the list of OpenJS Foundation trademarks are trademarks™ or registered® trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.
The OpenJS Foundation | Terms of Use | Privacy Policy | OpenJS Foundation Bylaws | Trademark Policy | Trademark List | Cookie Policy