< Indietro | Avanti >

Lezione 2.3: Bind dei campi dei dettagli alla selezione della tabella

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.

Il servizio Web include 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.

Bind del campo Cognome

In questa fase verrà eseguito il binding del campo Cognome alla proprietà lastName nell'oggetto dati selectedEmployeeRecord:

  1. Nella vista Bean Java o Progettazione, selezionare il JTextField per il cognome (lastNameField). L'area di progettazione conterrà la scheda Binding sul campo di testo.

    Scheda Binding su un campo di testo

  2. Scegliere la scheda Binding per aprire la finestra Binding di dati campo.
  3. Scegliere Nuovo oggetto dati dell'origine dati. Anche se l'oggetto dati jRowTableBinder esistente restituisce il cognome corretto, non restituirà il record di dipendente completo. Per rappresentare il record dipendente completo, sarà necessario creare un nuovo oggetto dati.
  4. Nel campo Tipo di origine, assicurarsi che Servizio Web sia selezionato e per Origine dati, assicurarsi che webServiceDataSource sia selezionato.
  5. Nell'elenco Servizio di origine, selezionare getFullEmployeeRecord(java.lang.Integer). La finestra Nuovo oggetto dati dell'origine dati, contiene i servizi che restituiscono gli oggetti dati compatibili con un campo di testo.
  6. Nel campo Nome, immettere selectedEmployeeRecord.
  7. Nel campo Argomento, selezionare jRowTableBinder, e nel campo Proprietà, selezionare employeeID. L'ID dipendente della riga selezionata è adesso impostato come argomento del metodo di servizio getFullEmployeeRecord().
    Nota: 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.

    Finestra Nuovo oggetto dati dell'origine dati

  8. Scegliere OK.
  9. Nella finestra Binding di dati campo, assicurarsi che selectedEmployeeRecord sia selezionato nell'elenco Oggetti dati. L'oggetto dati selectedEmployeeRecord ha più proprietà disponibili dell'oggetto dati jRowTableBinder.
  10. Nell'elenco Proprietà oggetto dati, selezionare la proprietà lastName.

    Finestra Binding di dati campo

  11. Scegliere OK. Il campo Cognome dell'applicazione viene associato alla proprietà lastName dell'oggetto dati selectedEmployeeRecord, restituito da getFullEmployeeRecord().

    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:

    Oggetto dati selectedEmployeeRecord

    Adesso, 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à.

Bind dei campi dei dettagli rimanenti

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:
  1. Selezionare il campo nella vista Progettazione e fare clic sulla scheda Binding.
  2. Nella finestra Binding di dati campo, selezionare selectedEmployeeRecord dall'elenco Oggetti dati.
  3. Nell'elenco Proprietà oggetto dati, selezionare la proprietà del campo per il quale si sta eseguendo il binding. Il seguente grafico mostra la proprietà a cui associare ciascun campo di testo:
    Campo Proprietà nell'oggetto dati selectedEmployeeRecord
    lastNameField lastName
    firstNameField firstName
    idField employeeID
    emailField email
    phoneField phoneNum
    officeField location.office
    buildingField location.building
    siteField location.site
  4. Scegliere OK.

Quando il binding dei campi di testo viene completato, l'area di progettazione risulterà simile alla seguente immagine:

Vista dell'area di disegno grafica che contiene campi di testo associati

Impostazione del campo ID dipendente in sola lettura

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
  1. Selezionare il campo ID dipendente. Nell'area di progettazione viene visualizzata una linea e un'icona Icona Binder di testo che rappresenta il binder del campo.
  2. Fare clic sull'icona del binder Icona Binder di testo per il campo ID dipendente.
  3. Nella vista Proprietà, modificare la proprietà autoEditable in false. Premere Invio.

Riepilogo della lezione

Adesso, quando si esegue l'applicazione e si seleziona il dipendente dalla tabella, i dettagli di quel record dipendente verranno visualizzati nei campi dei dettagli.

< Indietro | Avanti >