目次 前 次 PDF


JoltBeansの使用

JoltBeansの使用
以前はアドオンとして使用可能であったJoltBeansは、現在はOracle Joltに組み込まれており、JavaBeansと同じぐらい簡単に使用できます。これらは、Java開発環境でJoltクライアントを構成するために使用するJavaBeansコンポーネントです。
Symantec Visual Caféなどの一般的なJava対応開発ツールを使用して、クライアント・アプリケーションをグラフィカルに構成できます。JoltBeansにはOracle JoltとのJavaBeans準拠インタフェースが用意されています。コードを記述しなくても、フル機能を備えたOracle Joltクライアントを開発できます。
このトピックには次の項が含まれます:
Jolt Beansの概要
JoltBeansは、2つのJava Beansセットで構成されています。1つ目のセットは、Jolt APIのBeansバージョンであるJoltBeansツールキットです。2つ目のセットは、Jolt対応AWT BeansとJolt対応Swing Beansを含むGUI Beansで構成されます。これらのGUIコンポーネントは、Java AWT標準コンポーネントおよびSwing標準コンポーネントの一部をJolt対応バージョンにしたものであり、最小限のコーディングまたはコーディングなしでJoltクライアントGUIを構築することを可能にします。
JoltBeansは、開発ツールのコンポーネント・パレットから作成中のJoltクライアント・アプリケーションのJavaフォームにドラッグ・アンド・ドロップできます。Beansのプロパティを移入し、アプリケーションやアプレットの各種のBeans間のイベント・ソース・リスナーの関係をグラフィカルに設定できます。通常は開発ツールを使用してイベントのフックアップ・コードを生成しますが、フックアップを手動でコーディングすることもできます。JoltBeansを使用したクライアント開発では、Oracle Tuxedoサービス・メタデータ・リポジトリと統合されるため、使用可能なOracle Tuxedo機能に簡単にアクセスできます。
注意:
現在、Oracleで動作が保証されているJoltBeans用の統合開発環境は、Symantec Visual Café 3.0のみです。ただし、JoltBeansは別のJava開発環境(Visual Ageなど)とも互換性があります。
JoltBeansツールキットを使用する場合は、JavaBeans対応の統合開発環境(IDE)を熟知しておくことをお薦めします。この章のウォークスルーでは、SymantecのVisual Café 3.0の統合開発環境に基づいてサンプル・アプレットを作成する基本的な手順を示しています。
JoltBeansの用語
JoltBeansの使用に関連する用語は、次のとおりです。
JavaBeans
移植性があり、プラットフォームに依存しない再利用可能なソフトウェア・コンポーネントであり、開発環境でグラフィカルに表示されます。
JoltBeans
2つのJava Beansセット(JoltBeansツールキットおよびJolt対応GUI Beans)。
カスタムGUI要素
JoltBeansと通信するJava GUIクラス。通信の手段として、JoltBeansにより提供されるJavaBeansイベント、メソッドおよびプロパティがあります。
Jolt対応Bean
JoltInputEventのソース、JoltOutputEventのリスナー、またはその両方であるBean。Jolt対応Beanは、Beanのガイドラインに準拠したカスタムGUI要素のサブセットです。
Jolt対応GUI Beans
GUIコンポーネント(Abstract Window Toolkit (AWT)およびSwing)の2つのパッケージで、どちらにもJoltList、JoltCheckBox、JoltTextField、JoltLabelおよびJoltChoiceコンポーネントが含まれます。
JoltBeansツールキット
JavaBeansに準拠したOracle Joltとのインタフェースであり、JoltServiceBean、JoltSessionBeanおよびJoltUserEventBeanが含まれます。
ワイヤリング
あるBeanが別のBeanからのイベントのリスナーとして登録されるように、Beanどうしを結び付けるプロセス。
JoltBeansをJava開発環境に追加する
JoltBeansを使用するには、JoltBeansを含むようにJava開発環境を設定しておく必要があります。
すべてのJoltクラスが含まれるように開発環境のCLASSPATHを設定します。
開発環境のコンポーネント・ライブラリにJoltBeansを追加します。
CLASSPATHの設定方法は、使用している開発環境によって異なります。
JoltBeansには、すべてのJoltBeansが含まれる.jarファイル・セットが含まれています。これらの.jarファイルをJava開発環境に追加すると、Javaツールのコンポーネント・ライブラリ内でJoltBeansが使用可能になります。たとえば、Symantec Visual Caféを使用する場合、Visual Caféの「Component Library」ウィンドウに.jarファイルが表示されるようにCLASSPATHを設定できます。これらの.jar ファイルのCLASSPATHは、開発環境で1回設定するだけです。これらの.jarファイルを開発環境のCLASSPATHに設定した後は、JoltBeansをコンポーネン・ライブラリに追加できます。あとは、Joltクライアント・アプリケーションを開発するJavaフォームにJoltBeanを直接ドラッグ・アンド・ドロップするだけです。
Java開発環境のCLASSPATHを設定するには、ご使用の開発環境の製品ドキュメントに記載された手順に従ってください。開発ツールのIDEから、jolt.jarファイルが置かれているディレクトリに移動します。jolt.jarファイルは通常、%TUXDIR%\udatadoj\joltというディレクトリ内にあります。jolt.jarファイルには、Joltの主要なクラスが含まれています。これらのクラスが含まれるようにCLASSPATHを設定してください。JoltBean .jarファイルをCLASSPATHに追加する必要はありません。これらのファイルは、IDEにコンポーネントとして追加するのみで使用できます。
Joltクラスが含まれるようにCLASSPATHを設定した後は、開発環境のコンポーネント・ライブラリにJoltBeansを追加できます。コンポーネント・ライブラリへの移入手順は、ご使用の開発環境のドキュメントを参照してください。
JoltBeansをコンポーネント・ライブラリに追加できるようになったら、JoltBeansの開発バージョンのみを追加してください。詳細は、「開発JoltBeansおよび実行時JoltBeansの使用」を参照してください。
開発用およびランタイム用のJoltBeans
JoltBeansを含む.jarファイルには、開発バージョンと実行時バージョンの2つのバージョンがあります。開発バージョンのJoltBeanの名前にはそれぞれ、接尾辞Devが付きます。実行時バージョンのクラスの名前にはそれぞれ、接尾辞Rtが付きます。たとえば、JoltBeanクラスの場合、開発バージョンはJoltBeanDevとなり、実行時バージョンはJoltBeanRtとなります。
開発プロセス中は、開発バージョンのJoltBeansを使用してください。開発JoltBeansには、グラフィックIDEでの開発に役立つ追加のプロパティが用意されています。たとえば、JoltBeansのグラフィック・プロパティ(bean information)を使用すると、開発環境でJoltBeansをグラフィック・アイコンとして操作できます。
実行時バージョンのJoltBeansには、このような追加のプロパティはありません。実行時には、Beansの追加の開発プロパティは必要ありません。ランタイムBeansは、開発バージョンのJoltBeansの簡易版です。
開発環境でアプリケーションをコンパイルすると、開発Beansを使用してコンパイルされます。ただし、開発環境外部でコマンド行からコンパイルを実行する場合は、アプリケーションのコンパイル時にランタイムBeansが使用されるようにCLASSPATHを設定することをお薦めします。
JoltBeansの基本的な使用方法
JoltBeansの基本的な使用手順は次のとおりです。
1.
「Java開発環境へのJoltBeansの追加」の説明に従って、Java開発環境のコンポーネント・ライブラリに開発バージョンのJoltBeansを追加します。
2.
Joltクライアント・アプリケーションまたはアプレット用に、開発環境のJoltBeansコンポーネント・パレットからJavaフォーム・デザイナにBeansをドラッグします。
3.
Beansのプロパティを移入し、アプリケーションまたはアプレットのBeans間のイベントソース・リスナーの関係を設定します(Beansどうしを関連付けます)。開発ツールによって、イベントのフックアップ・コードが生成されます。
4.
イベント・コールバックにアプリケーション・ロジックを追加します。
これらの手順については、以降の各項で詳しく説明します。JoltBeansのウォークスルーでは、例を示しながらこれらの手順について説明します。
JavaBeansイベントとOracle Tuxedoイベント
JavaBeansはイベントを介して通信します。Oracle TuxedoシステムとJavaBeans環境では、イベントの概念が異なります。Oracle Tuxedoアプリケーションでは、イベントはアプリケーションのある部分で発生し、同じアプリケーションの他の部分に通知されます。JoltBeansイベントは複数のBean間で伝達されます。
JoltBeansでOracle Tuxedoのイベント・サブスクリプションとイベント通知を使用する
Oracle Tuxedoでは、ブローカ・イベント通知および非請求イベント通知がサポートされています。Joltには、JoltクライアントがOracle Tuxedoイベントを受信するためのメカニズムが備わっています。JoltBeansにもこの機能が備わっています。
注意:
Oracle Tuxedoのイベントのサブスクリプションおよび通知は、JavaBeansのイベントとは異なります。
次の手順では、JoltBeansアプリケーションでOracle Tuxedoの非同期通知メカニズムがどのように使用されるかを示します。
1.
JoltUserEventBeanのsetEventName()メソッドおよびsetFilter()メソッドを使用して、サブスクライブするOracle Tuxedoイベントを指定します。
2.
イベント通知を受信するコンポーネントは、自身をJoltOutputListenerとしてJoltSessionBeanに登録します。
3.
JoltUserEventBeanでsubscribe()メソッドがコールされます。
4.
実際のOracle Tuxedoイベント通知が到着すると、JoltSessionBeanはserviceReturned()をコールして、JoltOutputEventをそのリスナーに送信します。JoltOutputEventオブジェクトにはOracle Tuxedoイベントのデータが含まれています。
クライアントはイベントを受信する必要がなくなると、JoltUserEventBeanでunsubscribe()をコールします。
注意:
クライアントが非請求型イベントのみにサブスクライブする場合は、プロパティ・シートを使用して設定できるsetEventName ("\\.UNSOLMSG")を使用します。EventNameFilterは、JoltUserEventBeanのプロパティです。
JoltBeansにおけるJavaBeansイベント
JoltBeansを使用して作成されたJoltクライアントのアプレットやアプリケーションは通常、Jolt対応GUI Beans (JoltTextFieldやJoltList)とJoltBeans (JoltServiceBeanやJoltSessionBean)で構成されています。Bean間での通信は主に、JavaBeansイベントを介して行われます。
Jolt対応Beansは、JoltInputEventのソース、JoltOutputEventのリスナー、またはその両方です。JoltServiceBeansは、JoltOutputEventのソースおよびJoltInputEventのリスナーです。
Jolt対応GUI Beansはプロパティとメソッドを公開しているため、Beansを(JoltServiceBeanで表される)Oracle Tuxedoサービスのパラメータに直接リンクできます。Jolt対応Beansは、内容が変更された場合、JoltInputEventを介してJoltServiceBeanに通知します。JoltServiceBeanは、サービス・コールの後で応答データが使用可能になると、登録されているすべてのJolt対応BeansにJoltOutputEventを送信します。Jolt対応GUI Beansには、サービスの対応する出力パラメータで内容を更新するロジックが含まれています。
図5-1は、JoltBeans間の関係を表しています。
図5-1 JoltBeans間の相互関係
 
 
JoltBeansツールキット
JoltBeansツールキットには、次のBeansが含まれています。
これらのコンポーネントは、一般的なJavaBeanの機能(再利用が簡単、開発をグラフィカルに行うことができる、など)をすべて備えた状態でJoltクラス・ライブラリ全体をBeansコンポーネントに変換します。
JoltBeansのクラス、コンストラクタおよびメソッドの詳細は、オンラインのOracle Jolt APIリファレンスを参照してください。
次の各項では、各Beanのプロパティについて説明します。
JoltSessionBean
JoltSessionBeanはOracle Tuxedoセッションを表し、JoltSessionクラス、JoltSessionAttributeクラスおよびJoltTransactionクラスの機能をカプセル化します。JoltSessionBeanには、Oracle Tuxedoセッションをオープンまたはクローズするメソッドに加え、タイムアウトやOracle Tuxedoユーザー名などのセッション属性やセキュリティ属性の設定に使用するプロパティがあります。
JoltSessionBeanは、Oracle Tuxedoセッションが確立またはクローズされるときにPropertyChangeイベントを送信します。PropertyChangeは、java.beansパッケージ内で定義されている標準的なBeanイベントです。このイベントの目的は、ソースBean内のプロパティ値の変更を他のBeanに通知することです。この場合、ソースはJoltSessionBean、ターゲットはJoltServiceBeansまたはJoltUserEventBeans、プロパティ変更はJoltSessionBeanのLoggedOnプロパティです。ログオンが成功してセッションが確立されると、LoggedOnはtrueに設定されます。ログオフが成功してセッションがクローズすると、LoggedOnプロパティはfalseに設定されます。
JoltSessionBeanには、beginTransaction()commitTransaction()rollbackTransaction()など、トランザクションを制御するためのメソッドが用意されています。
表5-1に、JoltSessionBeanのプロパティとその説明を示します。
 
