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.

Association de la zone Nom :

Pour associer la zone Nom à la propriété lastName de l'objet de données selectedEmployeeRecord, procédez comme suit :

  1. Dans la vue Beans Java ou dans la vue de conception, sélectionnez le composant JTextField du nom (lastNameField). La zone de conception comporte un onglet Lier dans la zone de texte.

    Onglet Lier d'une zone de texte

  2. Cliquez sur l'onglet Lier pour ouvrir la boîte de dialogue des liaisons de données de zone.
  3. Cliquez sur Nouvel objet de données de source de données. Même si l'objet de données jRowTableBinder existant renvoie le nom correct, il ne contient pas l'enregistrement d'employé complet. Vous devez créer un objet de données représentant l'enregistrement d'employé complet.
  4. Vérifiez que Service Web est sélectionné dans la zone Type de source et que webServiceDataSource est sélectionné dans la zone Source de données.
  5. Dans la liste Service source, sélectionnez getFullEmployeeRecord(java.lang.Integer). La boîte de dialogue Nouvel objet de données de source de données répertorie les services qui renvoient les objets de données compatibles avec une zone de texte.
  6. Dans la zone Nom, entrez selectedEmployeeRecord.
  7. Dans la zone Argument, sélectionnez jRowTableBinder et dans la zone Propriété, sélectionnez employeeID. L'ID employé de la ligne sélectionnée est désormais défini comme argument de la méthode de service getFullEmployeeRecord().

    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.

    Boîte de dialogue Nouvel objet de données de source de données

  8. Cliquez sur OK.
  9. Dans la zone de dialogue des liaisons de données de zone, assurez-vous que selectedEmployeeRecord est sélectionné dans la liste Objets de données. Il est à noter qu'il existe plus de propriétés disponibles pour l'objet de données selectedEmployeeRecord que pour l'objet de données jRowTableBinder.
  10. Dans la liste des propriétés d'objet de données, sélectionnez la propriété lastName.

    Boîte de dialogue Liaisons de données de zone de lastNameField

  11. Cliquez sur OK. La zone Nom de votre application est maintenant associée à la propriété lastName de l'objet de données selectedEmployeeRecord, qui est renvoyé par getFullEmployeeRecord().

    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 :

    Objet de données selectedEmployeeRecord

    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 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.

Association des zones de détails restantes :

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 :

  1. Sélectionnez la zone de la vue de conception, puis cliquez sur l'onglet Lier.
  2. Dans la zone de dialogue des liaisons de données de zone, sélectionnez selectedEmployeeRecord dans la liste Objets de données.
  3. Dans la liste des propriétés d'objet données, sélectionnez la propriété appropriée pour la zone que vous associez. Le diagramme suivant indique la propriété à laquelle chaque zone de texte doit être associée :
    Zone Propriété de l'objet de données selectedEmployeeRecord
    lastNameField lastName
    firstNameField firstName
    idField employeeID
    emailField email
    phoneField phoneNum
    officeField location.office
    buildingField location.building
    siteField location.site
  4. Cliquez sur OK. Une fois que vous avez terminé d'associer les zones de texte, la zone de conception doit ressembler à l'image suivante :

    Vue du canevas graphique avec les zones de texte liées

Attribution du mode lecture seule à la zone ID employé :

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 :

  1. Sélectionnez la zone ID employé. Une ligne s'affiche dans la zone de conception avec une icône (Icône du programme de liaison de la zone) représentant le programme de liaison de la zone.
  2. Cliquez sur l'icône du programme de liaison Icône du programme de liaison du texte de la zone ID employé.
  3. Dans la vue Propriétés, affectez la valeur false à la propriété autoEditable. Appuyez sur Entrée.

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.

Vous êtes désormais prêt à passer à l'exercice suivant :

Conditions d'utilisation | Appréciations en retour
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.