< Vissza | Tovább >

2.3 feladat: Részletmezők kötése a táblakijelöléshez

Az előző feladatban az employeesTable táblát kötötte a webszolgáltatás getLightEmployeeRecords() szolgáltatása által visszaadott lightEmployeeRecordRows összetevőhöz. Most a részletmezőket kell feltöltenie a táblában kijelölt alkalmazottól függően.

Az egyes kijelölt alkalmazottak extra részleteinek megszerzéséhez másik adatobjektumra lesz szükség. A következőkben felveendő selectedEmployeeRecord adatobjektumot a getFullEmployeeRecord() szolgáltatás adja vissza. Ez a szolgáltatás a táblában kijelölt alkalmazott azonosítóját használva paraméterként lehívja az alkalmazott további részleteit, például a telefonszámát és a munkahelyét.

A tábla sor adatobjektumhoz kötéséhez használt JRowTableBinder leegyszerűsíti ezt a lépést. A JRowTableBinder önálló adatobjektumként teszi ki a kijelölt elemet, amit paraméterként használhat a getFullEmployeeRecord(java.lang.Integer) metódushoz. Ezután könnyen a megfelelő tulajdonsághoz kötheti a szövegmezőket a selectedEmployeeRecord adatobjektumban.

A webszolgáltatás két olyan szolgáltatást tartalmaz, amivel megszerezheti az egyes alkalmazottak részleteit. A tábla felsorolja az összes alkalmazottat, és csak az adatok részhalmaza jelenik meg a táblában. Ezután, amikor csak egy alkalmazott van kijelölve, lekérdezheti annak a kijelölt alkalmazottnak az információit. Ha a webszolgáltatás elküldte minden alkalmazott összes adatát, amikor tábla lekérdezte azokat, akkor a webes forgalom megnőhet, az alkalmazás lassúságát okozva.

Például ha az alkalmazottak rekordja tartalmaz fényképet vagy csatolt fájlt is, akkor az összes alkalmazott lekérdezésekor nem kell lekérni az összes fényképet is. Így a getLightEmployeeRecord szolgáltatás feltölti a táblát, a getFullEmployeeRecord pedig lekérdezi a táblában kijelölt alkalmazott összes adatát.

A Vezetéknév mező kötése

Ebben a lépésben a Vezetéknév mezőt köti a selectedEmployeeRecord adatobjektum lastName tulajdonságához:

  1. Java komponens vagy tervezés nézetben jelölje ki a vezetéknév JTextField mezőjét (lastNameField). A tervezés területen megjelenik egy Kötés lap a szövegmezőn.

    Kötés lap szövegmezőn

  2. Kattintson a Kötés lapra, hogy megnyissa a Mezőadatok kötése párbeszédablakot.
  3. Kattintson az Új adatforrás adatobjektum gombra. Bár a meglévő jRowTableBinder adatobjektum visszaadja a helyes vezetéknevet, nem tartalmazza a teljes alkalmazott rekordot. Új adatobjektumot kell létrehoznia, ami a teljes alkalmazotti rekordot képviseli.
  4. Győződjön meg róla, hogy a Forrás típusa mezőben a Webszolgáltatás van kijelölve, illetve hogy az Adatforrás értéke webServiceDataSource.
  5. Válassza a getFullEmployeeRecord(java.lang.Integer) szolgáltatást a Szolgáltatásforrás listában. Az Új adatforrás adatobjektum párbeszédablak felsorolja a szövegmezővel kompatibilis adatobjektumokat visszatérítő szolgáltatásokat.
  6. A Név mezőbe írja be a selectedEmployeeRecord értéket.
  7. A Paraméter mezőben válassza ki a jRowTableBinder összetevőt, a Tulajdonság mezőben pedig válassza ki az employeeID értéket. Így a kijelölt sor alkalmazotti azonosítója a getFullEmployeeRecord() szolgáltatásmetódus paramétere.
    Megjegyzés: A getFullEmployeeRecord(java.lang.Integer) metódus paramétere csak integer lehet. A teljes rekord lekéréséhez használja az alkalmazottak tábla aktuális kijelölésében szereplő alkalmazottazonosítót. A kötött táblánál a vizuális szerkesztő automatikusan előállította a jRowTableBinder összetevőt, ami az alkalmazottak tábla aktuális kijelöléseit figyeli. Integer paraméterként a jRowTableBinder kijelölt sorának employeeID értékét fogja használni.

    Új adatforrás adatobjektum párbeszédablak

  8. Kattintson az OK gombra.
  9. Győződjön meg róla, hogy a Mezőadatok kötése párbeszédablakban a selectedEmployeeRecord van kijelölve az Adatobjektumok listában. Figyelje meg, hogy több tulajdonság áll rendelkezésre a selectedEmployeeRecord adatobjektumhoz, mint ahány a jRowTableBinder adatobjektumhoz.
  10. Az Adatobjektum tulajdonságai listában jelölje ki a lastName tulajdonságot.

    Mezőadatok kötése párbeszédablak a lastNameField tulajdonsághoz

  11. Kattintson az OK gombra. Az alkalmazás vezetéknév mezője már a selectedEmployeeRecord adatobjektum lastName tulajdonságához van kötve, amit a getFullEmployeeRecord() metódus ad vissza.

    Létrejön egy selectedEmployeeRecord nevű új adatobjektum, és hozzáadódik az alkalmazáshoz. Az adatobjektum vizuális ábrázolása is rákerül a tervezés nézet szabadon alakítható területére, az alábbi képen láthatóan:

    selectedEmployeeRecord adatobjektum

    Ha most kijelöli a lastName mezőt a tervezési területen, akkor egy vonal jelzi, hogy a selectedEmployeeRecord objektumhoz kötött. A vonal közepén levő szöveges kötésikon jelzi a kötéshez használt SwingTextComponentBinder összetevőt. Ha a tervezési területen kijelöli a vonalat, vagy a kötést jelképező ikont, akkor a Tulajdonságok nézetben megvizsgálhatja a kötés tulajdonságait.