表5-1 JoltSessionBeanのプロパティおよび説明
プロパティ
説明
AppAddress
JSLまたはJoltリレーのIPアドレス(ホスト名)およびポート番号を設定します。形式は//host:port number
です(myhost:7000など)。
AppPassword
必要に応じて、ログオン時に使用するOracle Tuxedoアプリケーション・パスワードを設定します。
IdleTimeOut
IDLETIMEOUT値を設定します。
inTransaction
トランザクションが開始され、コミットも中止もされていない場合はtrueを示し、それ以外の場合はfalseを示します。
LoggedOn
Oracle Tuxedoセッションが存在する場合はtrue、存在しない場合はfalseを示します。
ReceiveTimeOut
RECVTIMEOUT値を設定します。
SendTimeOut
SENDTIMEOUT値を設定します。
SessionTimeOut
SESSIONTIMEOUT値を設定します。
UserName
必要な場合、Oracle Tuxedoユーザー名を示します。
UserPassword
必要な場合、Oracle Tuxedoユーザー・パスワードを示します。
UserRole
必要な場合、Oracle Tuxedoユーザー・ロールを示します。
JoltServiceBean
JoltServiceBeanはリモートのOracle Tuxedoサービスを表します。サービス名は、JoltServiceBeanのプロパティとして設定されます。JoltServiceBeanは、他のBeanからのJoltInputEventをリスニングし、その入力バッファを設定します。JoltServiceBeanには、サービスを起動するためのcallService()メソッドがあります。JoltServiceBeanは、サービスの出力情報を伝達するJoltOutputEventのイベント・ソースです。callService()が成功すると、応答メッセージを伝達するJoltOutputEventを介してイベント・リスナーBeanに通知されます。
JoltServiceBeanの基礎となるメッセージ・バッファの変更および問合せには通常はイベントが使用されますが、JoltServiceBean には基礎となるメッセージ・バッファに直接アクセスするためのメソッド(setInputValue(…)getOutputValue(…)など)も用意されています。
表5-2に、JoltServiceBeanのプロパティとその説明を示します。
 
