< Předchozí | Další >

Lekce 2.3: Svázání polí s podrobnostmi s výběrem tabulky

V předchozím cvičení jste svázali tabulku employeesTable s datovým objektem lightEmployeeRecordRows vráceným službou getLightEmployeeRecords() ve webové službě. Nyní musíte obsadit pole s podrobnostmi na základě zaměstnance, který je v tabulce vybrán.

Pro další podrobnosti o každém ze zvolených zaměstnanců se používá další datový objekt. Datový objekt selectedEmployeeRecord, který budete přidávat, je vracen službou getFullEmployeeRecord(). Tato služba bere ID vybraného uživatele v tabulce jako parametr a přináší další podrobnosti o zaměstnanci, včetně telefonního čísla a pracoviště.

Vázací program JRowTableBinder použitý pro svázání tabulky s řádkovým datovým objektem tento krok usnadňuje. JRowTableBinder ukazuje vybraný prvek v tabulce jako samostatný datový objekt, který je možné použít jako parametr pro metodu getFullEmployeeRecord(java.lang.Integer). Můžete pak snadno svázat každé z textových polí s příslušnou vlastností v datovém objektu selectedEmployeeRecord.

Tato webová služba obsahuje dvě služby pro získání všech podrobností o každém ze zaměstnanců. Tabulka uvádí seznam všech zaměstnanců, v tabulce se zobrazí pouze část. Poté, když je vybrán jediný zaměstnanec, můžete načíst zbytek informací pouze pro vybraného zaměstnance. Pokud by webová služba odesílala všechna data pro každého zaměstnance, když tabulka požaduje data, přenos by byl příliš náročný a způsobil by pomalejší výkon aplikace.

Například, pokud záznam zaměstnance zahrnuje fotografii nebo přílohu, pravděpodobně byste nechtěli načítat všechny fotografie, když chcete pouze získat seznam zaměstnanců. Proto se služba getLightEmployeeRecord používá pro obsazení tabulek a služba getFullEmployeeRecord získává plný záznam pro zaměstnance vybraného v tabulce.

Svázání pole Příjmení

V tomto kroku svážete pole Příjmení s vlastností lastName v datovém objektu selectedEmployeeRecord:

  1. V pohledu Java Beans nebo v pohledu Návrh vyberte JTextField jako příjmení (lastNameField). Oblast návrhu zobrazuje v textovém poli kartu Vazba.

    Karta Vazba na textovém poli

  2. Klepnutím na kartu Vazba otevřete dialogové okno Datové vazby pole.
  3. Klepněte na Nový datový objekt zdroje dat. Přestože stávající datový objekt jRowTableBinder vrací správné příjmení, nezahrnuje plný záznam zaměstnance. Musíte vytvořit nový datový objekt, který bude představovat plný záznam zaměstnance.
  4. Ujistěte se, že je v poli Typ zdroje vybráno Webová služba a že je pro Zdroj dat vybráno webServiceDataSource.
  5. V seznamu Služba zdroje vyberte getFullEmployeeRecord(java.lang.Integer). Dialogové okno Nový datový objekt zdroje dat uvádí seznam služeb, které vracejí datové objekty, které jsou kompatibilní s textovým polem.
  6. V poli Název zadejte selectedEmployeeRecord.
  7. V poli Argument vyberte jRowTableBinder a v poli Vlastnost vyberte employeeID. ID zaměstnance ve zvoleném řádku je nyní nastaveno tak, aby bylo argumentem pro metodu služby getFullEmployeeRecord().
    Poznámka: getFullEmployeeRecord(java.lang.Integer) vyžaduje jako argument celé číslo. Chcete použít ID zaměstnance z aktuálního výběru v tabulce zaměstnanců pro načtení plného záznamu. Když svážete tabulku, vizuální editor automaticky generuje vázací program jRowTableBinder, který naslouchá aktuálnímu výběru v tabulce zaměstnanců. Jako celočíselný parametr použijte employeeID z vybraného řádku v jRowTableBinder.

    Dialogové okno Nový datový objekt zdroje dat

  8. Klepněte na OK.
  9. V dialogovém okně Datové vazby pole se ujistěte, že je v seznamu Datové objekty vybráno selectedEmployeeRecord. Všimněte si, že existuje více dostupných vlastností pro datový objekt selectedEmployeeRecord než pro datový objekt jRowTableBinder.
  10. V seznamu Vlastnosti datových objektů vyberte vlastnost lastName.

    Dialogové okno Datové vazby pole pro lastNameField

  11. Klepněte na OK. Pole příjmení ve vaší aplikaci je nyní svázané s vlastností lastName vybraného datového objektu selectedEmployeeRecord, který je vrácen od getFullEmployeeRecord().

    Vytvoří se nový datový objekt jménem selectedEmployeeRecord a přidá se do vaší aplikace. Vizuální znázornění datového objektu se přidá do neformátované oblasti pohledu Návrh, tak jak uvádí následující obrázek:

    Datový objekt selectedEmployeeRecord

    Nyní, když vyberete v oblasti návrhu pole lastName, indikuje čára, že je svázáno se selectedEmployeeRecord. Uprostřed čáry ikona textového vázacího programu představuje SwingTextComponentBinder, který se pro tuto vazbu používá. Pokud vyberete čáru nebo ikonu představující vázací program v oblasti návrhu, můžete prozkoumat vlastnosti vázacího programu v pohledu Vlastnosti.

