My Company Directory アプリケーションは、 登録簿にある現在の全従業員のレコードをリスト表示します。 このレコードはソート可能な列を持つ JTable (employeesTable) に表示されます。 ソート可能な列には、ラストネーム、ファーストネーム、E メール、従業員 ID が 含まれます。 テーブルのレコードを取得するには、サンプル Web サービスのデータ・ソース から戻されたデータ・オブジェクト に、employeesTable をバインド する必要があります。
作業対象の employeesTable に関するローカルのデータ・オブジェクト を取得するには、ビジュアル・エディターを使用し、 データ・ソース をアプリケーションに追加します。 データ・ソースは、サンプルの Web サービス・プロキシーに接続し、 アプリケーションに使用可能なサービス・メソッドを見つけます。 次に、このデータ・ソースから使用可能になる getLightEmployeeRecord サービスを選択します。 最後に、行データ・オブジェクト (lightEmployeeRecordRows) に戻されたフィールドに、 アプリケーションの employeesTable をバインド します。
Java ビジュアル・エディターに組み込まれたバインダー・クラスを使用して、 これらデータ・ソースおよびデータ・オブジェクトのすべてを素早く作成することができます。 ビジュアル・エディターは、ユーザーがビジュアル・コンポーネントをデータ・ファクトリーにバインドする際に、 ユーザーのプロジェクトに生成される汎用インターフェースおよびクラスのセットを提供します。 バインダー・クラスは、デフォルトで jve.generated という名前のパッケージに生成されます。 ビジュアル・エディターは、 ユーザーがユーザーの必要に合うようにさらにカスタマイズおよび拡張することができる汎用インプリメンテーションとしてのバインダー・クラスを提供します。 このチュートリアルは、さらに基本的で単純なデフォルトのバインダー・クラスの能力と柔軟性を明示します。
このチュートリアルでは、Web サービス・データ・ソース、数種類のデータ・オブジェクト、 数種類のバインダーをユーザーのアプリケーションで使用します。 このアプリケーションにこれらのオブジェクトのインスタンスを追加すると、 ビジュアル・エディターが必要なクラスをプロジェクト内の jve.generated パッケージに追加します。 このプロジェクトで、データ・バインダーのロジックの拡張、交換、または書き換えができます。 Java ビジュアル・エディターは、 このアプリケーションが使用しているデータ・オブジェクト、データ・ソース、 バインダーをデザイン・ビューのフリー・フォーム域に表示して、 バインディング・オブジェクトの視覚的なサポートを提供します。 ビジュアル・エディターは、複数のビジュアル・コンポーネント、データ・オブジェクト、およびデータ・ソースの間に線を引いて、 任意の選択したオブジェクトの現行バインディングを表示します。
次の図は、ビジュアル・コンポーネント、バインダー、データ・オブジェクト、 およびデータ・ソースがどのように相互作用するかを単純化した概要として示しています。 このチュートリアルでビルドするアプリケーションは、バインダーのやや複雑で、かつ創造的な用法を説明しています。 この図は、ユーザーがビルドしているサンプル・アプリケーション内のバインダー、データ・オブジェクト、 およびデータ・ソースを正確に示しているわけではありません。
図 1 では、各ビジュアル・コンポーネントは、バインダーそのものをデータ・オブジェクトと関連付けるか、ボタンの場合では、データ・ソースと関連付ける独自のバインダーを持っています。 テキスト・フィールドのバインダーは、フィールドを、データ・オブジェクトの特定のプロパティーにバインドします。 この図内の行データ・オブジェクトとデータ・オブジェクトは、両方とも、 それらのデータを、データ・ソース上のサービスへの直接呼び出しから取得します。 テキスト・フィールドのデータ・オブジェクトは、 テーブルで Service2 を呼び出すための引数として選択した行のキー値を使用します。 これにより、テーブル内で選択した行について、 おそらくさらに多くの情報を含むフル・レコードが戻されます。 次に、このフル・レコードは、Service3 を呼び出す際に、ボタンのアクション・バインダーに対して引数として使用されます。 これはフィールドに入力した値を更新するメソッドとすることもできます。 データ・オブジェクト、データ・バインダー、およびデータ・ソースの詳細な説明は、前述のリンクからアクセスできます。
サーバー上で実行中の Web サービスを対象に作業をするには、Web サービスと対話するために、Java アプリケーションに Java プロキシー、またはクライアントが必要です。 WSDL ファイルを使用すると、「Web サービス・クライアント」ウィザードを使用して、 Java プロキシーをこの Java プロジェクトに生成することができます。 MyDirectory プロジェクトには、このプロキシーを生成するために使用する EmployeeDirectory.wsdl ファイルが組み込まれています。 Java プロキシーを生成したならば、Web サービスを表すデータ・ソースを作成し、 ビジュアル・コンポーネントのバインディングを開始することができます。
Web サービス Java プロキシーをプロジェクトで生成するには、次のようにします。
employeesTable は、このアプリケーションでバインディングする最初のビジュアル・コンポーネントであるため、 ユーザーがプロジェクトに追加したばかりのサンプル Web サービス・プロキシーを指すデータ・ソースを作成する必要があります。 これより後の課題で、その他のビジュアル・コンポーネントをバインドする場合は、このデータ・ソースを再利用します。 このステップでは、Web サービス・データ・ソースと lightEmployeeRecordRows データ・オブジェクトを追加します。
プロジェクトおよびアプリケーションに加えられた変更に、注意してください。 この課題では、Web サービス・データ・ソースと行データ・オブジェクトを追加し、 行データ・オブジェクトに employeesTable をバインドするためのバインダーを追加しました。
これで、My Company Directory アプリ ケーションを実行すると、Web サービスによって既存の従業員レコードが 従業員テーブルに取り込まれるようになります。