Antes de iniciar este exercício, é necessário concluir o .

No exercício anterior, você ligou employeesTable ao objeto de dados lightEmployeeRecordRows retornado pelo serviço getLightEmployeeRecords() no serviço da Web. É necessário, agora, ocupar os campos de detalhes com base no funcionário selecionado na tabela.

Para obter detalhes extras de cada funcionário selecionado, é utilizado um outro objeto de dados. O objeto de dados selectedEmployeeRecord que será incluído é retornado pelo serviço getFullEmployeeRecord(). Este serviço toma o ID do funcionário selecionado na tabela como um parâmetro e pega os detalhes adicionais sobre o funcionário, incluindo número de telefone e local de trabalho.

O JRowTableBinder, utilizado ao ligar a tabela para o objeto de dados da linha, simplifica esta etapa. JRowTableBinder expõe o elemento selecionado na tabela como um objeto de dados separado, que pode ser utilizado como parâmetro para o método getFullEmployeeRecord(java.lang.Integer). Então, você pode ligar facilmente cada um dos campos de texto em sua propriedade correspondente no objeto de dados selectedEmployeeRecord.

Segundo plano: Os serviços da Web inclui dois serviços para obter todos os detalhes de cada funcionário. A tabela lista todos os funcionários e apenas um subconjunto de dados é exibido na tabela. Portanto, quando um único funcionário é selecionado, é possível recuperar o restante das informações de funcionário apenas daquele selecionado. Se o serviço da Web enviou todos os dados de cada funcionário quando a tabela solicitou dados, o tráfego da Web pode ficar pesado e causar um baixo desempenho do aplicativo. Por exemplo, se o registro do funcionário possui uma foto ou um anexo, você não deseja recuperar as fotos quando está simplesmente obtendo a lista completa de funcionários. Assim, o serviço getLightEmployeeRecord é utilizado para preencher a tabela e o getFullEmployeeRecord obtém o registro completo para o funcionário selecionado na tabela.

Ligando o Campo Sobrenome:

Para ligar o campo Sobrenome à propriedade lastName no objeto de dados selectedEmployeeRecord:

  1. Na exibição Java Beans ou na exibição de design, selecione JTextField para o sobrenome (lastNameField). A área de design mostra uma guia Ligação no campo de texto.

    Guia de Ligação em um Campo de Texto

  2. Clique na guia Ligação para abrir a caixa de diálogo Ligações de Dados do Campo.
  3. Clique em Novo Objeto de Dados da Origem de Dados. Embora o objeto de dados jRowTableBinder existente retorne o último nome correto, ele não inclui o registro completo do funcionário. É necessário criar um novo objeto de dados que representa o registro completo do funcionário.
  4. No campo Tipo de Origem, certifique-se de que Serviço da Web está selecionado e, para Origem de Dados, certifique-se de que webServiceDataSource está selecionado.
  5. Na lista Serviço de Origem, selecione getFullEmployeeRecord(java.lang.Integer). A caixa de diálogo Novo Objeto de Dados da Origem de Dados lista os serviços que retornam objetos de dados compatíveis com um campo de texto.
  6. No campo Nome, digite selectedEmployeeRecord.
  7. No campo Argumento, selecione jRowTableBinder e, no campo Propriedade, selecione employeeID. O ID do funcionário da linha selecionada agora é definido para ser o argumento para o método do serviço getFullEmployeeRecord().

    Segundo plano: O getFullEmployeeRecord(java.lang.Integer) requer um inteiro como um argumento. Você deseja utilizar o ID de funcionário da seleção atual na tabela de funcionários para recuperar um registro completo. Quando você liga a tabela, o Visual Editor gera automaticamente o jRowTableBinder, o qual também atende a seleção atual na tabela de funcionários. Para o parâmetro inteiro, você utilizará o employeeID da linha selecionada em jRowTableBinder.

    Caixa de Diálogo Novo Objeto de Dados da Origem de Dados

  8. Clique em OK.
  9. No dialogo Ligações de Dados do Campo, certifique-se de que selectedEmployeeRecord está selecionado na lista Objetos de Dados. Observe que há mais propriedades disponíveis para o objeto de dados selectedEmployeeRecord do que para o objeto de dados jRowTableBinder.
  10. Na lista Propriedades do Objeto de Dados, selecione a propriedade lastName.

    Caixa de Diálogo Ligações de Dados de Campo para lastNameField

  11. Clique em OK. O campo de sobrenome no aplicativo agora é ligado à propriedade lastName do objeto de dados selectedEmployeeRecord, retornado por getFullEmployeeRecord().

    O novo objeto de dados chamado selectedEmployeeRecord é criado e incluído em seu aplicativo. Uma representação visual do objeto de dados é incluída na área livre da exibição de design, como mostrada na imagem a seguir:

    Objeto de Dados selectedEmployeeRecord

    Agora, ao selecionar o campo lastName na área de design, uma linha indica que ele está ligado ao selectedEmployeeRecord. Na metade da linha, o ícone do binder de texto Ícone do binder de texto representa SwingTextComponentBinder, utilizado para essa ligação. Se você selecionar a linha ou ícone representando o binder na área de design, você pode examinar suas propriedades na exibição Propriedades.

Ligando os Campos de Detalhes Restantes:

Para ligar cada um dos campos de detalhes restantes para um funcionário, você seguirá um processo semelhante ao do campo de sobrenome, mas não será necessário incluir o objeto de dados. Como você já incluiu o objeto de dados selectedEmployeeRecord, você pode, facilmente, ligar cada um dos campos de texto em sua propriedade correspondente no objeto de dados selectedEmployeeRecord.

Para ligar os campos, conclua as etapas a seguir para cada um dos campos na seção Detalhes do Funcionário do aplicativo:

  1. Selecione o campo na exibição de design e clique na guia Ligação.
  2. No dialogo Ligações de Dados do Campo, selecione selectedEmployeeRecord na lista Objetos de Dados.
  3. Na lista Propriedades do Objeto de Dados, selecione a propriedade apropriada para o campo que você está ligando. O gráfico a seguir mostra a propriedade que cada campo de texto precisa ser ligado a:
    Campo Propriedade no Objeto de Dados selectedEmployeeRecord
    lastNameField lastName
    firstNameField firstName
    idField employeeID
    emailField email
    phoneField phoneNum
    officeField location.office
    buildingField location.building
    siteField location.site
  4. Clique em OK. Ao concluir a ligação dos campos de texto, a área de design deve ter a aparência da imagem a seguir:

    Visualização do Canvas Gráfico Mostrando os Campos de Texto Vinculados

Tornando o Campo ID do Funcionário de Leitura:

O campo do ID do funcionário está desativado, pois a propriedade editável no campo está definida como false. No entanto, o comportamento padrão do binder do campo de texto altera o estado ativado no campo quando o objeto de dados contém um valor. É possível desligar esse comportamento do binder para que o campo permaneça no estado inicial de leitura.

Para evitar que o binder alterne automaticamente a propriedade editável

  1. Selecione o campo ID do Funcionário. É exibida uma linha na área de design com um ícone (Ícone do binder de texto) representando o binder para o campo.
  2. Clique no ícone do binder Ícone do binder de texto para o campo ID do Funcionário.
  3. Na exibição Propriedades, altere a propriedade autoEditable para false. Pressione Enter.

Agora, ao executar o aplicativo e selecionar um funcionário da tabela, os detalhes do registro do funcionário são exibidos nos campos de detalhes.

Agora você está pronto para seguir para o próximo exercício:

Termos de Utilização | Feedback
(C) Copyright IBM Corporation 2000, 2005. Todos os Direitos Reservados.