表5-2 JoltServiceBeanのプロパティおよび説明
プロパティ
説明
ServiceName
このJoltServiceBeanによって表されるOracle Tuxedoサービスの名前。
Session
Oracle Tuxedoクライアント・セッションへのアクセスを可能にする、Beanに関連付けられたJoltSessionBean。
Transactional
このJoltServiceBeanをJoltSessionBeanにより開始されたトランザクションに含める場合は、trueに設定します。
JoltUserEventBean
JoltUserEventBeanは、Oracle Tuxedoイベントへのアクセスを提供します。サブスクライブまたはサブスクライブ解除するOracle Tuxedoイベントを定義するには、このBeanの適切なプロパティ(イベント名およびイベント・フィルタ)を設定します。実際のイベント通知は、JoltSessionBeanからJoltOutputEvent形式で送信されます。
表5-3に、JoltUserEventBeanのプロパティとその説明を示します。
 
表5-3 JoltUserEventBeanのプロパティおよび説明
プロパティ
説明
EventName
Beanで表されるユーザー・イベントの名前を設定します。
Filter
イベント・フィルタを設定します。
Session
Oracle Tuxedoクライアント・セッションへのアクセスを可能にする、Beanに関連付けられたJoltSessionBean。
Jolt対応GUI Beans
Jolt対応GUI BeansはJava AWT Beansと Swing Beansで構成されており、Java Abstract Windowing Toolkitを継承しています。次が含まれます:
注意:
コンパイル時のエラーを回避するため、2つのパッケージからのBeanを組み合せて使用するのではなく、AWT BeanどうしまたはSwing Beanどうしで使用することをお薦めします。
JoltTextField
これは、java.awt.TextFieldおよびSwing JTextfieldをJolt対応に拡張したものです。JoltTextFieldにはサービスへの入力の一部が含まれています。JoltServiceBeanはJoltTextFieldによって発生したイベントをリスニングできます。JoltTextFieldは、内容が変更されるとリスナー(通常はJoltServiceBean)にJoltInputEventを送信します。
JoltTextField はサービスからの出力を表示します。この場合、JoltTextFieldはJoltServiceBeanからJoltOutputEventをリスニングし、リンクされたフィールドのオカレンスに従ってその内容を更新します。
JoltLabel
これはjava.awt.LabelおよびSwing JLabelをJolt対応に拡張したものであり、JoltFieldNameプロパティによってJolt出力バッファ内の特定のフィールドにリンクされています。フィールドが複数のオカレンスを持つ場合、このtextfieldがリンクされるオカレンスは、このBeanのoccurrenceIndexプロパティによって指定されます。JoltLabelをJoltServiceBeanに接続して、サービスからの出力を表示できます。JoltLabelはJoltServiceBeanからJoltOutputEventをリスニングし、リンクされたフィールドのオカレンスに従ってその内容を更新します。
JoltList
これは、java.awt.ListおよびSwing JlistをJolt対応に拡張したものであり、JoltFieldNameプロパティによってJoltの入力バッファまたは出力バッファ内の特定のJoltフィールドにリンクされています。Jolt入力バッファ内でフィールドが複数のオカレンスを持つ場合、このリストがリンクされるオカレンスは、このBeanのoccurrenceIndexプロパティによって指定されます。JoltListは次の2通りの方法でJoltServiceBeanに接続できます。
JoltListにはサービスの入力の一部が含まれています。JoltServiceBeanはJoltListによって発生したイベントをリスニングします。JoltListはlistboxの選択内容が変わると、そのリスナーにJoltInputEventを送信します。この場合、JoltInputEventには選択したアイテムの単一の値が移入されます。
JoltListはサービスからの出力を表示します。サービスの出力表示にJoltListが使用されると、JoltListはJoltServiceBeanからJoltOutputEventをリスニングし、リンクされたフィールドのすべてのオカレンスに従ってその内容を更新します。
JoltCheckbox
JoltCheckboxは、java.awt.Checkboxおよび Swing JCheckBoxをJolt対応に拡張したものであり、JoltFieldNameプロパティによってJolt入力バッファ内の特定のフィールドにリンクされています。フィールドが複数のオカレンスを持つ場合、このcheckboxがリンクされるオカレンスは、このBeanのoccurrenceIndexプロパティによって指定されます。
JoltCheckboxをJoltServiceBeanと接続して、サービスの入力の一部を含めることができます。JoltServiceBeanはJoltCheckboxによって発生したイベントをリスニングできます。checkboxの選択内容が変わると、JoltCheckboxはリスナー(通常はJoltServiceBean)にJoltInputEventを送信します。この場合、JoltInputEventは、チェックボックスが選択されていればStringデータ型のTrueValueプロパティで設定され、チェックボックスが選択されていなければFalseValueプロパティで設定されます。
JoltChoice
JoltChoiceは、java.awt.ChoiceおよびSwing JChoiceをJolt対応に拡張したものであり、JoltFieldNameプロパティによってJolt入力バッファ内の特定のフィールドにリンクされています。フィールドが複数のオカレンスを持つ場合、このchoiceがリンクされるオカレンスは、このBeanのoccurrenceIndexプロパティによって指定されます。
JoltChoiceをJoltServiceBeanと接続して、サービスの入力の一部を含めることができます。JoltServiceBeanはJoltChoiceによって発生したイベントをリスニングできます。choiceboxの選択内容が変わると、JoltChoiceはリスナー(通常はJoltServiceBean)にJoltInputEventを送信します。この場合、JoltInputEventは選択されたアイテムの単一の値で設定されます。
注意:
これらのクラスの詳細は、Oracle Jolt APIリファレンスを参照してください。
プロパティ・リストとプロパティ・エディタによるJoltBeansプロパティの変更
ほとんどのJoltBeansプロパティの値は、次の「プロパティ・リスト: 「...」ボタン」の図に示す統合開発環境(IDE)(Visual Caféなど)のプロパティ・リストで、右側の列を編集することにより変更できます。
JoltBeansの一部のプロパティに対しては、カスタム・プロパティ・エディタが用意されています。
カスタム・プロパティ・エディタにはプロパティ・リストからアクセスでき、プロパティ値の変更に使用するダイアログ・ボックスがあります。カスタム・プロパティ・エディタを起動するには、対応するプロパティ値の隣にある「...」ボタンをクリックします。
図5-2 プロパティ・リスト: 「...」ボタン
「...」ボタンをクリックすると、図5-3に示すようなプロパティ・エディタが表示されます。
図5-3 カスタム・プロパティ・エディタ・ダイアログ・ボックス
.
JoltBeansのカスタム・プロパティ・エディタは、キャッシュされた情報を読み取ります。最初はキャッシュされた情報がないため、プロパティ・エディタを初めて使用するときは、このダイアログ・ボックスには何も表示されません。Oracle Tuxedoサービス・メタデータ・リポジトリにログオンし、リポジトリからプロパティ・エディタ・キャッシュをロードします。
ログオンおよびプロパティ・リストとプロパティ・エディタの使用方法の詳細は、「Oracle Tuxedoサービス・メタデータ・リポジトリの使用とプロパティ値の設定」を参照してください。
JoltBeansクラス・ライブラリのウォークスルー
このウォークスルーでは、次の目的で使用するアプレットの作成方法について説明します。
アカウントIDの入力
「照会」ボタンのクリック
口座残高の表示(次の図を参照)
図5-4は、JoltBeansを含む完成したJavaフォームの例を示しています。このアプレットにより、Oracle Tuxedoに組み込まれているBANKAPPサンプルのINQUIRYサービスのクライアント機能が実装されます。このサンプルを実行するには、Oracle Tuxedoサーバーが実行されている必要があります。
図5-4 サンプルの照会アプレット
 
