JSF - Alterar valor de lista de objetos no bean

0 respostas
V

Bom Pessoal, estou com um problema que já esta fazendo aniversário,
tenho uma grid de item que tenho 2 h:inputText que irei inserir valor e quantidade desses itens direto na grid,
e queria alterar direto na lista do Bean para que possa ser salvo depois

segue DataTable:

<p:dataTable value="#{itensPropCotacoesBean.listaItensPropCotacao}"
                                     rowStyleClass="coluna" var="item1"
                                     style="font-size: 10px; width:auto; "  >

                            <p:column style="width: 25px;">
                                <f:facet name="header">
                                    <h:outputText value="N. Item"/>
                                </f:facet>
                                <h:outputText value="#{item1.iditenspropcotacoes}"/>
                            </p:column>
                            <p:column style="width: 25px;">
                                <f:facet name="header">
                                    <h:outputText value="Cod. Prod."/>
                                </f:facet>
                                <h:outputText value="#{item1.ipcIdproduto}"/>
                            </p:column>
                            <p:column  >
                                <f:facet name="header" >
                                    <h:outputText value="Produto"/>
                                </f:facet>
                                <h:outputText value="#{item1.ipcNomeProduto}"/>
                            </p:column>
                            <p:column style="width: 25px;">
                                <f:facet name="header">
                                    <h:outputText value="Und"/>
                                </f:facet>
                                <h:outputText value="#{item1.ipcUnProduto}"/>
                            </p:column>
                            <p:column>
                                <f:facet name="header">
                                    <h:outputText value="Qtd. Solicitada"/>
                                </f:facet>
                                <h:outputText value="#{item1.ipcQtdSolicitada}"/>
                            </p:column>
                            <p:column>
                                <f:facet name="header">
                                    <h:outputText value="Qtd. Informada"/>
                                </f:facet>
                                <h:inputText id="qtd"  value="#{itensPropCotacoesBean.ipcQtdOfertada1}"  valueChangeListener="#{itensPropCotacoesBean.SomarQtd(item1)}" >
                                       <f:ajax execute="qtd" render="output" />
                                </h:inputText>
                            </p:column>
                            <p:column>
                                <f:facet name="header">
                                    <h:outputText value="Vr. Unit"/>
                                </f:facet>
                                <h:inputText id="name" value="#{itensPropCotacoesBean.ipcValorOfertado1}" valueChangeListener="#{itensPropCotacoesBean.SomarVr(item1)}">
                                        <f:ajax execute="name" render="output" />
                                </h:inputText>
                            </p:column>
                            
                        </p:dataTable>

Nos metodos itensPropCotacoesBean.ipcValorOfertado1 e itensPropCotacoesBean.ipcQtdOfertada1 ja tentei de tudo
o mais proximo que cheguei foi quando digito os valores ele ja adicionaria na lista, porem nao salva os valores na lista (segue partes principais)

private Itenspropcotacoes current;
    private List<Itenspropcotacoes> listaItensPropCotacoes = null;


public void SomarQtd(Itenspropcotacoes it) {
        this.current = it;
    }
    public void SomarVr(Itenspropcotacoes it) {
        this.current = it;
    }

    public void setIpcQtdOfertada1(double ipcQtdOfertada) {
        this.ipcQtdOfertada1 = ipcQtdOfertada;       
        for (Itenspropcotacoes item : this.listaItensPropCotacoes) {

            //itero a lista para achar o objeto informado
            if (item.equals(current)) {         

                //pego a posicao do item na lista
                int i = this.listaItensPropCotacoes.indexOf(item);

                //pego objeto da lista naquela posicao e insiro a quantidade
                this.listaItensPropCotacoes.get(i).setIpcQtdOfertada(ipcQtdOfertada);                
            }
        }       
    }
 public void setIpcValorOfertado1(double ipcValorOfertado) {
        this.ipcValorOfertado1 = ipcValorOfertado;

        for (Itenspropcotacoes item : this.listaItensPropCotacoes) {
            if (item.equals(current)) {

                //pego a posicao do item na lista
                int i = this.listaItensPropCotacoes.indexOf(item);

                 //pego objeto da lista naquela posicao e insiro a quantidade
                this.listaItensPropCotacoes.get(i).setIpcValorOfertado(ipcValorOfertado);
            }
        }
}

Resumindo, precisava alterar os valores dos objetos da lista pelos inputTexts da datatable
para no final ter uma lista com todos objetos com os valores e quantidades adicionados.
Qualquer duvida me fala que posto o restante do codigo, resumi porque achei mto extenso.

Abraços

Criado 17 de março de 2011
Respostas 0
Participantes 1