Antes de empezar este ejercicio, debe completar el .

En el ejercicio anterior ha enlazado la employeesTable al objeto de datos lightEmployeeRecordRows devuelto por el servicio getLightEmployeeRecords() del servicio Web. Ahora debe rellenar los campos de detalle en función del registro de empleado seleccionado en la tabla.

Para obtener los detalles adicionales de cada empleado seleccionado, se utiliza otro objeto de datos. El objeto de datos selectedEmployeeRecord que añadirá lo devuelve el servicio getFullEmployeeRecord(). Este servicios toma el ID del empleado seleccionado de la tabla como un parámetro y extrae detalles adicionales acerca del empleado, incluyendo el número de teléfono y la ubicación del trabajo.

El objeto JRowTableBinder que se utilizó al enlazar la tabla al objeto de datos de fila simplifica este paso. JRowTableBinder expone el elemento seleccionado en una tabla como objeto de datos aparte que puede utilizarse como el parámetro para el método getFullEmployeeRecord(java.lang.Integer). A continuación, puede enlazar fácilmente cada uno de los campos de texto con su propiedad correspondiente del objeto de datos selectedEmployeeRecord.

Comentario: El servicio Web incluye dos servicios para obtener todos los detalles de cada empleado. La tabla lista todos los empleados y solo se visualiza un subconjunto de datos en la tabla. A continuación, cuando se selecciona un solo empleado, puede recuperarse el resto de la información correspondiente sólo al empleado seleccionado. Si el servicio Web ha enviado todos los datos para cada empleado cuando la tabla ha solicitado datos, el tráfico Web puede ser intenso y reducir el rendimiento de la aplicación. Por ejemplo, si el registro de empleado incluía una fotografía o un anexo, no deseará recuperar todas las fotografías cuando simplemente esté obteniendo la lista completa de empleados. Por tanto, se utiliza el servicio getLightEmployeeRecord para llenar la tabla y getFullEmployeeRecord obtiene el registro completo del empleado seleccionado en la tabla.

Enlazar el campo Apellido:

Para enlazar el campo de texto Apellido con la propiedad lastName del objeto de datos selectedEmployeeRecord:

  1. En la vista Java Beans o en la vista de diseño, seleccione JTextField para el apellido (lastNameField). El área de diseño muestra una pestaña Enlazar en el campo de texto.

    Pestaña Enlazar en un campo de texto

  2. Pulse la pestaña Enlazar para abrir el recuadro de diálogo Enlaces de datos de campo.
  3. Pulse Objeto de datos de origen de datos nuevo. Aunque el objeto de datos jRowTableBinder existente devuelve el apellido correcto, no incluye el registro completo del empleado. Es necesario crear un objeto de datos nuevo que represente el registro completo de empleado.
  4. En el campo Tipo de origen, asegúrese de que Servicio Web esté seleccionado y, para Origen de datos asegúrese de que webServiceDataSource esté seleccionado.
  5. En la lista Servicio origen, seleccione getFullEmployeeRecord(java.lang.Integer). El recuadro de diálogo Objeto de datos de origen de datos nuevo, lista los servicios que devuelven objetos de datos compatibles con un campo de texto.
  6. En el campo Nombre, escriba selectedEmployeeRecord.
  7. En el campo Argumento, seleccione jRowTableBinder y en el campo Propiedad, seleccione employeeID. El ID de empleado de la fila seleccionada se establece ahora como el argumento para el método de servicio getFullEmployeeRecord().

    Comentario: getFullEmployeeRecord(java.lang.Integer) necesita un entero como argumento. Utilizará el ID de empleado de la selección actual de la tabla de empleados para recuperar un registro completo. Cuando se ha enlazado la tabla, el editor visual ha generado automáticamente el objeto jRowTableBinder, que está a la escucha de la selección actual de la tabla de empleados. Para el parámetro entero, utilizará el employeeID de la fila seleccionada en jRowTableBinder.

    Recuadro de diálogo Objeto de datos de origen de datos

  8. Pulse Aceptar.
  9. En el recuadro de diálogo Enlaces de datos de campo, asegúrese de que selectedEmployeeRecord esté seleccionado en la lista Objetos de datos. Asegúrese de que haya más propiedades disponibles para el objeto de datos selectedEmployeeRecord que para el objeto de datos jRowTableBinder.
  10. En la lista Propiedades de objeto de datos, seleccione la propiedad lastName.

    Recuadro de diálogo Enlaces de datos de campo para lastNameField

  11. Pulse Aceptar.El campo de apellido de la aplicación se enlaza ahora con la propiedad lastName del objeto de datos selectedEmployeeRecord devuelto por getFullEmployeeRecord().

    Un objeto de datos nuevo llamado selectedEmployeeRecord se creará y añadirá a la aplicación. Se añade una representación visual del objeto de datos al área de formato libre de la vista de diseño, tal como se muestra en la imagen siguiente:

    Objeto de datos selectedEmployeeRecord

    Ahora, cuando seleccione el campo lastName en el área de diseño, una línea indicará que está enlazado al objeto selectedEmployeeRecord. En el medio de la línea, el icono del enlazador de texto Icono del enlazador de texto representa el SwingTextComponentBinder utilizado para este enlace. Si selecciona el enlazador en el área de diseño, podrá examinar las propiedades del enlazador en la vista Propiedades.

