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.
Para enlazar el campo de texto Apellido con la propiedad lastName del objeto de datos selectedEmployeeRecord:
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.
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:
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
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.
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:
Campo | Propiedad del objeto de datos selectedEmployeeRecord |
---|---|
lastNameField | lastName |
firstNameField | firstName |
idField | employeeID |
emailField | |
phoneField | phoneNum |
officeField | location.office |
buildingField | location.building |
siteField | location.site |
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
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.