Javaフォームで必要な各アイテムの例は、図「Visual Café 3.0フォーム・デザイナ」を参照してください。図の各アイテムについては、次の表「必要なフォーム要素」で説明しています。
 
表5-4 必要なフォーム要素
要素
用途
アプレット(JFCアプレットが選択された場合はJApplet)
開発環境でBeanをペイントするときに使用するフォーム。
JoltSessionBean
Oracle Tuxedoセッションにログオンします。
JoltTextField
ユーザーから入力を取得します(この場合はACCOUNT_ID)。
JoltTextField
結果を表示します(この場合はSBALANCE)。
JoltServiceBean
Oracle Tuxedoサービスにアクセスします。(この場合、BANKAPPからINQUIRY)。
ボタン
アクションを開始します。
ラベル
アプレットのフィールドを説明します。
サンプル・フォームの作成
この例は、Visual Café 3.0の統合開発環境(IDE)を使用して作成されたサンプル・フォームです。この例は、口座IDを入力し、Oracle Tuxedoサービスを使用して口座残高を取得して表示するためのアプレットの作成方法を示しています。
このサンプルを作成するには、次の基本手順に従います。
1.
Visual Caféで、「File」「New Project」を選択し、JFCアプレットまたはAWTアプリケーションを選択します。この手順により、JoltBeansのドロップ先の基本的なフォーム・デザイナが提供されます。
2.
アプレットで使用したいすべてのJoltBeansをコンポーネント・ライブラリからフォーム・デザイナにドラッグ・アンド・ドロップします。
3.
プロパティ・リストまたはカスタム・プロパティ・エディタを使用して、Beanを変更またはカスタマイズします。
4.
インタラクション・ウィザードを使用してBeanを関連付けます。
5.
アプレットをコンパイルします。
これらの手順は、次の項でさらに詳しく説明されます。
注意:
以前のVisual Caféのバージョンに用意されていたグラフィカル・インタフェースは、Visual Café 3.0のインタフェースとは異なります。このサンプル・アプレットは、以前のバージョンのVisual Caféを使って作成することもできますが、インタラクション・ウィザードでの手順が若干異なります。
JoltBeansをフォーム・デザイナ上に配置する
1.
「File」「New Project」を選択し、「JFC Applet」を選択します。
2.
Beansをコンポーネント・ライブラリからフォーム・デザイナのパレットにドラッグ・アンド・ドロップします(図5-5を参照)。
図5-5 Visual CaféにおけるJoltBeansとフォーム・デザイナ
次の図「Visual Café 3.0のフォーム・デザイナ」は、フォーム・デザイナのパレットに配置されたJoltBeansがどのように表示されるかを示しています。
図5-6 Visual Café 3.0のフォーム・デザイナ
3.
各Beanのプロパティを設定します。ボタン、ラベルまたはフィールドの変更やカスタマイズを行うには、プロパティ・リストを使用します。カスタム・プロパティ・エディタを使用するJoltBeansもあります。
「JoltTextFieldのプロパティ・リストとカスタム・プロパティ・エディタの例」は、ボタン・プロパティ・リストにあるJoltFieldNameを選択すると、カスタム・プロパティ・エディタがどのように表示されるかを示しています。
4.
たとえば、JoltTextFieldのJoltFieldNameプロパティをACCOUNT_IDに設定します。
注意:
JoltBeansのプロパティの設定と変更の詳細は、「Oracle Tuxedoサービス・メタデータ・リポジトリの使用とプロパティ値の設定」を参照してください。
表5-5に、設定する必要があるプロパティ値を示します。太字およびイタリックのテキストで示した値は必須値であり、普通の文字で示した値は推奨値です。
 
