Array
(
)

Adicionar Dados em um Grid sem Duplicar JSF RichFaces

Victor Lima
   - 29 out 2009

Bom dia,

Em minha aplicação, tenho uma tela onde o usuario insere registros únicos em uma Lista onde vai somando o total e a quantidade inserida.
Esses registros são notas fiscais e seus respectivos registros dentro desta lista não podem se repetir.
Realizei uma velidação em um Bean evitando que se repita ,ok Funciona, o Valor total não incrementa e nem a quantidade, mas no grid é adicionado isso visualmente. Como achei estranho, fiz um teste dando um System.out  na lista para ver se está inserindo repetido, e por surepresa não se repete na lista mas si somente na tela fica duplicado. Cada registro inserido aparece uma imagem X para que o usuario não queira inserir esse registro ou inseriu por engano possa clicar e retirar da lista, esse tambem está funcionando internamente, retira da lista e decrementa o valor, ja como citei acima, se o usuario insere repetido os valores não sao somados a quantidade tambem nao incrementa mas se ele retirar esse repetido porque aparece na tela ele decrementa ficando um valore negativo e o numero negativo.

Vou postar os codigos e imagens passo a passo.

 Bean Controller : O método que adiciona o registro é adicionarNotaAoMapa()

/**
 *
 * @author victor
 */
@Controller("mapaController")
@Scope("session")
public class MapaController {

    private MapaTransporte mapa;
    private ItensMapaTransporte itensMapa;
    private HashMap<Long, ItensMapaTransporte> impt = new HashMap<Long, ItensMapaTransporte>();
    private ItemMapa itemMapa;
    private List<MapaTransp> mapaTransp = new ArrayList<MapaTransp>(); //lista onde sera armazena os itens
    private HashMap<Integer, MapaTransp> mapaTranspMap = new HashMap<Integer, MapaTransp>();
    private HashMap<Long, ItemMapa> itensMapaMap = new HashMap<Long, ItemMapa>();
    private HashMap<Integer, ItemMapa> itensValidaGrid = new HashMap<Integer, ItemMapa>();
    private List<ItemMapa> itemList = new ArrayList<ItemMapa>();
    private Date dataMapa;
    private Integer notaF;
    private Integer vol = null;
    private String fornecimento;
    @Resource
    private DaoGenerico<MapaTransporte, Integer> mapatransporteDao;
    @Resource
    private DaoGenerico<ItensMapaTransporte, Integer> itensmapaDao;
    @Resource
    private DaoGenerico<NotaFiscal, Integer> notafiscalDao;
    @Resource
    private DaoGenerico<Empresa, Integer> empresaDao;
    @Resource
    private DaoGenerico<Motorista, Integer> motoristaDao;
    @Resource
    private DaoGenerico<Veiculo, Integer> veiculoDao;
    @Resource
    private DaoGenerico<Rota, Integer> rotaDao;
    @Resource
    private DaoGenerico<Modalidade, Integer> modalidadeDao;
    @Resource
    private DaoGenerico<Cliente, Integer> clienteDao;
    @Resource
    private DaoGenerico<Area, Integer> areaDao;
    private Map<String, Object> empresaItem = null;
    private Map<String, Object> motoristaItem = null;
    private Map<String, Object> veiculoItem = null;
    private Map<String, Object> rotaItem = null;
    private Map<String, Object> modalidadeItem = null;
    private Map<String, Object> areaItem = null;
    private Integer qtdMapeo = null;
    private DataModel model;
    private boolean exibirTab = false;
    FacesContext fc = FacesContext.getCurrentInstance();
    HttpSession session = (HttpSession) fc.getExternalContext().getSession(false);

    public String novoMapa() {
        this.mapa = new MapaTransporte();
        this.mapa.setEmpresa(new Empresa());
        this.mapa.setMotorista(new Motorista());
        this.mapa.setVeiculo(new Veiculo());
        this.mapa.setRota(new Rota());
        this.mapa.setModalidade(new Modalidade());
        this.mapa.setArea(new Area());
        this.getEmpresa();
        this.getMotorista();
        this.getVeiculo();
        this.getRota();
        this.getModalidade();
        this.getArea();

        return "goToformmapa";

    }

    public Map<String, Object> getEmpresa() {
        empresaItem = new LinkedHashMap<String, Object>();
        for (Iterator<?> iter = empresaDao.todos().iterator(); iter.hasNext();) {
            Empresa e = (Empresa) iter.next();
            empresaItem.put(e.getDesc_nome(), e.getCodempr());// label,value
        }
        return empresaItem;
    }

