0
Good afternoon, I am trying to insert a product automatically after reading the code and update the components on managedBean. However, the component autocomplete disappears from the screen after I do the context.update(panelGroup)
Note: The solution works, however I would like to clean the autocomplete after insertion of the product.
Could someone help me understand what’s going on, please?
public List<Produto> produtosSugeridos(String query) {
lisProdutosSugeridos = produtoServico.listarTodos();
List<Produto> produtosFiltrado = new ArrayList<Produto>();
for (Produto p : lisProdutosSugeridos) {
if (Pattern.compile(Pattern.quote(query), Pattern.CASE_INSENSITIVE).matcher(p.getNome()).find()
|| Pattern.compile(Pattern.quote(query), Pattern.CASE_INSENSITIVE).matcher(p.getCodigoDeBarras()).find()) {
produtosFiltrado.add(p);
}
}
if(produtosFiltrado.size() == 1 && query.length() == 13 && query.matches("[0-9]*")){
RequestContext context = RequestContext.getCurrentInstance();
for (Produto p : produtosFiltrado) {
produtoDaVenda.setProduto(p);
adicionaProdutosNaVenda();
produtoDaVenda.setQuantidade(1.0);
produtosFiltrado = new ArrayList<Produto>();
context.update("panelProdutos");
context.update("panel");
//Atualizo o autocomplet
context.update("panelInputProdu");
}
}
return produtosFiltrado;
}
Here code on page . xhtml
<h:panelGroup id="panelInputProdu">
<h:panelGrid
<p:autoComplete
tabindex="8"
id="autoProduto"
value="#{vendaControlador.produtoDaVenda.produto}"
completeMethod="#{vendaControlador.produtosSugeridos}"
var="p" itemLabel="#{p.nome}"
converter="produtoConverter"
temValue="#{p}"
minQueryLength="2" maxResults="20"
update="autoProduto,:formVenda:precoVenda">`
<p:ajax event="itemSelect" update="autoProduto,:formVenda:precoVenda" />
</p:autoComplete>
<p:watermark for="autoProduto" value="Digite o produto" />
</h:column>
pq vc update your component inside Mb? Wouldn’t it be better in the action of "Add"?
– Adriano Gomes
Hello Adriano, if clicking on "Add" works, but in this case I want to automatically insert a product when reading the code and the user will not click on the button. As can be seen in the method
produtosSugeridos(String query)
That’s why I need thecontext.update
in managedBean.– Vinicius Vasconcelos