セッション・サービスの使用

com.ibm.hats.runtime.services.SessionService インターフェースを実装するセッション・サービスは、ZIETrans リッチ・クライアント・アプリケーションのインスタンスと対話するためのメソッドを提供します。実行中の 各アプリケーション・インスタンス (変換ビュー・インスタンスなど) には セッション・サービスが関連付けられています。変換ビュー・インスタンスおよびセッション・サービスとの間には、1 対 1 のマッピングが存在します。

セッション・サービスの完全なコレクションを 取得するためのコード例を以下に示します。
IServiceManager serviceManager = 
         RcpRuntimePlugin.getDefault().getServiceManager();
Collection sessionServices = 
         serviceManager.retrieveServiceEntries( ServiceType.SESSION );
Iterator itSessionServices = 
         sessionServices.iterator();
while ( itSessionServices.hasNext() )
{         
ISessionService aSessionService = 
      (ISessionService) itSessionServices.next();
// Your custom code goes here     
}
表 1 に、アプリケーションのインスタンスである ISessionService オブジェクトによって呼び出すことができるメソッドを示します。
表 1. ISessionService メソッド
メソッド 説明

addPresentationListener          (IPresentationListener)

指定されたプレゼンテーション・リスナーをリストに 追加します。プレゼンテーションが更新されると、 リスナーに通知されます。

addSessionServiceListener        (ISessionServiceListener)

指定されたセッション・サービス・リスナーをリストに 追加します。セッションの状態が変化したとき、 またはコマンドが送信されるときには、リスナーに通知されます。
canSendCommand(String) 現在のセッション・サービスの状態で 指定のコマンドを送信できる場合は true のブール値を戻します。 それ以外の場合は false のブール値を戻します。
disconnect() ホスト・セッションを切断します。このメソッドは、アプリケーション・キーパッド上の「切断」ボタンによって呼び出されます。関連付けられている変換ビューは、このメソッドではクローズされません。このメソッドは、セッション・サービスが既にコマンドを処理している場合には、何もアクションを実行しません。
getApplication() このセッション・サービス・インスタンスに 関連付けられたアプリケーションを戻します。このメソッドによって 戻されたオブジェクトは情報の取得のみに使用してください。このオブジェクトを使用して 設定を変更しないでください。
getApplicationId() このセッション・サービスに関連付けられた アプリケーションのアプリケーション ID (プラグイン ID など) を戻します。
getApplicationService() このセッション・サービス・インスタンスに 関連付けられたアプリケーション・サービスを戻します。
getClientId() このセッション・サービス・インスタンスに 関連付けられたクライアント ID を戻します。
getCurrentState() このセッション・サービス・インスタンスの現在の状態を戻します。
getHostScreen() このセッション・サービス・インスタンスに 関連付けられたホスト画面を戻します。これは、ZIETrans ランタイムによって処理された最後のホスト画面を戻します。戻り値は必ずしも現在のホスト画面とは限りません。
getHostScreenDataAccessService() フォーム上のホスト・フィールド関連制御の値を含むモデルを戻します。このメソッドは、変換がビュー上で現在表示されている場合のみ有効です。
getLocale() メッセージの表示に使用するロケールを戻します。プロジェクト設定エディターでアプリケーションのクライアント・ロケール設定を変更した場合、 このロケールは Eclipse 環境のロケールと異なる場合があります。
getMacroPromptDataAccessService() モデル・データへのアクセスに使用するサービスを戻します。
getParameterDataAccessService() フォーム上の非ホスト・フィールド関連制御の値を含むモデルを戻します。このサービスは、グローバル変数値など、その他のフォーム値を設定および取得するために使用されます。これらの値は、現行フォームが送信されると ZIETrans ランタイムに渡されます。
getRuntimeService() ランタイム・サービスを戻します。
getServiceManager() このサービスをインスタンス化したサービス・マネージャーを戻します。
getSession() このセッション・サービス・インスタンスに 関連付けられたホスト・セッションを戻します。
getSessionServiceState() セッション・サービスの状態を状態オブジェクトとして戻します。
getViewId() 変換ビューのインスタンス ID を戻します。
isAsyncUpdateEnabled() 非同期更新が使用可能な場合は true のブール値を戻します。 それ以外の場合は false のブール値を戻します。
isCommandSupported(String) 指定されたコマンドが サポートされる場合は true のブール値を戻します。 それ以外の場合は false のブール値を戻します。
playMacro(String) 指定したマクロを実行します。
playMacro(String, Properties) 指定したマクロを実行し、マクロで定義されているすべてのプロンプトに値を引き渡します。

removePresentationListener             (IPresentationListener)

指定されたプレゼンテーション・リスナーを リストから除去します。

removeSessionServiceListener            (ISessionServiceListener)

指定されたセッション・サービス・リスナーを リストから除去します。
sendCommand(String) 指定したコマンドを送信します。一般的なコマンドは次のとおりです: [pf1]、[pf2]、[enter]、[fldext]。
注: コマンドの前後の大括弧は必須です。
sendCommand(String, Properties) String によって指定されたコマンドを 関連プロパティーと共に送信します。コマンドは、[enter] などの Host On-Demand ニーモニックか、または default などの ZIETrans コマンドです。追加のパラメーターを指定できます。これらのパラメーターは、 実行依頼される要求に組み込まれます。これらのパラメーターにより、 ホスト入力フィールドなどの SDO モデルまたは グローバル変数から収集される同じ名前のパラメーターが オーバーライドされます。オーバーライド・パラメーターの値は 型 String[] でなければなりません。
sendContinue() continue コマンドを送信します。このコマンドを送信して、「コンポジットを表示」アクションまたはマクロ・プロンプト・アクションから続行する必要があります。
sendEnter() Enter キー・コマンドを送信します。
sendF1() - 管理 - sendF24() 各 PF キー・コマンドを送信します。
sendRefresh() 更新コマンドを送信します。
sendShowDefault() デフォルト表示コマンドを送信します。
start(Properties) 指定された接続およびグローバル変数オーバーライドを使用して セッション・サービスを開始します。
stop() セッション・サービスを停止します。
updatePresentation(IPresentable) 指定されたプレゼンテーション可能オブジェクトで プレゼンテーション (一般には変換ビュー) を更新します。
変換ビューに関連する ISessionService オブジェクトは、ビューで getSessionService() メソッドを呼び出すことで取得できます。このメソッドは、ITransformationView インターフェースによって提供されます。このインターフェースは、基本 TransformationView クラスによってインプリメントされます。