    public Map<String, Object> getMotorista() {
        motoristaItem = new LinkedHashMap<String, Object>();
        for (Iterator<?> iter = motoristaDao.todos().iterator(); iter.hasNext();) {
            Motorista e = (Motorista) iter.next();
            motoristaItem.put(e.getFirst_name() + " " + e.getLast_name(), e.getCodmotorista());// label,value
        }
        return motoristaItem;
    }

    public Map<String, Object> getVeiculo() {
        veiculoItem = new LinkedHashMap<String, Object>();
        for (Iterator<?> iter = veiculoDao.todos().iterator(); iter.hasNext();) {
            Veiculo e = (Veiculo) iter.next();
            veiculoItem.put(e.getPlaca(), e.getCodveiculo());// label,value
        }
        return veiculoItem;
    }

    public Map<String, Object> getRota() {
        rotaItem = new LinkedHashMap<String, Object>();
        for (Iterator<?> iter = rotaDao.todos().iterator(); iter.hasNext();) {
            Rota e = (Rota) iter.next();
            rotaItem.put(e.getDesc_rota(), e.getId());// label,value
        }
        return rotaItem;
    }

    public Map<String, Object> getModalidade() {
        modalidadeItem = new LinkedHashMap<String, Object>();
        for (Iterator<?> iter = modalidadeDao.todos().iterator(); iter.hasNext();) {
            Modalidade e = (Modalidade) iter.next();
            modalidadeItem.put(e.getDescModalidade(), e.getIdModalidade());// label,value
        }
        return modalidadeItem;
    }

    public Map<String, Object> getArea() {
        areaItem = new LinkedHashMap<String, Object>();
        for (Iterator<?> iter = areaDao.todos().iterator(); iter.hasNext();) {
            Area e = (Area) iter.next();
            areaItem.put(e.getDesc_area(), e.getId());// label,value
        }
        return areaItem;
    }

    // Pesquisa a Nota Fiscal
    private NotaFiscal verificaNF(Integer nf) {
        String query = "SELECT n from NotaFiscal n WHERE n.notafiscal = :nota";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("nota", nf);
        return notafiscalDao.pesqParam(query, params);
    }

    // Verificar a Existencia do Cliente
    private Cliente verificaCliente(Integer cli) {
        String query = "SELECT c FROM Cliente c WHERE c.codCli = :codCli";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("codCli", cli);
        return clienteDao.pesqParam(query, params);
    }

    // Verificar a Existencia do Cliente
    private Integer verificaItensMapa(Long it) {
        String query = "SELECT i FROM ItensMapaTransporte i WHERE i.cod_nf = :cod";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("cod", it);
        params =  (Map<String, Object>) itensmapaDao.pesqParam(query, params);
        return qtdMapeo = params.size();

    }

 

    public boolean validaItensMapa() {
        boolean test = false;

        if (listarItensMapaValidaGrid().size() != 0) {
            Iterator<?> it = listarItensMapaValidaGrid().iterator();
            Integer n = null;
            while (it.hasNext()) {
                ItemMapa i = (ItemMapa) it.next();
                if (i.getNf() == n) {
                    test = true;

                    break;

                }

            }
        }
        return test;
    }

    public void exibirTabPanel() {
        exibirTab = true;
    }

    public void ocultarTabPanel() {
        exibirTab = false;
    }

    // Adicionar nota ao itens do  Mapa de Transporte
    public void adicionarNotaAoMapa() {

        Iterator<?> i = listarItensMapa().iterator();
        Integer aux = null;
        while (i.hasNext()) {
            ItemMapa it = (ItemMapa) i.next();

            if (it.getNf() == notaF) {
                aux = it.getNf();

            }

        }

        if (aux != notaF) {

            NotaFiscal n = verificaNF(notaF);

            if (n != null) {

                Cliente cli = verificaCliente(n.getCodCli().getCodCli());
            //    Integer count = verificaItensMapa(n.getCod_nf());

                //   Integer quantMapeo = 0;
                //  quantMapeo = verificaNfQuant(notaF);

                ItemMapa itens = new ItemMapa();

                itens.setCodNf(n.getCod_nf());
                itens.setNf(n.getNotafiscal());
            //    itens.setQuantMapeada(count);
                itens.setValor(n.getValor());
                itens.setCliente(cli.getNomeCli());
                itens.setVolume(vol);

                itensMapaMap.put(itens.getCodNf(), itens);
                itensValidaGrid.put(itens.getNf(), itens);
                itemList.add(itens);
                atualizarQtd();
                atualizarValor();

            } else {
                FacesUtils.mensErro("Nota Fiscal não encontrada");
                String msg = "Nota Fiscal não encontrada";
                FacesMessage message = new FacesMessage(msg);
                FacesContext context = FacesContext.getCurrentInstance();
                context.addMessage("pesquisanfmapa", message);
            }
        } else {
            FacesUtils.mensErro("Nota Fiscal já foi adicionada ao Mapa");
            String msg = "Nota Fiscal já foi adicionada ao Mapa";
            FacesMessage message = new FacesMessage(msg);
            FacesContext context = FacesContext.getCurrentInstance();
            context.addMessage("pesquisanfmapa", message);

        }

        System.out.println(listarItensMapa().size());
    }

    public void gravarMapa() {

        if (listarItensMapa().size() > 0) {

            Empresa e = empresaDao.pesquisarPorId(mapa.getEmpresa().getCodempr());
            Veiculo vei = veiculoDao.pesquisarPorId(mapa.getVeiculo().getCodveiculo());
            Modalidade mod = modalidadeDao.pesquisarPorId(mapa.getModalidade().getIdModalidade());
            Rota rota = rotaDao.pesquisarPorId(mapa.getRota().getId());
            Motorista motorista = motoristaDao.pesquisarPorId(mapa.getMotorista().getCodmotorista());

            mapa.setEmpresa(e);
            mapa.setVeiculo(vei);
            mapa.setModalidade(mod);
            mapa.setRota(rota);
            mapa.setMotorista(motorista);

            // pegar o usuario

            mapa.setUser((Usuario) session.getAttribute("userlogged"));

            mapa.setData_lanc(new Timestamp((new Date()).getTime()));

            mapa.setValor_tot(mapa.getSubTotal());
            MapaTransporte mapaid = mapatransporteDao.salvar(mapa);

            // varre os itens do Mapa para guardar no Banco.

            Iterator<?> item = listarItensMapa().iterator();

            while (item.hasNext()) {

                ItemMapa itemMapaGrava = (ItemMapa) item.next();

                // salva os itens no mapa

                itensmapaDao.salvar(new ItensMapaTransporte(
                        mapaid.getCod_mapa(),
                        itemMapaGrava.getCodNf(),
                        itemMapaGrava.getQuantMapeada(),
                        itemMapaGrava.getValor(),
                        itemMapaGrava.getVolume()));

            }

            FacesUtils.mensErro("Gravado com Sucesso");
            String msg = "Gravado com Sucesso";
            FacesMessage message = new FacesMessage(msg);
            FacesContext context = FacesContext.getCurrentInstance();
            context.addMessage("pesquisanfmapa", message);
        }
        limpar();
    }

    // limpar itens de mapa
    public void limpar() {

        itemList.clear();
        itensMapaMap.clear();
        this.getTodos();

    }

    public DataModel getTodos() {

        return model = new ListDataModel(itemList);

    }

    // lista os pedidos do arquivo importado Itens
    @SuppressWarnings("unchecked")
    public List listarItensMapa() {
        // retorna um ArrayList
        return new ArrayList(itensMapaMap.values());
    }

    // lista os itens do mapa para validar se ja existe um
    @SuppressWarnings("unchecked")
    public List listarItensMapaValidaGrid() {
        // retorna um ArrayList
        return new ArrayList(itensValidaGrid.values());
    }

    // Atualizar Quantidade e Valor
    public Integer atualizarQtd() {

        Integer quant = 0;

        Iterator<?> itensMapaNF = listarItensMapa().iterator();
        while (itensMapaNF.hasNext()) {
            ItemMapa item = (ItemMapa) itensMapaNF.next();

            quant += 1;

        }

        mapa.setQtdTotal(quant);

        return null;

    }

    // Atualizar e Valor
    public Double atualizarValor() {

        Double totalGeral = 0.0;

        Iterator<?> itensMapaNF = listarItensMapa().iterator();
        while (itensMapaNF.hasNext()) {
            ItemMapa item = (ItemMapa) itensMapaNF.next();

            totalGeral += item.getValor();

        }

        mapa.setSubTotal(totalGeral);

        return null;

    }

    public String remoreItens() {
        ItemMapa i = getItemMapaParaExcluir();
        itemList.remove(i);
        itensMapaMap.remove(i.getCodNf());
        return null;
    }

    public ItemMapa getItemMapaParaExcluir() {
        ItemMapa i = (ItemMapa) model.getRowData();
        return i;
    }

    public String removerItensMapa() {

        ItemMapa i = getItemMapaParaExcluir();
        itemList.remove(i);
        itensMapaMap.remove(i.getCodNf());

        Integer quant = listarItensMapa().size();

        Double total = mapa.getSubTotal() - i.getValor();

        // recalcula  Quantidade
        mapa.setQtdTotal(quant);
        mapa.setSubTotal(total);

        return null;
    }

    private Connection getConnection() {

        Connection connection = null;

        try {
            // Cria a conexao com o banco de dados

            Class.forName("org.postgresql.Driver");
            String db = "jdbc:postgresql://localhost:5432/webtracking";
            connection = DriverManager.getConnection(db, "postgres", "viclima");

        } catch (SQLException ex) {
            ex.printStackTrace();
        } catch (ClassNotFoundException ex) {
            ex.printStackTrace();
        }

        return connection;
    }

     public void executarRelatorio() throws ParseException, SQLException, IOException{

        FacesContext context = FacesContext.getCurrentInstance();
        HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();

        //pega o caminho do arquivo .jasper da aplicação
       InputStream reportStream = context.getExternalContext().getResourceAsStream("/reporter/mapa/mapatransporte.jasper");

        try {

            Connection connection = getConnection();
            ServletOutputStream servletOutputStream = response.getOutputStream();

                HashMap<String, Integer> map = new HashMap<String, Integer>();
                map.put("PAR_CODMAPA", 18);

                 //envia a resposta com o MIME Type PDF
                response.setContentType("application/pdf");
                //envia para o navegador o PDF gerado
                JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream, map, connection);

            servletOutputStream.flush();
            servletOutputStream.close();

            connection.close();

        } catch (JRException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            //evita erro do JSF após completar
            //a geração do relatório
            //avisando o FacesContext que a resposta está completa
            context.responseComplete();

        }

     }

   .... getes e Seters ...

