In der vorhergehenden Übung haben Sie die employeesTable an das Datenobjekt 'lightEmployeeRecordRows' gebunden, das seinerseits vom Service 'getLightEmployeeRecords()' im Web-Service zurückgegeben wurde. Nun müssen Sie die Detailfelder anhand des in der Tabelle ausgewählten Mitarbeiters ausfüllen.
Der JRowTableBinder, der beim Binden der Tabelle an das Zeilendatenobjekt verwendet wurde, vereinfacht diesen Schritt. Der JRowTableBinder macht das in der Tabelle ausgewählte Element als gesondertes Datenobjekt zugänglich, das als Parameter für die Methode 'getFullEmployeeRecord(java.lang.Integer)' verwendet werden kann. Sie können dann jedes Textfeld einfach an die entsprechende Eigenschaft im Datenobjekt 'selectedEmployeeRecord' binden.
Wenn der Mitarbeiterdatensatz beispielsweise ein Foto oder einen Anhang enthält, möchten Sie beim einfachen Abrufen der vollständigen Mitarbeiterliste nicht sämtliche Fotos abrufen. Daher wird der Service 'getLightEmployeeRecord' verwendet, um die Tabelle zu füllen, und der getFullEmployeeRecord ruft den vollständigen Datensatz für den Mitarbeiter ab, der in der Tabelle ausgewählt wird.
In diesem Schritt binden Sie das Feld Nachname an die Eigenschaft 'lastName' im Datenobjekt 'selectedEmployeeRecord'.
Beim Binden der einzelnen verbleibenden Detailfelder für einen Mitarbeiter gehen Sie ähnlich wie beim Feld für den Nachnamen vor, Sie müssen nur das Datenobjekt nicht hinzufügen. Da Sie das Datenobjekt 'selectedEmployeeRecord' bereits hinzugefügt haben, können Sie einfach jedes Feld an seine entsprechende Eigenschaft im Datenobjekt 'selectedEmployeeRecord' binden.
Feld | Eigenschaft im Datenobjekt 'selectedEmployeeRecord' |
---|---|
lastNameField | lastName |
firstNameField | firstName |
idField | employeeID |
emailField | |
phoneField | phoneNum |
officeField | location.office |
buildingField | location.building |
siteField | location.site |
Wenn Sie mit dem Binden der Textfelder fertig sind, sollte der Entwurfsbereich folgendermaßen aussehen:
Das Feld 'Mitarbeiter-ID' ist inaktiviert, da die Eigenschaft 'editable' (editierbar) des Felds auf den Wert 'false' gesetzt ist. Das Standardverhalten des Textfeldbinders ändert dies jedoch in den aktivierten Status des Felds, wenn das Datenobjekt einen Wert enthält. Sie können dieses Binderverhalten ausschalten, sodass das Feld in seinem ursprünglichen schreibgeschützten Zustand verbleibt.