Prima di iniziare questo esercizio, è necessario completare l'.
Nell'esercizio precedente, è stato eseguito il binding della employeesTable all'oggetto dati lightEmployeeRecordRows restituito dal servizio getLightEmployeeRecords() nel servizio Web. A questo punto, sarà necessario inserire i dettagli nei campi in base al dipendente selezionato nella tabella.
Per ottenere ulteriori dettagli per ogni dipendente selezionato, viene utilizzato un altro oggetto dati. L'oggetto dati selectedEmployeeRecord che verrà aggiunto, viene restituito dal servizio getFullEmployeeRecord(). Questo servizio utilizza l'ID del dipendente selezionato nella tabella come parametro e raccoglie altri dettagli sul dipendente, tra cui numero di telefono e reparto.
Il JRowTableBinder utilizzato quando si è eseguita l'associazione della tabella all'oggetto dati semplifica questa fase. Il JRowTableBinder inserisce l'elemento selezionato in una tabella come oggetto dati separato che può essere utilizzato come parametro per il metodo getFullEmployeeRecord(java.lang.Integer). Sarà quindi possibile associare facilmente ciascun campo di testo alla proprietà corrispondente nell'oggetto dati selectedEmployeeRecord.
Sfondo: i servizi Web includono due servizi per ottenere tutti i dettagli di ciascun dipendente. La tabella riporta tutti i dipendenti e solo alcuni dati. Quando viene selezionato un singolo dipendente, è possibile richiamare le informazioni rimanenti relative al solo dipendente selezionato. Se il servizio Web invia tutti i dati per ciascun dipendente richiesti dalla tabella, il traffico Web potrebbe risultare appesantito e rallentare le prestazioni dell'applicazione. Ad esempio, se il record del dipendente include una foto o un allegato, tali elementi non dovranno essere richiamati quando si richiede l'intero elenco di dipendenti. Quindi, il servizio getLightEmployeeRecord verrà utilizzato per inserire dati nella tabella e getFullEmployeeRecord otterrà il record completo per il dipendente selezionato nella tabella.
Per eseguire il binding del campo Cognome alla proprietà lastName nell'oggetto dati selectedEmployeeRecord, procedere come segue:
Sfondo: getFullEmployeeRecord(java.lang.Integer) richiede un numero intero come argomento. Per richiamare un record completo, utilizzare l'ID dipendente della selezione corrente nella tabella dipendenti. Quando si esegue il binding alla tabella, l'editor visivo genera automaticamente un jRowTableBinder, che attende la selezione corrente nella tabella dei dipendenti. Per il parametro integer, verrà utilizzato l'employeeID della riga selezionata nel jRowTableBinder.
Viene creato il nuovo oggetto dati selectedEmployeeRecord e viene aggiunto all'applicazione. All'area a formato libero della vista Progettazione, viene aggiunta una rappresentazione visiva dell'oggetto dati, come mostrato nella seguente immagine:
A questo punto, quando viene selezionato il
campo lastName nell'area di progettazione, una linea indica che
è associato a selectedEmployeeRecord. Al centro della linea, l'icona del binder
di testo rappresenta il
SwingTextComponentBinder utilizzato per questo binding. Se si seleziona la linea o l'icona che rappresenta il
binder nell'area di progettazione, è possibile visualizzare le proprietà del binder nella vista Proprietà.
Per eseguire il binding dei campi dei dettagli rimanenti di un dipendente, viene seguita una procedura simile a quella relativa al campo Cognome, ma non sarà necessario aggiungere l'oggetto dati. Poiché l'oggetto dati selectedEmployeeRecord è stato già aggiunto, associare semplicemente ciascun campo alla proprietà corrispondente nell'oggetto dati selectedEmployeeRecord.
Per eseguire il binding dei campi, attenersi alle seguenti istruzioni per ciascun campo nella sezione Dipendenti dell'applicazione:
Campo | Proprietà nell'oggetto dati selectedEmployeeRecord |
---|---|
lastNameField | lastName |
firstNameField | firstName |
idField | employeeID |
emailField | |
phoneField | phoneNum |
officeField | location.office |
buildingField | location.building |
siteField | location.site |
Il campo ID dipendente è disabilitato perché la proprietà modificabile nel campo è impostata su false. Tuttavia, il comportamento predefinito del binder del campo cambia lo stato del campo quando l'oggetto dati contiene un valore. È possibile disattivare questo comportamento del binder in modo che il campo rimanga nello stato iniziale di sola lettura.
Per impedire che il binder modifichi automaticamente la proprietà editabile, procedere come segue:
A questo punto, quando si esegue l'applicazione e si seleziona il dipendente dalla tabella, i dettagli di quel record dipendente verranno visualizzati nei campi dei dettagli.