表5-5 必須および推奨のプロパティ値
Bean
プロパティ
label1
Text
Account ID
label2
Text
Balance
JoltTextField1
名前
accountId
JoltTextField1
JoltFieldName
ACCOUNT_ID
JoltTextField2
名前
balance
JoltTextField2
JoltFieldName
SBALANCE
JoltSessionBean1
AppAddress
//tuxserv:2010
JoltServiceBean1
名前
inquiry
JoltServiceBean1
ServiceName
INQUIRY
button1
ラベル
Inquiry
注意:
この例では、occurrenceIndexのデフォルト値0は両方のJoltTextFieldに有効です。
JoltBeanのプロパティについての一般的な説明については、次の図「JoltTextFieldのプロパティ・リストとカスタム・プロパティ・エディタの例」および「Oracle Tuxedoサービス・メタデータ・リポジトリの使用とプロパティ値の設定」を参照してください。
図5-7 JoltTextFieldのプロパティ・リストとカスタム・プロパティ・エディタの例
 
5.
JoltFieldNameのプロパティ値を変更するには、プロパティ・リストのJoltFieldNameの「...」ボタンをクリックします。
カスタム・プロパティ・エディタが表示されます。
6.
新しいフィールド名(この例では「ACCOUNT_ID」)を選択または入力して、「OK」をクリックします。
変更内容は、「JoltFieldNameを変更したJoltTextFieldプロパティ・リスト」のプロパティ・リストと「プロパティが変更されたアプレット・フォーム・デザイナの例」のテキスト・フィールドに反映されます。
注意:
カスタム・プロパティ・エディタに表示されるプロパティはローカルにキャッシュされます。そのため、元のデータベースが変更された場合は、「リフレッシュ」ボタンを押さないと、最新の使用可能なプロパティが表示されません。
図5-8 JoltFieldNameを変更したJoltTextFieldプロパティ・リスト
 
 
次の「プロパティが変更されたアプレット・フォーム・デザイナの例」は、Beanのプロパティ・リストのフィールドにテキストを追加した後、ボタンやテキスト・フィールドのテキストがどのように変わるかを示します。
図5-9 プロパティが変更されたアプレット・フォーム・デザイナのJoltBeansの例
 
 
 
7.
右の列にプロパティ値を設定した後、Visual CaféのInteraction Wizardを使用してBeanをワイヤリングすることにより、Beanのインタラクションの仕方を定義します。詳細は、「必須および推奨のプロパティ値」を参照してください。詳細は、「JoltBeansのワイヤリング」を参照してください。
JoltBeansのワイヤリング
すべてのBeanがフォーム上に配置され、プロパティを設定した後、それらのイベントを関連付けます。次の「JoltBeansを関連付ける順序」は、Beanを関連付ける際の手順の例を示しています。
Beanをワイヤリングすると、様々なフォームのBean間のイベント・ソースとイベント・リスナーの関係を確立できます。たとえば、JoltServiceBeanはボタンのActionEventのリスナーであり、このイベントをリスニングしたときにcallService()を呼び出します。Visual Caféのインタラクション・ウィザードを使ってBeanどうしを関連付けてください。
図5-10は、このサンプル・アプレットを作成するためにBeanを関連付ける順序を示しています。この図の中の数字は、続く手順説明の番号と対応しています。
図5-10 JoltBeansを関連付ける順序
次の手順は、「JoltBeansを関連付ける順序」に示した番号に対応しています。これらの手順は、次の項でさらに詳しく説明します。
ステップ1: JoltSessionBeanとログオンを関連付ける
ステップ2: propertyChangeを使用してJoltSessionBeanをJoltServiceBeanに関連付ける
ステップ3: JoltInputEventを使用して入力項目accountIDのJoltTextFieldをJoltServiceBeanに関連付ける
ステップ4: JoltActionを使用してボタンをJoltServiceBeanに関連付ける
ステップ5: JoltOutputEventを使用してJoltServiceBeanをBalanceのJoltTextFieldに関連付ける
ステップ6: JoltSessionBeanとログオフを関連付ける
ステップ7: アプレットをコンパイルする(図には表示されていません)
ステップ1: JoltSessionBeanとログオンを関連付ける
1.
「フォーム・デザイナ」ウィンドウで、「インタラクション・ウィザード」ボタンをクリックします。
2.
アプレット・ウィンドウ内をクリックしてJoltSessionBeanにドラッグします(図5-11を参照)。
 
 
図5-11 アプレットをJoltセッションBeanに関連付ける
 
