SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

最先端テクノロジーに対応した高速・軽量なJavaScript UIライブラリ「Wijmo」の活用(AD)

マイクロソフト製品にも採用された「Wijmo(ウィジモ) 5」のモバイルWeb部品

ECMAScript 5に準拠した高速・軽量なJavaScript UIライブラリ「Wijmo 5」の活用 第7回

  • X ポスト
  • このエントリーをはてなブックマークに追加

入力にも表示にも使えるゲージ部品

 Wijmoのゲージ部品はスマートフォンでの操作に対応しており、タッチで値を変えることができます。ここでは自動車の点検記録をイメージしたWeb画面サンプル(002_wijmo_gauge.html)で、直線ゲージ(LinearGauge)と円形ゲージ(RadialGauge)の利用法を説明します。

図6 Wijmo 5のゲージサンプル (002_wijmo_gauge.html)
図6 Wijmo 5のゲージサンプル (002_wijmo_gauge.html)

 まずオイル、タイヤ、ウォッシャー液の状態を入力するゲージをLinearGaugeで作ります。各ゲージはリスト6のように、wj-linear-gaugeディレクティブで記述します。

リスト6 LinearGaugeで値を入力(002_wijmo_gauge.html)
<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ディレクティブを利用します。

リスト7 RadialGaugeで総合診断を表示(002_wijmo_gauge.html)
<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で、オイル・タイヤ・ウォッシャー液の平均値を返します。

リスト8 evalStateメソッドの実装(002_wijmo_gauge.html)
$scope.evalState = function(){
    return (
        $scope.oilRest +
        $scope.tireRest +
        $scope.washerRest
    ) / 3;
};

 (4)はゲージ値の表示形式で、表3のうちここではValue(現在値のみ表示)を指定しています。

表3 show-text属性の値
名前 内容
All 現在値・最小値・最大値を表示
MinMax 最小値・最大値を表示
Value 現在値を表示
None 何も表示しない

 (5)でゲージの領域(range)を表示するように指定し、(6)~(9)で複数の領域を定義しています。(6)の領域はwj-property="pointer"の指定により現在値を表示します。thicknessを0.5とすることでゲージの太さを標準の0.5倍にして、他の領域が裏に見えるようにしています。(7)~(9)が危険/注意/安全の領域を背景に表示する記述です。

 サンプルコードをWebブラウザで表示させて、上部のLinearGaugeをタッチ(またはマウスドラッグ)してオイル・タイヤ・ウォッシャー液の状態を入力すると、下部のRadialGaugeに安全度の総合診断がゲージと文字列で表示されます。

図7 LinearGaugeを操作するとRadialGaugeの表示に反映(002_wijmo_gauge.html)
図7 LinearGaugeを操作するとRadialGaugeの表示に反映(002_wijmo_gauge.html)

次のページ
目標達成度をわかりやすく表示するBulletGraph

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
最先端テクノロジーに対応した高速・軽量なJavaScript UIライブラリ「Wijmo」の活用連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト  吉川 英一(ヨシカワ エイイチ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9404 2016/05/17 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング