Boa notie galera, estou fazendo um trabalho que envolve um CRUD de produtos com alguns cálculos. Queria saber como faço pra que ando eu alterar por exemplo o camplo Lucro (%) ele calcule no campo VlTotal, e vice-versa, em desktop eu sabia fazer, mas agora na Web to penando. Tem algum evento tipo o onExit do campo para ele fazer este calculo?
Seguem os códigos pra análise. Obrigado.
Controle:
[code]/*
- To change this template, choose Tools | Templates
- and open the template in the editor.
*/
package br.com.nfacil.control;
import br.com.nfacil.converter.ConverterGenerico;
import br.com.nfacil.facade.ProdutoFacade;
import br.com.nfacil.facade.GrupoFacade;
import br.com.nfacil.model.Grupo;
import br.com.nfacil.model.Produto;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.convert.Converter;
import javax.faces.event.ActionEvent;
import javax.faces.model.SelectItem;
/**
*
-
@author lucas
*/
@ManagedBean(name = “produtoControle”)
@SessionScoped
public class ProdutoControle implements Serializable {private Produto produto = new Produto();
@EJB
private ProdutoFacade produtoFacade;
@EJB
private GrupoFacade grupoFacade;private Converter grupoConverter;
private List lista = new ArrayList();private List listap = new ArrayList();
public void salvar() {
produtoFacade.salvar(produto);
}public void novo() {
produto = new Produto();
}public Converter getGrupoConverter() {
if (grupoConverter == null) {
grupoConverter = new ConverterGenerico(grupoFacade);
}
return grupoConverter;
}public void setGrupoConverter(Converter GrupoConverter) {
this.grupoConverter = GrupoConverter;
}public void editar(ActionEvent e) {
produto = (Produto) e.getComponent().getAttributes().get(“produto”);
}public void excluir(ActionEvent e) {
produto = (Produto) e.getComponent().getAttributes().get(“produto”);
produtoFacade.remove(produto);
}public List getLista() {
return produtoFacade.consultar();
}public void setLista(List listap) {
this.listap = listap;
}public List getListap() {
return listap;
}public void setListap(List listap) {
this.listap = listap;
}public ProdutoFacade getProdutoFacade() {
return produtoFacade;
}public void setProdutoFacade(ProdutoFacade produtoFacade) {
this.produtoFacade = produtoFacade;
}public Produto getProduto() {
return produto;
}public void setProduto(Produto produto) {
this.produto = produto;
}
public void calculaTotal(){}
public List getProdutos() {
List listaProdutos = new ArrayList();
for (Produto p : produtoFacade.consultar()) {
listaProdutos.add(new SelectItem(p, p.getDescricao()));
}
return listaProdutos;
}
public List getGrupos() {
List listaGrupos = new ArrayList();
for (Grupo g : grupoFacade.consultar()) {
listaGrupos.add(new SelectItem(g, g.getNome()));
}
return listaGrupos;
}
}
[/code]
View:
[code]<?xml version='1.0' encoding='UTF-8' ?>
<h:outputText value="Grupo"/>
<p:selectOneMenu value="#{produtoControle.produto.grupo}" converter="#{produtoControle.grupoConverter}">
<f:selectItems value="#{produtoControle.grupos}"/>
</p:selectOneMenu>
<p:selectBooleanCheckbox label="Registro Ativo?" required="true"
requiredMessage="Informe se o registro encontra-se ativo ou não"
itemLabel="Ativo" value="#{produtoControle.produto.ativo}">
</p:selectBooleanCheckbox>
</p:panelGrid>
</p:fieldset>
<p:commandButton value="Salvar" actionListener="#{produtoControle.salvar()}" ajax="false"/>
<p:commandButton value="Cancelar" action="/relatorios/produtolista" actionListener="#{produtoControle.novo()}" ajax="false" immediate="true"/>
</p:fieldset>
</h:form>
</ui:define>
</ui:decorate>
[/code]