「「ComponentShown」イベントを選択する」に示すような「Interaction Wizard」ウィンドウが表示されます。
「What event in JApplet1 do you want to start the interaction?」というメッセージが表示されます。
3.
「Interaction Wizard」ウィンドウでインタラクションを開始するイベントとして「ComponentShown」を選択します(図5-12を参照)。
図5-12 「ComponentShown」イベントを選択する
 
 
 
 
 
4.
「Next」をクリックします。
「Interaction Wizard」ウィンドウが表示されます(「「Logon to the TUXEDO System」を選択する」を参照)。
「What do you want to happen when Japplet1 fires componentShown event?」というメッセージが表示されます。
5.
「Perform an action」ラジオ・ボタンを選択し、「Logon to the TUXEDO system」を選択します(図5-13を参照)。
図5-13 「Logon to the TUXEDO System」を選択する
 
6.
「Finish」をクリックします。
「ステップ1: JoltSessionBeanとログオンを関連付ける」を終了すると、アプレットを最初に開いたときに送信されるイベント(例: ComponentShown)で、JoltSessionBeanのlogon()メソッドをトリガーできるようになります。
ステップ2: propertyChangeを使用してJoltSessionBeanをJoltServiceBeanに関連付ける
1.
Visual Caféの「フォーム・デザイナ」ウィンドウのツールバーで「Interaction Tool」アイコンをクリックします。
2.
JoltSessionBeanをクリックしてJoltServiceBeanにドラッグします(図5-14を参照)。
図5-14 JoltSessionBeanをJoltServiceBeanに関連付ける
 
「「propertyChange」イベントを選択する」に示すような「Interaction Wizard」ウィンドウが表示されます。
「What event in joltSessionBean1 do you want to start the interaction?」というメッセージが表示されます。
3.
インタラクションを開始するイベントとして「propertyChange」を選択します(図5-15を参照)。
図5-15 「propertyChange」イベントを選択する
 
4.
「Next」をクリックします。
「Interaction Wizard」ウィンドウが表示されます(図「「Handle a Jolt property change event」を選択する」を参照)。
「What do you want to happen when joltSessionBean1 fires propertyChange event?」というメッセージが表示されます。
5.
メソッドとして「Handle a Jolt property change event」を選択します(図5-16を参照)。
図5-16 「Handle a Jolt property change event」を選択する
 
6.
「Next」をクリックします。
「Interaction Wizard」ウィンドウが表示されます(図「「joltSesssionBean1」を選択する」を参照)。
「How do you want to supply the parameter to this method?」というメッセージが表示されます。
使用可能なオブジェクトとアクションの一覧が表示されます。
7.
次の図のように、アクションを実行するオブジェクトとして「joltSessionBean1」を選択します。
8.
アクションとして「Get the current Property Change Event」オブジェクトを選択します(図5-17を参照)。
図5-17 「joltSesssionBean1」を選択する
 
9.
「Finish」をクリックします。
「ステップ2: propertyChangeを使用してJoltSessionBeanをJoltServiceBeanに関連付ける」を終了すると、logon()完了時にJoltSessionBeanがpropertyChangeイベントを送信できるようになります。JoltServiceBeanはこのイベントをリスニングし、サービスをこのセッションに関連付けます。
ステップ3: JoltInputEventを使用して入力項目accountIDのJoltTextFieldをJoltServiceBeanに関連付ける
1.
Visual Caféの「フォーム・デザイナ」ウィンドウで「インタラクション・ウィザード」アイコンをクリックします。
2.
「accountID JoltTextfield Bean」を選択し、そのままJoltServiceBeanへドラッグします。
次の図のように、「インタラクション・ウィザード」ウィンドウが表示されます。
「What event in accountId do you want to start the interaction?」というメッセージが表示されます。
3.
イベントとして「dataChanged」を選択します(図5-18を参照)。
図5-18 「dataChanged」イベントを選択する
4.
「Next」をクリックします。
「Interaction Wizard」ウィンドウが表示されます(図「オブジェクトとして「inquiry」、アクションとして「Handle a Jolt input event」を選択する」を参照)。
「What do you want to happen when accountId fires dataChanged event?」というメッセージが表示されます。
5.
次の図のように、パラメータを実行するオブジェクトとしてjoltServiceBeanの「inquiry」を選択します。
6.
アクションとして「Handle a jolt input event」を選択します(図5-19を参照)。
図5-19 オブジェクトとして「inquiry」、アクションとして「Handle a Jolt input event」を選択する
 
7.
「Next」をクリックします。
「オブジェクトとして「accountId」、アクションとして「Get the current Jolt Input Event」を選択する」に示すような「Interaction Wizard」ウィンドウが表示されます。
「How do you want to supply the parameter to this method?」というメッセージが表示されます。
使用可能なオブジェクトとアクションの一覧が表示されます。
8.
次の図のように、オブジェクトとして「accountId」を選択します。
9.
アクションとして「get the current Jolt Input Event」を選択します(図5-20を参照)。
図5-20 オブジェクトとして「accountId」、アクションとして「Get the current Jolt Input Event」を選択する
10.
「Finish」をクリックします。
「ステップ3: JoltInputEventを使用して入力項目accountIDのJoltTextFieldをJoltServiceBeanに関連付ける」を完了すると、最初のテキスト・フィールドに口座番号を入力できるようになります。このJoltTextFieldのJoltFieldNameプロパティがACCOUNT_IDに設定されます。このテキスト・ボックス内のテキストが変更されるたびに、JoltInputEventがJoltServiceBeanに送信されます。(JoltServiceBeanは、このテキスト・ボックスからJoltInputEventをリスニングします。)JoltInputEventオブジェクトには、このフィールドの名前、値、およびオカレンス索引が含まれます。
ステップ4: JoltActionを使用してボタンをJoltServiceBeanに関連付ける
1.
Visual Caféの「フォーム・デザイナ」ウィンドウで「インタラクション・ウィザード」アイコンをクリックします。
2.
「Inquiry」ボタンをクリックし、JoltServiceBeanへドラッグします。
次の図のように、「インタラクション・ウィザード」ウィンドウが表示されます。
「What event in button1 do you want to start the interaction?」というメッセージが表示されます。
3.
イベントとして「actionPerformed」を選択します(図5-21を参照)。
図5-21 「actionPerformed」イベントを選択する
4.
「Next」をクリックします。
「「inquiry」オブジェクトおよび「Invoke the TUXEDO Service...」アクションを選択する」に示すような「Interaction Wizard」ウィンドウが表示されます。
「What do you want to happen when button1 fires actionPerformed event?」というメッセージが表示されます。
5.
次の図のように、オブジェクトとして「inquiry」を選択します。
6.
アクションとして「Invoke the TUXEDO Service represented by this Bean」を選択します(図5-22を参照)。
図5-22 「inquiry」オブジェクトおよび「Invoke the TUXEDO Service...」アクションを選択する
7.
「Finish」をクリックします。
「ステップ4: JoltActionを使用してボタンをJoltServiceBeanに関連付ける」を終了すると、JoltServiceBeanのcallService()メソッドを、「Inquiry」ボタンからActionEventでトリガーできます。
ステップ5: JoltOutputEventを使用してJoltServiceBeanをBalanceのJoltTextFieldに関連付ける
1.
Visual Caféの「フォーム・デザイナ」ウィンドウで「インタラクション・ウィザード」アイコンをクリックします。
2.
「JoltServiceBean」を選択して、「AmountJoltTextField Bean」へドラッグします。
次の図のように「インタラクション・ウィザード」ウィンドウが表示されます。
「What event in inquiry do you want to start the interaction?」というメッセージが表示されます。
3.
イベントとして「serviceReturned」を選択します(図5-23を参照)。
図5-23 「ServiceReturned」イベントを選択する
4.
「Next」をクリックします。
「オブジェクトとして「balance」を選択し、アクションとして「Handle a service returned event」を選択する」に示すような「Interaction Wizard」ウィンドウが表示されます。
「What do you want to happen when inquiry fires serviceReturned event?」というメッセージが表示されます。
5.
次の図のように、オブジェクトとして「balance」を選択します。
6.
アクションとして「Handle a service returned event...」を選択します(次の図を参照)。
図5-24 オブジェクトとして「balance」を選択し、アクションとして「Handle a service returned event」を選択する
7.
「Next」をクリックします。
「Interaction Wizard」ウィンドウが表示されます(「オブジェクトとして「inquiry」、アクションとして「Get the JoltOutputEvent object」を選択する」を参照)。
「How do you want to supply the parameter to this method?」というメッセージが表示されます。
8.
次の図のように、オブジェクトとして「inquiry」を選択します。
9.
アクションとして「Get the JoltOutputEvent」オブジェクトを選択します(図5-25を参照)。
図5-25 オブジェクトとして「inquiry」、アクションとして「Get the JoltOutputEvent object」を選択する
10.
「Finish」をクリックします。
「ステップ5: JoltOutputEventを使用してJoltServiceBeanをBalanceのJoltTextFieldに関連付ける」を終了すると、JoltServiceBeanはリモートのサービスから応答データを受信したときにJoltOutputEventを送信できるようになります。JoltOutputEventオブジェクトには、出力バッファのフィールドにアクセスするためのメソッドが入っています。JoltTextFieldはINQUIRYサービスの結果を表示します。
ステップ6: JoltSessionBeanとログオフを関連付ける
1.
Visual Caféの「フォーム・デザイナ」ウィンドウで「インタラクション・ウィザード」アイコンをクリックします。
2.
アプレット・ウィンドウの一点をクリックし(Beanはクリックしない)、そのままJoltSessionBeanへドラッグします。
次の図のように「インタラクション・ウィザード」ウィンドウが表示されます。
「What event in JApplet1 do you want to start the interaction?」というメッセージが表示されます。
3.
イベントとして「componentHidden」を選択します(図5-26を参照)。
図5-26 「componentHidden」イベントを選択する
4.
「Next」をクリックします。
「Interaction Wizard」ウィンドウが表示されます(図「オブジェクトとして「joltSessionBean1」、アクションとして「Logoff from the TUXEDO system」を選択する」を参照)。
「What do you want to happen when JApplet1 fires componentHidden event?」というメッセージが表示されます。
5.
アクションを実行するオブジェクトとして「joltSessionBean1」を選択します。
6.
アクションとして「Logoff from the TUXEDO system」を選択します(図5-27を参照)。
図5-27 オブジェクトとして「joltSessionBean1」、アクションとして「Logoff from the TUXEDO system」を選択する
7.
「Finish」をクリックします。
「ステップ6: JoltSessionBeanとログオフを関連付ける」を終了すると、アプレットが非表示になったときに送信されるイベント(例: componentHidden)が、JoltSessionBeanのlogoff()メソッドをトリガーできるようになります。
ステップ7: アプレットをコンパイルする
JoltBeansどうしをワイヤリングした後、アプレットをコンパイルします。また、例外処理用に空のキャッチ・ブロックに値を入力することもお薦めします。メッセージ・ウィンドウに、コンパイル・エラーや例外がないか確認します。
詳細は、「Oracle Tuxedoサービス・メタデータ・リポジトリの使用とプロパティ値の設定」を参照してください。また、「JoltBeanに固有のプロパティ」の表と「JoltServiceBeanのプロパティ・エディタ」の図を参照してください。
サンプル・アプリケーションの実行
サンプル・アプリケーションを実行するには、Oracle Tuxedoサーバーが実行されていなければなりません。次に、口座番号を「Account ID」フィールドに入力します。BANKAPPデータベース内にある口座番号であれば、どの口座番号を使用してもかまいません。次の2つの口座番号は、サンプル・アプリケーションで使用できる口座番号の例です。
80001
50050
Oracle Tuxedoサービス・メタデータ・リポジトリの使用とプロパティ値の設定
カスタム・プロパティ・エディタは以下のプロパティのために用意されています。
JoltFieldName (Jolt対応AWT beans)
serviceName (JoltServiceBean)
プロパティ・リストからアクセスされるプロパティ・エディタには、プロパティを追加または変更するときに使用するダイアログ・ボックスが含まれています。対応するプロパティ値の隣にある「...」ボタンを選択することにより、このダイアログ・ボックスをプロパティ・リストから呼び出すことができます。
JoltBeansの中には、プロパティ・リスト・フィールドへの入力が必要なものもあります。表5-6に、Beansをリストします。
 