A hátralévő részletmezők kötése

Az alkalmazottak fennmaradó részletmezőinek kötéséhez kövesse a vezetéknévnél használt folyamatot, azt kivéve, hogy az adatobjektumot már nem kell felvennie. Mivel már felvette a selectedEmployeeRecord adatobjektumot, elég egyszerűen a megfelelő tulajdonsághoz kötni az egyes mezőket a selectedEmployeeRecord adatobjektumban.

A mezők kötéséhez tegye a következőket az alkalmazás Alkalmazottak részletei részének minden egyes mezőjéhez:
  1. Válassza ki a mezőt a tervezés nézetben, és kattintson a Kötés lapra.
  2. A Mezőadatok kötése párbeszédablakban jelölje ki a selectedEmployeeRecord objektumot az Adatobjektumok listából.
  3. Az Adatobjektum tulajdonságai listában jelölje ki az adott mezőhöz tartozó tulajdonságot. Az alábbi diagram mutatja, hogy mely tulajdonsághoz kell kötni az egyes szövegmezőket:
    Mező Tulajdonság a selectedEmployeeRecord adatobjektumban
    lastNameField lastName
    firstNameField firstName
    idField employeeID
    emailField email
    phoneField phoneNum
    officeField location.office
    buildingField location.building
    siteField location.site
  4. Kattintson az OK gombra.

A szövegmezők kötésének befejeztével a tervezési területnek a következő ábrához hasonlóan kell kinéznie:

Grafikus rajzolási terület megjelenítése kötött szövegmezőkkel

Az alkalmazottazonosító mező írásvédetté tétele

Az alkalmazottazonosító mező tiltott, mivel a mező szerkeszthetőségi tulajdonsága hamisra van állítva. Azonban a szövegmező kötésének alapértelmezett viselkedése engedélyezett állapotra változtatja a mezőt, ha az adatobjektum tartalmaz értéket. Kikapcsolhatja ezt a kötési viselkedést, így a mező a kezdeti írásvédett állapotban marad.

Tegye a következőket, hogy megakadályozza a szerkeszthetőség tulajdonság automatikus átkapcsolását:
  1. Jelölje ki az alkalmazottazonosító mezőt. A tervezési területen megjelenik egy vonal, rajta egy ikonnal Szöveges kötés ikon, a mező kötését jelezve.
  2. Kattintson az alkalmazottazonosító mező kötésének Szöveges kötésikon ikonjára.
  3. A Tulajdonságok nézetben módosítsa az autoEditable tulajdonságot hamis értékre. Nyomja meg az Entert.

Előadás ellenőrzési pont

Ha most futtatja az alkalmazást, és kijelöl egy alkalmazottat a táblában, akkor az alkalmazott rekordjának részletei megjelennek a részletek mezőkben.

< Vissza | Tovább >