自分のモデルへの埋め込みオブジェクトのバインド

この方法では、自分の Web ページに図形要素を JavaScript オブジェクトとして埋め込み、その後そのオブジェクトを IBM® Rational® Rhapsody® モデルのリアルタイム値にバインドします。 埋め込みグラフィックをバインドして Web 対応要素の値にマッピングすることにより、プロセスが停止したときに Web インターフェースにイメージ (例えば、停止サイン) を表示するページやプロセスが実行していることを示す別のイメージ (青信号など) を作成できます。

手順

このようなページを作成する 1 つの方法は、すべての静的要素を持つページを設計して、HTML にスクリプトを追加します。

  1. </head> タグの前のスクリプト・タグ内の HTML ファイルのヘッダーの中にある manage.inc ファイルを含めて HTML ファイルを編集します。
       <head>
          <title>Your Title Here</title>
          <script src='manage.inc'></script>
       </head>

    manage.inc ファイルは Rational Rhapsody Web インターフェイスのクライアント・サイドの振る舞いを制御する JavaScript ファイルの集合を含んでいます。

  2. このページにモデル要素を埋め込むには、WebObject 型の JavaScript オブジェクトを作成し、bind 関数を使用して各オブジェクトをインターネットを介して管理、制御するデバイスの要素とバインドします。

タスクの結果

以下のサンプル・コードは、ブール要素の値が true の場合に黄色のランプを表示し、値が false の場合は赤色のランプを表示します。

   <html><head><title>Page Title</title>
   <script src='manage.inc'></script>
   <script>
   function updateMyLamp(val)
   {
      if (val == 'On') 
      {
         document.getElementById(‘myImage').src = 'redLamp.gif';
      }
      else
      {
         document.getElementById(‘myImage').src = 'yellowLamp.gif';
      }
   }
   </script>
   </head>
   <body>
   <script>
   var lamp = new WebObject;
   bind(window.lamp,
       'ProcessController[0]::OMBoolean_attribute');
   lamp.update = updateMyLamp;
   </script>
   <img id=myImage border=0>
   <hr noshade>
   <i>Rotate the bool values here<i> 
   <script>show('ProcessController[0]::rotate');</script>
   </body>
   </html>

オブジェクトの宣言とバインドはドキュメントのヘッダー内の 2 番目のスクリプト・タグ・ペア間で行われます。

bind 関数は、モデルと Web インターフェースの要素値間のブリッジの役目をします。これには、JavaScript オブジェクトの変数名 (例では lamp) と Rational Rhapsody のモデル要素の名前 (例では ProcessController[0]::rotate) の 2 つの引数があります。

例では、以下の行が Web GUI で更新されたモデル値を最新表示します。

   lamp.update = updateMyLamp;

この update 関数は 1 つの引数、要素の新しい値を受け付けます。

ページ内の GUI コントロールがデバイスに情報を渡す必要がある場合、対応するオブジェクトの set メソッドを呼び出します。set メソッドは、1 つの引数、新しく設定した値を受け付けます。


フィードバック