表5-6 JoltBeanに固有のプロパティ
JoltBean
プロパティ
入力の説明
JoltSessionBean
appAddress
userName、PasswordまたはAppPassword
例: //host:port
Oracle Tuxedoユーザー名とパスワードを入力します。
JoltServiceBean
serviceName
isTransactional
例: INQUIRY
トランザクションの処理中にサービスを実行する必要がある場合はtrueに設定します。サービスがトランザクションを必要としない場合は、isTransactionalをfalseに設定します。
JoltUserEventBean
eventName
filter
Oracle Tuxedo tpsubscribeコールを参照してください。
すべてのJolt対応GUI Bean
joltFieldName
occurrenceIndex
たとえば、ACCOUNT_IDを指定します。
同じ名前の複数のフィールド。索引は0から始まります。
JoltCheckbox
TrueValueおよびFalseValue
チェック・ボックスの状態に対応するフィールド値。
プロパティ・エディタは、リポジトリからキャッシュされた情報を読み取り、使用可能なサービス名とリストボックスのデータ要素を返します。ServiceNameのプロパティ・エディタの例を、次の「JoltServiceBeanのプロパティ・エディタ」に示します。
Beanのプロパティを追加または変更するには、以下の手順に従います。
1.
「ServiceName」フィールドの「...」をクリックして、サービス名を選択します(図5-28を参照)。
図5-28 JoltServiceBeanのプロパティ・エディタ
ServiceNameのカスタム・プロパティ・エディタが表示されます(図5-29を参照)。
図5-29 ServiceNameのカスタム・プロパティ・エディタ
 
注意:
Repositoryデータベースに接続できない、または接続したくない場合は、テキスト・ボックスにサービス名を入力し、ステップ7に進んでください。
2.
ログオンしていない場合は、Joltサーバーが動作していることを確認し、「ログオン」を選択します。
図5-30に示すような「JoltBeans Repository Logon」が表示されます。
図5-30 JoltBeans Repository Logon
3.
Serverフィールドに、Oracle TuxedoまたはJoltリレー・マシンの名前を入力し、Port numberフィールドにJSLまたはJoltリレーを入力します。
4.
パスワード、およびユーザー名情報(必要な場合)を入力して「ログオン」をクリックします。
カスタム・プロパティ・エディタがリポジトリからキャッシュをロードします(「サービスが選択されたプロパティ・エディタ」を参照)。
5.
に示すリスト・ボックス内の該当するサービス名を選択します。
6.
プロパティ値(サービス名またはフィールド名)を直接入力します。
用意されているテキストボックスに入力してください。
7.
カスタム・プロパティ・エディタ・ダイアログ・ボックスの「OK」をクリックします。
テキストボックスに入力した内容がBeanのプロパティに設定されます。
図5-31 サービスが選択されたプロパティ・エディタ
 
8.
カスタム・プロパティ・エディタ・ダイアログ・ボックスの「OK」をクリックします。
JoltBeansのプログラミング
以下の手順が追加されています。
JoltBeansによるトランザクションの使用
Oracle Tuxedoアプリケーション・サービスが、データベースを更新する機能を持つ場合があります。この場合は、JoltBeansでトランザクションを使用できます。たとえばBANKAPPでは、TRANSFERとWITHDRAWALのサービスがBANKAPPのデータベースを更新します。アプリケーション・サービスが読取り専用(例: INQUIRY)の場合には、トランザクションを使用する必要はありません。
以下は、JoltBeansでトランザクションを使用する例です。
1.
JoltServiceBeanクラスのsetTransactional (true)メソッドを呼び出します。 isTransactionalはJoltServiceBeanのブール型のプロパティです。
2.
JoltSessionBeanクラスのbeginTransaction()メソッドを呼び出します。
3.
JoltServiceBeanクラスのcallService()メソッドを呼び出します。
4.
サービス・コールの結果により、JoltSessionBeanクラスのcommitTransaction()メソッドまたはrollbackTransaction()メソッドを呼び出します。
JoltService BeanでカスタムGUI要素を使用する
JoltBeansには、Jolt対応の限定されたGUIコンポーネント・セットが用意されています。また、Jolt対応でないコントロールをJoltServiceBeanと一緒に使用することもできます。JoltServiceBeanには、JoltServiceBeanによって表されるサービスの出力情報を表示するコントロールをリンクできます。また、入力情報を表示するコントロールをリンクすることもできます。
たとえば、GUI要素はJoltOutputListenerインタフェースを実装するアダプタ・クラスを使用して、JoltOutputEventをリスニングできます。JoltServiceBeanはJoltOutputEventのイベント・ソースとして、JoltOutputEventを送信するときにアダプタ・クラスのserviceReturned()メソッドを呼び出します。serviceReturned()の内部では、イベント・オブジェクトからの情報を使用して、コントロールの内部データが更新されます。
開発ツールは、JoltServiceBeanとGUI要素が関連付けられるとアダプタ・クラスを生成します。
2つ目の例として、GUI要素はJoltServiceBeanのsetInputTextValue()メソッドを呼び出すことができます。GUI要素にはJoltServiceBeanによって表されるOracle Tuxedoサービスへの入力データが含まれています。
3つ目の例として、GUI要素は必要なメソッド(addJoltInputListener()removeJoltInputListener())を実装でき、JoltInputEventのイベント・ソースとしての役割を果たします。JoltServiceBeanは、これらのイベントのイベント・リスナーとしての役割を果たします。コントロールは、状態が変わる場合にJoltInputEventを送信して、入力情報でJoltServiceBeanを更新します。

Copyright ©1994, 2017,Oracle and/or its affiliates. All rights reserved