直前の演習では、Web サービスで getLightEmployeeRecords() サービスが戻した lightEmployeeRecordRows データ・オブジェクトに employeesTable をバインドしました。 ここでは、テーブルで選択した従業員に基づいて、詳細フィールドに取り込みを行う必要があります。
行データ・オブジェクトにテーブルをバインドしたときに使用した JRowTableBinder を使用すると、 このステップは簡単になります。 JRowTableBinder を使うと、テーブル内の選択した要素を独立したデータ・オブジェクトとして 取り出すことができるので、これを getFullEmployeeRecord(java.lang.Integer) メソッドの パラメーターとして使用できます。 これによって、それぞれのテキスト・フィールドを selectedEmployeeRecord データ・オブジェクト内の対応するプロパティーに、 簡単にバインドできます。
たとえば、従業員のレコードに写真または添付資料が含まれている場合、 従業員全員のリストを作成するだけのために、全員の写真を取得することは望ましくないでしょう。 したがって、まず getLightEmployeeRecord サービスを使用してテーブルを作成し、 テーブルで選択された従業員のフル・レコードを getFullEmployeeRecord を 使って取り込みます。
このステップでは、「Last name」フィールド を selectedEmployeeRecord データ・オブジェクトの lastName プロパティーにバインドします。
従業員の残りの各詳細フィールドをバインドするには、「Last name」フィールドと同様のプロセスを行いますが、 データ・オブジェクトを追加する必要はありません。 すでに selectedEmployeeRecord データ・オブジェクトを追加済みのため、 それぞれのフィールドを selectedEmployeeRecord データ・オブジェクトの対応する プロパティーに単純にバインドすることができます。
| フィールド | selectedEmployeeRecord データ・オブジェクトのプロパティー |
|---|---|
| lastNameField | lastName |
| firstNameField | firstName |
| idField | employeeID |
| emailField | |
| phoneField | phoneNum |
| officeField | location.office |
| buildingField | location.building |
| siteField | location.site |
テキスト・フィールドのバインディングが終了したならば、デザイン域は次のイメージのようになるはずです。

「Employee ID」フィールドは、そのフィールド上で編集可能プロパティーが「false」に設定されているため、 使用不可になっています。 しかし、テキスト・フィールド・バインダーのデフォルト動作は、データ・オブジェクトに値が含まれていると、 使用可能の状態を変更します。 フィールドが最初の読み取り専用状態のままになるように、このバインダー動作をオフにすることができます。
とともにデザイン域に表示されます。
アイコンをクリックする。