Avant de commencer cet exercice, vous devez terminer .
Dans l'exercice précédent, vous avez associé employeesTable à l'objet de données lightEmployeeRecordRows renvoyé par le service getLightEmployeeRecords() dans le service Web. Vous devez maintenant renseigner les zones de détails en fonction de l'employé sélectionné dans la table.
Pour l'obtention des détails supplémentaires de chaque employé sélectionné, un autre objet de données est utilisé. L'objet de données selectedEmployeeRecord à ajouter est renvoyé par le service getFullEmployeeRecord(). Ce service utilise l'ID de l'employé sélectionné dans la table comme paramètre et recherche des détails supplémentaires sur l'employé, y compris son numéro de téléphone et son lieu de travail.
Le JRowTableBinder qui a été utilisé lors de l'association de la table à l'objet de données de ligne simplifie cette étape. Le JRowTableBinder expose l'élément sélectionné dans la table comme objet de données distinct pouvant être utilisé comme paramètre de la méthode getFullEmployeeRecord(java.lang.Integer). Vous pouvez ensuite associer aisément chacune des zones de texte à la propriété correspondante dans l'objet de données selectedEmployeeRecord.
Informations complémentaires : Le service Web inclut deux services pour l'extraction de tous les détails de chaque employé. La table répertorie tous les employés et seul un sous-ensemble des données est affiché dans la table. Lorsqu'un employé unique est sélectionné, vous pouvez ensuite extraire le reste des informations relatives à cet employé sélectionné. Si le service Web a envoyé toutes les données relatives à chaque employé lorsque la table a demandé des données, le trafic Web peut être chargé et diminuer les performances de l'application. Par exemple, si l'enregistrement d'employé comprend une photo ou une pièce jointe, il n'est pas souhaitable d'extraire toutes les photos lors d'une simple extraction de la liste complète des employés. Le service getLightEmployeeRecord est donc utilisé pour le remplissage de la table et le service getFullEmployeeRecord extrait l'enregistrement complet de l'employé sélectionné dans la table.
Pour associer la zone Nom à la propriété lastName de l'objet de données selectedEmployeeRecord, procédez comme suit :
Informations complémentaires : La méthode getFullEmployeeRecord(java.lang.Integer) nécessite un entier comme argument. Vous souhaitez utiliser l'ID employé de la sélection en cours dans la table des employés pour extraire l'enregistrement complet. Lorsque vous liez la table, l'éditeur visuel génère automatiquement jRowTableBinder, qui intercepte la sélection en cours dans la table des employés. Comme paramètre entier, utilisez l'ID employé de la ligne sélectionnée dans jRowTableBinder.
Un nouvel objet données intitulé selectedEmployeeRecord est créé et ajouté à votre application. Une représentation visuelle de l'objet de données est ajoutée à la zone à format libre de la vue de conception, comme illustré dans l'image suivante :
A présent, lorsque vous sélectionnez la zone lastName dans la zone de conception, une
ligne indique que cette zone est associée à selectedEmployeeRecord. Au milieu de la
ligne, l'icône du programme de liaison du texte représente le composant SwingTextComponentBinder utilisé
pour ce programme de liaison. Si vous sélectionnez la ligne ou
l'icône représentant le programme de liaison (binder) dans la zone de conception, vous
pouvez en consulter les propriétés dans la vue Propriétés.
Pour associer chacune des zones de détails d'un employé, vous devez suivre une procédure similaire à celle utilisée pour la zone Nom, mais vous n'avez pas besoin d'ajouter l'objet de données. Comme vous avez déjà ajouté l'objet de données selectedEmployeeRecord, vous pouvez vous contenter d'associer chaque zone à sa propriété correspondante dans l'objet de données selectedEmployeeRecord.
Pour associer les zones, effectuez la procédure suivante pour chacune des zones de la section Détails de la table EMPLOYE de l'application :
Zone | Propriété de l'objet de données selectedEmployeeRecord |
---|---|
lastNameField | lastName |
firstNameField | firstName |
idField | employeeID |
emailField | |
phoneField | phoneNum |
officeField | location.office |
buildingField | location.building |
siteField | location.site |
La zone ID employé est désactivée car la propriété modifiable de cette zone a la valeur false. Toutefois, le comportement par défaut du programme de liaison de la zone de texte consiste à affecter l'état activé à la zone lorsque l'objet de données contient une valeur. Vous pouvez désactiver ce comportement pour que la zone reste en mode lecture seule, son état initial.
Pour empêcher le programme de liaison de changer automatiquement l'état de la propriété modifiable, procédez comme suit :
A présent, lorsque vous exécutez l'application et sélectionnez un employé dans la table, les détails de l'enregistrement de cet employé sont affichés dans les zones de détails.