# ボタン

> 指令のキーです。決めておいた値を書き込む、ユニットの実行の指令を出す、別のダッシュボードを開く、Logic のアクションを実行する、のいずれかを行います。

**ボタン** は、パレットの指令のキーです。1 回押すと、そのコンポーネントが宣言した *アクション* が 1 つだけ行われ、プロパティのパネルはそのアクション自身の欄だけをたずねます。ですから、いつ効くのかが隠れた決まりに支配されている欄が、画面に居座ることはありません。*操作* のコンポーネントで、新しく置くと 3 × 1 のます目を占めます。

アクションが何であれ、ボタンは自分の見た目を持ちます。2 色の組と、任意のアイコンです。運転のパネルでは、ボタンは操作員の手が向かう部品であり、色と印こそが、ひと目で見つけられるようにするものです。

## 内容 {#content}

| 欄 | 何をするか | 値 | 既定 |
|---|---|---|---|
| ラベル | キーの上の文字です。空欄のときは、選んだアクションが指しているものに戻ります。書き込むポイントのアドレスの最後の区切り、開くダッシュボードの名前、またはバインドした Logic のアクションの名前です。名乗るものが何もない間は「（ポイントなし）」「（ダッシュボードなし）」「（アクションなし）」「（見つかりません）」と出ます。 | 自由なテキスト | 空 |

## アクション {#action}

| 欄 | 何をするか | 値 | 既定 |
|---|---|---|---|
| 押したとき | 押したときに何が起きるかです。下のどの欄も、選んだアクションに属します。 | `値を書き込む` · `ユニットの指令を出す` · `別のダッシュボードを開く` · `Logic のアクションを実行する` | `値を書き込む` |

### 値を書き込む {#write-a-value}

| 欄 | 何をするか | 値 | 既定 |
|---|---|---|---|
| ポイント | 書き込むポイントです。一覧は、実際に書き込めるもの、つまり内部値の変数と、読み取り専用でないタグに絞られます。 | 自由入力。書き込めるポイントの候補 | 空 |
| 書き込む値 | 押すたびに送る、決めておいた値そのものです。まずポイント自身の型に照らして読まれるので、ポイントが持てない値はボタンの応答の行で拒否され、キューには決して届きません。 | 自由なテキスト | `true` |

書き込みはステーションのただ 1 つのロジックの経路を通り、ほかのどの書き込みとも同じように記録されます。機器を待つのはロジックではなくボタンのほうなので、応答の行が「書き込みました」と述べるのは、値が受け取られたあとだけです。そうでなければ、拒んだ相手自身の言葉で拒否がそこに出ます。送る前にステーションが決めたことはステーション自身の言葉で（「「Cmd」は書き込まれませんでした。機器が接続されていません。」）、電線の上で起きたことは機器の言葉で出ます。同じポイントへの新しい書き込みに送信前に追い越された値は、「「Cmd」は送信前に新しい値に置き換えられました。」と読めます。

**上下限** の段階が有効なタグでは、その上下限の外にある決まった値は、その上下限を示す理由で応答の行に拒否が出て、何も書き込まれません。そうしなければタグはその値を端で取り、ボタンは設備が受け取っていない値を確かめてしまうからです。

整数を保持するポイント（スケールと校正が値を変えない整数型のタグ、または整数を保持する内部値の変数）では、小数を含む決まった値は丸められずに応答の行で拒否され（「このポイントは整数を受け付けるので、2.5 は書き込みません。」）、何も書き込まれません。

### ユニットの指令を出す {#run-a-unit-command}

| 欄 | 何をするか | 値 | 既定 |
|---|---|---|---|
| 指令 | ユニットの実行の指令のポイント（`Process.<Model>.<Unit>.Commands.*`）です。その指令を出すことが指示のすべてで、書き込む値はありません。 | 自由入力。一覧はユニットの実行の指令のポイントを出します | 空 |

