將內嵌物件連結至模型

利用這個設計方法,您可將圖形元素以 JavaScript™ 物件內嵌到網頁中,然後將那些物件連結至 IBM® Rational® Rhapsody® 模型的即時值。 透過連結內嵌的圖形並將它們對映到啟用 Web 的元素值,您可以建立一個頁面,當處理程序已停止(例如,停止信號)時,會在 Web 介面上顯示影像;或者建立另一個頁面,指出處理程序正在執行中(如綠燈)。

程序

製作此類頁面的一個方法是使用所有靜態元素設計頁面,然後將 Script 新增到 HTML:

  1. 編輯您的 HTML 檔案,包括位於 </head> 標籤之前 Script 標籤中 HTML 檔案的標頭 manage.inc 檔案:
       <head>
          <title>Your Title Here</title>
          <script src='manage.inc'></script>
       </head>

    manage.inc 檔案包含 JavaScript 檔案的集合,可控制 Rational Rhapsody Web 介面的用戶端行為。

  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>

物件及連結的宣告會在文件的標頭中發生,位於第二對 script 標籤之間。

bind 函數會作為模型中元素值與 Web 介面之間的橋樑。它採用兩個引數,JavaScript 物件的變數名稱(範例中的 lamp)及 Rational Rhapsody 中的模型元素名稱(範例中的 ProcessController[0]::rotate)。

在範例中,下列行會重新整理 Web GUI 中的更新模型值:

   lamp.update = updateMyLamp;

此更新函數會接受一個引數,其為元素的新值。

如果頁面中的 GUI 控制項需要將資訊傳遞到裝置上,請呼叫對應物件的 set 方法。set 方法會接受一個引數,即新設定的值。


回饋