上記で紹介されたデザインコンポーネントは、 (ボタンをクリックまたはコンボボックス内で都市を選択することにより)イベントがトリガーされると SOAP リクエストを実行します。これは、表示される UTC 時刻と都市の時刻は手動で更新されない限りすぐに不正確な時刻を表示することになります。しかしながら、継続的に表示される時刻を更新する方法があります。 これは、 ページの更新時 イベントを使用すると行うことができます。
表示される都市の時刻を自動的に更新するには、以下のメカニズムを使用します。
•XML ファイル内のノード は、更新の間の一定の時間を、秒の単位で保留するように定義されています: $XML1/CityTime/RefreshTime
•ページの更新時 イベントはページで以下が行われると更新されるように定義されています: (i) ユーザーがデバイスの [更新] ボタン (下のスクリーンショット参照) を押した場合、および (ii) X が $XML1/CityTime/RefreshTime ノード内での数値である場合、 毎 X 秒後。 各ページの更新の都度、表示内での都市の時刻が更新されるように一連のアクションが定義されています。
•ラジオボタンによりユーザーはページの更新を 10/20/30/45/60 秒の間隔で行うことができます。
このメカニズムの主要な点は以下に説明されています.
3つのメソッドを使用してページの更新を定義することができます (下のスクリーンショット参照)。サンプルでは以下の2つの方法を用いてページを更新します:
•タイマーは、毎 X 秒です。秒数は、 $XML1/CityTime/RefreshTime 要素のコンテントとして定義されています。 (下のスクリーンショットでは、赤いサークルで囲まれています)。
•手動で、 ユーザーが [更新] ボタンを押すと更新されます (上のスクリーンショット参照)。
ディスプレイ内で各都市の現在の時刻を更新するには、以下を行います:
•ループの作成 は、各都市を反復します (定義は緑のサークルで囲まれています)。ループは整数のシーケンスを返します。各整数は、その City ノードのインデックスであることにより、 City ノードに繋がっています。ループ内でこれらのノードを更新しないため、直接City のノードを反復することはしません。また ノードが反復されている間は更新を行うことはできません。
•ループ内では、それぞれの都市のために以下が実行されます (i) (青いサークルで囲まれた)その都市の TimeZoneTime を取得するために SOAP リクエストが実行されます、そして (ii) (黄色いサークルで囲まれた)その都市のタイムゾーン内の現在の時刻を使用してその都市の Time ノードを更新します。
ループ アクション は、双方の方の更新に同様に使用することができ、データベース内の都市の現在の時刻を更新します。
(都市の時刻が更新される)ページの更新の間隔をユーザーが行うことを有効化するために、5つセットのラジオボタンを作成しました (下のスクリーンショット参照)。
ラジオボタンには、以下の設定があります:
•テキスト プロパティの値と チェックされた値 プロパティの値は、共に更新の間隔を設定します: 10/20/30/45/60 秒。 テキスト プロパティ の値は、ラジオボタンの近くの値を表示します (上のスクリーンショット参照)。 チェックされた値 プロパティの値は、ラジオボタンが選択された時に使用される XML データ値です。
•5つすべてのラジオボタンには、 $XML1/CityTime/RefreshTime 要素へのページソースリンクがあります。 これは、それぞれ相互的に排他的なセットを作成し、選択されたラジオボタンのチェックされた値は RefreshTime 要素のコンテンツとなります。
•各ボタンには、編集の終了時 イベントのために定義されたページタイマーの再開/停止アクションがあります。これは、 ページの更新時 イベント内で定義されたページタイマーを新しい更新の間隔を使用して再開するために必要です (上を参照) 。 タイマーは、 $XML1/CityTime/RefreshTime 要素から更新の間隔を取得することに注意してください (上を参照)。 (ノードへのページソースリンクのため) ラジオボタンの選択は、この要素ノードを更新します。
MobileTogether Designer 内でのシミュレーション を実行するために [F5] を押します。 $XML1/CityTime/RefreshTime ノードから取得された値を使用して、ページ更新のためのタイマーが開始されます。元のデータツリー内では 60 (秒) です。
•ラジオボタンの1つを選択すると、ボタンのチェックした値は $XML1/CityTime/RefreshTime ノードノードにパスされ、(ボタン イベントのページタイマーの再開/停止 アクションで定義されたとおり)ユーザーにより選択されたページ更新時間を使用して、タイマーが再開されます。
•また、都市の時刻を手動で更新するために、シミュレーターの右上にある [更新] ボタン をクリックすることができます (このトピックの最初のスクリーンショットを参照してください)。