指令のポイントは「今実行できるか」を読むので、その指令が当てはまらない間、ボタンは自分を使えなくします。ランタイムが塞がれている間の開始では、さらに塞がれている理由も出ます。押すとその指令がユニットに対して実行され、サインインしている操作員に帰属し、応答の行が実行した指令を名乗ります。

### 別のダッシュボードを開く {#open-another-dashboard}

| 欄 | 何をするか | 値 | 既定 |
|---|---|---|---|
| ダッシュボード | 行き先の画面です。選択はステーションのダッシュボードを並べます。Process のモデルの上で定義された画面は出ません。それはユニットからしか開かないからです。 | `（なし）` またはダッシュボード | `（なし）` |

画面を変えることは運転の動作です。全画面で動いているパネルは、操作員が着いたときも全画面のままです。参照はゆるやかです。削除された画面や、サインインしているロールに見えない画面でも、ほかが使えなくなることはありません。押すと、画面を壊す代わりに、ボタン自身の行で「そのダッシュボードは利用できません。」と答えます。

### Logic のアクションを実行する {#run-a-logic-action}

| 欄 | 何をするか | 値 | 既定 |
|---|---|---|---|
| アクション | バインドした Logic のアクションです（[Logic のページ](logic) を参照）。 | `（なし）` またはアクション | `（なし）` |

アクションはアクションのレーンの上で走り、ダッシュボードから来たものとして記録されます。応答の行が結果を伝えます。「実行しました · 12 ms」、またはそのアクション自身のエラーです。削除された、あるいは無効なアクションは、ボタンを壊すのではなく使えなくします。

## 色とアイコン {#color-and-icon}

アクションが何であっても読まれます。

| 欄 | 何をするか | 値 | 既定 |
|---|---|---|---|
| ボタンの色 | キーの表面で、テーマごとに 1 色ずつの組です。今のテーマがどちらを塗るかを決めるので、両方が同時に画面に出ています。途中まで入力した 16 進数は拒否され、欄は今の色に戻ります。ある色が何を意味するかはあなたの取り決めで、アプリは何も読み取りません。 | それぞれ `#RRGGBB` | ライトは `#FFFFFF` · ダークは `#2B2B2B` |
| アイコン | 文字の手前に置く任意の印で、アプリのアイコンライブラリ（およそ 2,770 個の印）から選び、名前かタグで検索できます（「英語で：play、stop、warning…」）。`—` のます目が、アイコンなしという選択です。 | 一覧のグリフ、またはなし | なし |

文字の色は **導かれる** もので、指定するものではありません。表面のそれぞれの色に対して、アプリは自分の 2 つの文字色のうち対比のよい方を選ぶので、どの色を選んでも文字が読めなくなることはありません。文字は共通の表示の取り決めで自分の大きさを決めます。キーに入りきらないものは省略記号で切られ、文字の全体はツールチップに出ます。

## 権限と錠前 {#permissions-and-the-lock}

どのアクションにも、ロールの「ダッシュボードの操作」の権限が要ります。押すことにそれ以上何が要るかは、その *対象* から読まれるのであって、種類から読まれるのではありません。**ユニットの指令を出す** だけが Process を変えるところに届くので、これにはさらに「手順の実行」の権限が要ります。サインインしているロールに許されていない押下は、共通の錠前の印を描き、理由をコンポーネントのツールチップに持ちます（[ダッシュボードのページ](home) を参照）。認可は押したその時にもう一度確かめられます。しばらく出る応答の行は、数秒で消えます。応答の行を置く場所がなく、キーの上に隅の表題もないセル（詰んだグリッドに置いた高さ 1 行のボタン）では、応答が表示されているあいだ、応答がキーの文字の場所に出ます。応答は文字自身の色を少し控えめにした色で文字の上に重なり、拒否はエラーの色で重なり、応答の全体はツールチップに出ます。アイコンとキーはそのままの場所にあり、応答が消えると文字が戻ります（[ダッシュボードのページ](home#commands-permissions-and-the-lock-mark) を参照）。

共通の外観、識別、位置とレイヤー、アクションの節は [コンポーネントのページ](components#the-shared-property-sections) で説明しています。