Codigo da Tela ...

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:a4j="http://richfaces.org/a4j"
      xmlns:rich="http://richfaces.org/rich"
      xmlns:ajax="https://ajax4jsf.dev.java.net/ajax">

    <style>
        .scrolls{
            width:300px;
            height:200px;
            overflow:auto;
        }
    </style>
    <body>
        <ui:composition template="../layouts/template.xhtml">

            <ui:define name="content">

                <rich:tabPanel switchType="ajax" id="tabmapa">
                    <rich:tab label="Mapeamento de Transporte" id="mapatransporte">

                        <h:form id="mapa">
                            <rich:panel style="width:800px;height:300px">
                                <f:facet name="header">
                                    <h:outputText value="Dados para Mapeamento de Carga"/>
                                </f:facet>
                               <h:commandLink value="Imprimir"  action="#{mapaController.executarRelatorio}" />

                                <h:panelGrid columns="2">
                                    <h:outputText  styleClass="rich-label"  value="Data do Mapa" />
                                    <rich:calendar required="true" value="#{mapaController.mapa.data_mapa}"  datePattern="dd/MM/yyyy"/>

                                    <h:outputText  styleClass="rich-label" value="Trasnportadora:" />
                                    <h:selectOneMenu  id="empresa"  required="true" default="Selecione Empresa" value="#{mapaController.mapa.empresa.codempr}"  >
                                        <f:selectItems length="30" value="#{mapaController.empresa}"/>
                                    </h:selectOneMenu>

                                    <h:outputText  styleClass="rich-label" value="Area:" />
                                    <h:selectOneMenu  id="rota"  required="true" default="Selecione Rota" value="#{mapaController.mapa.area.id}"  >
                                        <f:selectItems length="30" value="#{mapaController.area}"/>
                                    </h:selectOneMenu>

                                    <h:outputText  styleClass="rich-label" value="Motorista:" />
                                    <h:selectOneMenu  id="motorista" required="true"  default="Selecione Motorista" value="#{mapaController.mapa.motorista.codmotorista}"  >
                                        <f:selectItems length="30" value="#{mapaController.motorista}"/>
                                    </h:selectOneMenu>

                                    <h:outputText  styleClass="rich-label" value="Modalidade:" />
                                    <h:selectOneMenu  id="modalidade"  required="true" default="Selecione Modalidade" value="#{mapaController.mapa.modalidade.idModalidade}"  >
                                        <f:selectItems length="30" value="#{mapaController.modalidade}"/>
                                    </h:selectOneMenu>

                                    <h:outputText  styleClass="rich-label" value="Veiculo:" />
                                    <h:selectOneMenu  id="veiculo"  default="Selecione Veiculo" value="#{mapaController.mapa.veiculo.codveiculo}"  >
                                        <f:selectItems length="30" value="#{mapaController.veiculo}"/>
                                    </h:selectOneMenu>

                                    <h:outputText  styleClass="rich-label" value="Obeservação:" />
                                    <h:inputText label="Observação"  id="obs" size="80"  value="#{mapaController.mapa.observacao}">

                                    </h:inputText>

                                    <h:panelGrid columns="1">
                                        <br/>

                                        <a4j:commandButton value="Confirmar" action="#{mapaController.exibirTabPanel}" ajaxSubmit="true"
                                                           reRender="itensmapa"/>

                                    </h:panelGrid>

                                </h:panelGrid>

                            </rich:panel>
                        </h:form>
                    </rich:tab>

                    <rich:tab label="Adicionar Pedidos" id="itensmapa" disabled="#{mapaController.exibirTab}">
                        <h:form>
                            <rich:panel style="width:800px;height:70px" id="paneladd"  >
                                <f:facet name="header">
                                    <h:outputText value="Pesquisa de Notas e Pedidos"/>
                                </f:facet>
                                <h:panelGrid columns="3">
                                    <h:panelGrid columns="3">
                                        <h:outputText  styleClass="rich-label" value="Volume:" />
                                        <h:inputText label="Volume"  id="volume" size="11" required="false"  maxlength="11" value="#{mapaController.vol}" >
                                            <f:validateLength minimum="1" maximum="11" />
                                        </h:inputText>
                                    </h:panelGrid>
                                    <h:panelGrid columns="2">
                                        <h:outputText  styleClass="rich-label" value="Nota Fiscal:" />
                                        <h:inputText label="Nota Fiscal"  id="nfadd" size="6" required="false" maxlength="6" value="#{mapaController.notaF}" class="mantemFocus" >
                                            <f:validateLength minimum="1" maximum="6" />
                                        </h:inputText>
                                    </h:panelGrid>
                                    <a4j:commandButton value="Adicionar" action="#{mapaController.adicionarNotaAoMapa}" ajaxSubmit="true"
                                                       reRender="listnotas,valortotal,qtdtotal"/>
                                </h:panelGrid>
                                <rich:spacer height="0px"/>
                            </rich:panel>

                            <rich:panel style="width:800px;height:1000px;backgroundColor=#F1F1F1" id="panelGrid"  >
                                <f:facet name="header">
                                    <h:outputText value="Informações adicionadas ao Mapa"/>
                                </f:facet>

                                <h:panelGrid columns="2">

                                    <h:outputText  styleClass="rich-label" value="Valor Total Notas:" />
                                    <h:outputText styleClass="rich-label" id="valortotal" value="#{mapaController.mapa.subTotal}">
                                        <f:convertNumber type="currency" />
                                    </h:outputText>
                                </h:panelGrid>
                                <h:panelGrid columns="2">

                                    <h:outputText  styleClass="rich-label" value="Quantidade de Notas:" />
                                    <h:outputText styleClass="rich-label" id="qtdtotal" value="#{mapaController.mapa.qtdTotal}"/>
                                </h:panelGrid>
                                <h:panelGrid columns="2">
                                    <a4j:commandButton value="Gravar" action="#{mapaController.gravarMapa}" ajaxSubmit="true"
                                                       reRender="listnotas,valortotal,qtdtotal"/>
                                </h:panelGrid>
 

                                <rich:dataTable  onRowMouseOver="this.style.backgroundColor='#F1F1F1'"
                                                 onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"
                                                 cellpadding="0"  border="0" var="itemmapa" frozenColCount="1"
                                                 height="10px" width="780px" id="listnotas"  columnClasses="col"
                                                 value="#{mapaController.todos}"   sortMode="single" >
                                    <rich:column id="numnf">
                                        <f:facet name="header"><h:outputText styleClass="headerText" value="Numero da Nota" /></f:facet>
                                        <h:outputText value="#{itemmapa.nf}"  />
                                    </rich:column>
                                    <rich:column id="cliente">
                                        <f:facet name="header"><h:outputText  styleClass="headerText" value="Cliente" /></f:facet>
                                        <h:outputText value="#{itemmapa.cliente}"  />
                                    </rich:column>
                                    <rich:column id="quant">
                                        <f:facet name="header"><h:outputText  styleClass="width:20px" value="Cont. Mapeamento" /></f:facet>
                                        <h:outputText value="#{itemmapa.quantMapeada}"   />
                                    </rich:column>
                                    <rich:column id="volume">
                                        <f:facet name="header"><h:outputText   value="Vol." /></f:facet>
                                        <h:outputText value="#{itemmapa.volume}"   />
                                    </rich:column>
                                    <rich:column id="valor">
                                        <f:facet name="header"><h:outputText  styleClass="headerText" value="Valor da Nota" /></f:facet>
                                        <h:outputText value="#{itemmapa.valor}"   />
                                    </rich:column>
                                    <rich:column id="action">
                                        <f:facet name="header"><h:outputText  styleClass="headerText" value="Excluir" /></f:facet>
                                        <center><a4j:commandLink  reRender="listnotas,valortotal,qtdtotal"  action="#{mapaController.removerItensMapa}">
                                        <h:graphicImage value="/img/error.gif" border="0" /></a4j:commandLink></center>

                                    </rich:column>

                                </rich:dataTable>

                            </rich:panel>
                          
                        </h:form>

                    </rich:tab>

                </rich:tabPanel>
            </ui:define>
        </ui:composition>

    </body>
