Introdução
e:lookup
Para a utilização desde componente é preciso duas etapas:
Vamos começar a declaração desse componente na página, bastando somente colocar o código a seguir:
1º - A Entidade deve estar anotada com @JArchLookup para declarar o campo de pesquisa rápida (por exemplo um código), e o campo de descrição, conforme exemplo abaixo:
1 2 3 4 5 6 7 8 9 10 11 12 13 | @Entity @JArchLookup(codeAttribute = "codigo", descriptionAttribute = "descricao") public class ProdutoEntity ... @Id @Column(name = "id_produto") private Long id; @Column(name = "cd_produto") private String codigo; @Column(name = "ds_produto" private String descricao; ... |
2º - Se a entidade for uma extensão de BaseEntity do JARCH, será criado automaticamente na compilação uma classe que estende BaseFilterSelectAction. Se a entidade não for uma extensão do BaseEntity do JARCH é necessário a criação dessa Action conforme o exemplo abaixo:
1 2 3 4 | @JArchViewScoped @Generated(value = "com.arch.apt.generate.implicit.EntityProcessor", date = "10/09/2018 17:56:14") public class ProdutoFilterSelectAction extends BaseFilterSelectAction<ProdutoEntity> { } |
Vamos começar a declaração desse componente na página, bastando somente colocar o código a seguir:
1 2 3 4 5 | <e:lookup labelUnique="#{a:bundle('label.codigo')}" value="#{relatorioProdutoAction.produtoEntity}" actionFilterSelect="#{produtoFilterSelectionAction}" createExtensionInternal="true" /> |
O atributo value é onde a entidade consultada será armazenada.
O atributo actionFilterSelect é a action da extensão da classe BaseFilterSelectAction do JARCH.
O atributo createExtensionInternal diz se vai ser criado um popup automático ou manual.
O componente na página fica assim:
Para fazer uma pesquisa, basta colocar o código, ou clicar no botão com a lupa para abrir o popup, conforme a seguir:
Ao pesquisar clicar em pesquisar, será feita uma busca no banco de dados na tabela da entidade e retornará no grid para a escolha, conforme abaixo:
Ao selecionar um registro clicando no Check da 1º coluna do registro, é retornado a pagina com o registro escolhido, conforme abaixo:
Este componente tem mais alguns atributos adicionais, segue os mais relevantes
hideCode: Esconde o inputText código.
widthCode: Determina o tamanho do inputText código.
hideDescription: Esconde o inputText descrição.
styleDescription: Coloca um estilo no inputText descrição.
header: Descrição do cabeçalho do popup.
visible: Deixa o componente visível.
update: Atualiza algum componente externo.
process: Componente que será forçado a atualização do conteúdo.
required: Determina se o campo é obrigatório.
listener: Executa uma ação do ManagedBean.
Conclusão
Nesse post vimos como se utiliza o componente e:lookup, suas configurações e alguns atributos.
Até mais,