Vazba zbývajících polí s podrobnostmi

Abyste svázali každé ze zbývajících polí s podrobnostmi o zaměstnancích, zopakujete podobný proces jako s polem příjmení, ale nemusíte přidávat datový objekt. Protože jste již přidali datový objekt selectedEmployeeRecord, můžete prostě svázat každé pole s jemu odpovídající vlastností v datovém objektu selectedEmployeeRecord.

Abyste vytvořili vazby polí, proveďte následující kroky pro každé z polí v sekci aplikace Podrobnosti o zaměstnancích:
  1. Vyberte pole v pohledu Návrh a klepněte na kartu Vazba.
  2. V dialogovém okně Datové vazby polí vyberte selectedEmployeeRecord ze seznamu Datové objekty.
  3. V seznamu Vlastnosti datových objektů vyberte odpovídající vlastnost pro pole, které svazujete. Následující tabulka uvádí vlastnost, se kterou je třeba každé textové pole svázat:
    Pole Vlastnost v datovém objektu selectedEmployeeRecord
    lastNameField lastName
    firstNameField firstName
    idField employeeID
    emailField email
    phoneField phoneNum
    officeField location.office
    buildingField location.building
    siteField location.site
  4. Klepněte na OK.

Až dokončíte svázání textových polí, měla by oblast návrhu vypadat takto:

Zobrazení grafického plátna s vazbami textových polí

Nastavení pole ID zaměstnance pouze pro čtení

Pole ID zaměstnance je znepřístupněné, protože je vlastnost pro úpravu pole nastavena na false. Nicméně, předvolené chování vázacího programu textového pole změní zpřístupněný stav na poli, když datový objekt obsahuje nějakou hodnotu. Toto chování vázacího programu můžete vypnout, aby pole zůstalo ve výchozím stavu pouze pro čtení.

Abyste vázacímu programu zabránili automaticky přepínat možnost upravit vlastnost:
  1. Vyberte pole ID zaměstnance. V oblasti návrhu se zobrazí čára s ikonou Text binder icon, která představuje vázací program pro dané pole.
  2. Klepněte na ikonu vázacího programu Text binder icon pro pole ID zaměstnance.
  3. V pohledu Vlastnosti změňte vlastnost autoEditable na false. Stiskněte klávesu Enter.

Kontrolní bod lekce

Nyní, když spustíte aplikaci a vyberete zaměstnance z tabulky, zobrazí se v polích s podrobnostmi podrobnosti ze záznamu tohoto zaměstnance.

< Předchozí | Další >