</html>

Tela onde estou inserindo os Itens com um exemplo de uma nota 596088 duplicada.

Tela onde clico no botao vermelho do registro Coluna(Excluir), removendo os registros.

 

Atenciosamente

Victor

Andrei Hirata
   - 29 out 2009

Eu recomendaria assim.Apenas levando em consideração a lógica e não o código fonte para seu problema
Cada vez que vc clicar em adicionar, pegue o valor o codigo e compare com a grid na linha de codigo da nota.

Para ser mais exato, vc pega o codigo do seu objeto
Depois da um loop na grid e veja se na coluna 1 até o final das linhas existe este codigo
se existir da alerta
se nao existir permita isto

para saber a coluna da grid = col e linha = row

Assim funcionaria legal..

0
|
0

Victor Lima
   - 29 out 2009

Boa Tarde,

Eu fiz isso mas no codigo do controller, o que vc fala e fazer isso na tela tambem, eu entendi realemente,
agora fazer e complicado ate porque sou novato e eh a primeira vez que faco isso.

Voce poderia me dar um exemplo ?

obrigado

Victor

0
|
0

Andrei Hirata
   - 29 out 2009

Então amigo eu vou facilitar seu trabalho.. Toda vez que a pessoa clicar no BOTAO INSERIR VALOR. Adicione o valor em uma lista. Assim atualize sua tabela,se usar ajax = comando reRender..algo assim quando o usuario for adicionar o mesmo valor..E agora oq devo fazer?   SIMPLES..   pegue o valor digitado percorra a lista e veja se este valor é igual, se for igual vc incrimenta o valor..SE posse produto,vc incrementaria a quantidade ouuu se for igual vc nao deixa fazer nada..       VEJA QUE É MAIS FACIL TRABALHAR COM LISTA.ISTO SERVE PARA DATA MODEL..VOU TE PASSAR UM EXEMPLO BABA DA LISTA.Eu acho que ligar uma tabela em jsf com a lista vc ja sabe ne? NA DUVIDA>>.   rich:dataTable rowClasses="classOne,classTwo"
                                id = "tblLocais"
                                rows = "10"
                                columnClasses="col"
                                value="#{listaBean.adicionado}"
                                var='item'
                                border="1"
                                cellpadding="2"
                                cellspacing="0">                     <f:facet name="header">
                        <h:outputText value="#{msg.langTblLocais}"/>
                    </f:facet>   aee a sua lista.Aqui exemplo de percorrer.       List lista = new ArrayList();  
... preencha a lista com seus objetos;  
for (Iterator iterator = lista.iterator(); iterator.hasNext(); ) {  
    SuaClasse obj = (SuaClasse) iterator.next();  
    System.out.println (obj.x1 + "," + obj.x2);  
}  OU EXEMPLO List<Pessoa> ps = new ArrayList<Pessoa>();
ps.add(new Pessoa("Maria 1.5"));
for (Pessoa p : ps)
  System.out.println(p.getNome());     assim seu codigo seria   List<Pessoa> ps = new ArrayList<Pessoa>();
for (Pessoa p : ps)
if ValorCapturadoNoJedit ==p.codigo { faca algo } else { faca nada }
  DEU PARA ENTENDER?  
 

0
|
0

Victor Lima
   - 09 nov 2009

boa tarde favor fechar chamado

atenciosamente Victor

0
|
0