入力にも表示にも使えるゲージ部品
Wijmoのゲージ部品はスマートフォンでの操作に対応しており、タッチで値を変えることができます。ここでは自動車の点検記録をイメージしたWeb画面サンプル(002_wijmo_gauge.html)で、直線ゲージ(LinearGauge)と円形ゲージ(RadialGauge)の利用法を説明します。
まずオイル、タイヤ、ウォッシャー液の状態を入力するゲージをLinearGaugeで作ります。各ゲージはリスト6のように、wj-linear-gaugeディレクティブで記述します。
<wj-linear-gauge
min="0" max="100" ...(1)
is-read-only="false" ...(2)
value="oilRest" ...(3)
style="width:100%">
</wj-linear-gauge>
(1)はゲージの最小値と最大値の指定です。(2)でis-read-only属性をfalseにすると、画面タッチ(PCの場合はマウスドラッグ)で操作できるようになります。操作で変更されたゲージ値は、(3)で指定された変数に格納されます。
次に総合診断を表示するゲージをRadialGaugeで作ります。リスト7のようにwj-radial-gaugeディレクティブを利用します。
<wj-radial-gauge
min="0" max="100" ...(1)
is-read-only="true" ...(2)
value="evalState();" ...(3)
show-text="Value" ...(4)
show-ranges="true" ...(5)
style="width:100%;height:200px">
<!-- 値を表示する領域 ...(6)-->
<wj-range
wj-property="pointer" thickness="0.5">
</wj-range>
<!-- 危険領域 ...(7)-->
<wj-range
min="0" max="33" color="#ff8080">
</wj-range>
<!-- 注意領域 ...(8)-->
<wj-range
min="33" max="66" color="#ffdd55">
</wj-range>
<!-- 安全領域 ...(9)-->
<wj-range
min="66" max="100" color="#80ff80">
</wj-range>
</wj-radial-gauge>
(1)で最大値/最小値、(2)は読み取り専用を指定します。(3)はゲージ値の指定で、AngularJSのスコープ変数に定義されたevalStateメソッドの戻り値を指定します。evalStateメソッドの実装はリスト8で、オイル・タイヤ・ウォッシャー液の平均値を返します。
$scope.evalState = function(){
return (
$scope.oilRest +
$scope.tireRest +
$scope.washerRest
) / 3;
};
(4)はゲージ値の表示形式で、表3のうちここではValue(現在値のみ表示)を指定しています。
| 名前 | 内容 |
|---|---|
| All | 現在値・最小値・最大値を表示 |
| MinMax | 最小値・最大値を表示 |
| Value | 現在値を表示 |
| None | 何も表示しない |
(5)でゲージの領域(range)を表示するように指定し、(6)~(9)で複数の領域を定義しています。(6)の領域はwj-property="pointer"の指定により現在値を表示します。thicknessを0.5とすることでゲージの太さを標準の0.5倍にして、他の領域が裏に見えるようにしています。(7)~(9)が危険/注意/安全の領域を背景に表示する記述です。
サンプルコードをWebブラウザで表示させて、上部のLinearGaugeをタッチ(またはマウスドラッグ)してオイル・タイヤ・ウォッシャー液の状態を入力すると、下部のRadialGaugeに安全度の総合診断がゲージと文字列で表示されます。