Enlazar los campos de detalles restantes:

Para enlazar cada uno de los campos de detalles restantes para un empleado, deberá seguir un proceso parecido al del campo apellido, pero no necesita añadir el objeto de datos. Puesto que ya ha añadido el objeto de datos selectedEmployeeRecord, simplemente puede enlazar cada campo a su propiedad correspondiente en el objeto de datos selectedEmployeeRecord.

Para enlazar los campos, realice lo indicado en los pasos siguientes para cada uno de los campos de la sección de detalles de empleado de la aplicación:

  1. Seleccione el campo en la vista de diseño y pulse la pestaña Enlazar.
  2. En el recuadro de diálogo Enlaces de datos de campo, seleccione selectedEmployeeRecord en la lista Objetos de datos.
  3. En la lista Propiedades de objeto de datos, seleccione la propiedad adecuada correspondiente al campo que está enlazando. El diagrama siguiente muestra la propiedad a la que hay que enlazar cada campo de texto:
    Campo Propiedad del objeto de datos selectedEmployeeRecord
    lastNameField lastName
    firstNameField firstName
    idField employeeID
    emailField email
    phoneField phoneNum
    officeField location.office
    buildingField location.building
    siteField location.site
  4. Pulse Aceptar.Cuando termine de enlazar los campos de texto, el área de diseño debería tener el aspecto siguiente:

    Vista de lienzo gráfico que muestra los campos de texto enlazados

Hacer el campo de ID de empleado solo de lectura:

El campo de ID de empleado no está habilitado porque la propiedad editable en el campo se establece en false. Sin embargo, el comportamiento predeterminado del enlazador del campo de texto cambia el estado habilitado del campo cuando el objeto de datos contiene un valor. Puede desactivar este comportamiento del enlazador de forma que el campo permanecerá en el estado de solo lectura inicial.

Para impedir que el enlazador conmute automáticamente la propiedad de edición

  1. Seleccione el campo de ID de empleado. Se muestra una línea en el área de diseño con un icono (Icono de enlazador de texto) representando el enlazador para el campo.
  2. Pulse el icono de enlazador Icono de enlazador de texto para el campo de ID de empleado.
  3. En la vista Propiedades, cambie la propiedad autoEditable por false. Pulse Intro.

Ahora, cuando ejecute la aplicación y seleccione un empleado de la tabla, los detalles de ese registro de empleado se visualizan en los campos de detalles.

Ahora está preparado para pasar al próximo ejercicio:

Condiciones de uso | Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.