Bom Galera, o problema é o seguinte:
Eu tenho uma tabela de Produtos, onde eu posso selecionar um Produto e inserir ele em um ArrayList que representa a Lista de Venda.
Bem eu consigo inserir normalmente, porém quando vou inserir o segundo item ao invés de o Array inserir o segundo item ele esta criando outro ArrayList assim exibindo somente o que foi escolhido naquele momento:
Vou postar o Código.
Produtos a Serem selecionados:
[code]<p:dialog id=“JanelaProduto” widgetVar=“janelaProduto” width=“1024”
position=“center” modal=“true” closeOnEscape=“true”
minWidth=“600” >
<h:form id="tabelaProduto">
<p:outputPanel id="Painel" >
<p:dataTable paginator="true"
paginatorPosition="bottom"
rows="20"
value="#{produtoBean.produtos}"
var="produto"
emptyMessage="Nenhum Produto Cadastrado !"
update="dadosProduto,dadosProduto2">
<p:column headerText="ID" style="width:50px;">
<h:outputText value="#{produto.id}"/>
</p:column>
<p:column headerText="DESCRIÃ?Ã?O" sortBy="true">
<h:outputText value="#{produto.descricao}"/>
</p:column>
<p:column style="width:35px;">
<f:facet name="header">
<h:outputText value="#"/>
</f:facet>
<p:commandButton update="dados_Produto" ajax="false" oncomplete="janelaProduto.hide()"
image="ui-icon-circle-check">
<f:setPropertyActionListener target="#{vendaBean.produtoSelecionado}" value="#{produto}"/>
</p:commandButton>
</p:column>
</p:dataTable>
</p:outputPanel>
</h:form>
</p:dialog>
[/code]
Exibe os Produtos Selecionados:
[code]<h:panelGrid id=“dados_Produto2” columns=“1” columnClasses=“colunaEsquerda,colunaDireita”>
<p:commandButton image="ui-icon-search" action="update"
ajax="true" immediate="true" oncomplete="janelaProduto.show()"/>
</h:panelGrid>
<p:dataTable id="dados_Produto"
paginator="true"
paginatorPosition="bottom"
rows="10"
value="#{vendaBean.vendas}"
var="venda"
emptyMessage="Nenhuma Venda Efetuada !">
<p:column headerText="Cód." style="width:30px;">
<h:outputText value="#{venda.produto.id}"/>
</p:column>
<p:column headerText="Descrição">
<h:outputText value="#{venda.produto.descricao}"/>
</p:column>
<p:column headerText="U.M" style="width:30px;">
<h:outputText value="#{venda.produto.unidade_medida}"/>
</p:column>
<p:column headerText="Qtd" style="width:30px;">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{venda.quantidade}"/>
</f:facet>
<f:facet name="input">
<p:inputText value="#{venda.quantidade}"/>
</f:facet>
</p:cellEditor>
</p:column>
<p:column headerText="P.Uni" style="width:30px;">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{venda.vlrUnit}"/>
</f:facet>
<f:facet name="input">
<p:inputText value="#{venda.vlrUnit}"/>
</f:facet>
</p:cellEditor>
</p:column>
<p:column headerText="Total" style="width:40px;">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{venda.vlrTotal}"/>
</f:facet>
<f:facet name="input">
<p:inputText value="#{venda.vlrTotal}"/>
</f:facet>
</p:cellEditor>
</p:column>
<p:column>
<p:rowEditor/>
</p:column>
</p:dataTable>
[/code]
Bean
Uso o “produtoSelecionado” para inserir na List de Vendas !!
[code]public class VendaBean implements Serializable{
private EntityManager entityManager;
private Cliente clienteSelecionado;
private Produto produtoSelecionado;
private Plano planoSelecionado;
private Funcionario funcionario;
private Venda venda;
private List<Produto> produtos;
private List<Venda> vendas = new ArrayList<Venda>();
Double quantidade;
public List<Venda> getVendas() {
System.out.println("GETVendas");
for (Venda v : vendas)
System.out.println("Size: "+ vendas.size() +" | Item: "+v.getProduto().getDescricao());
return vendas;
}
public void setProdutoSelecionado(Produto produtoSelecionado) {
System.out.println("SET PRODUTO SELECIONADO: "+ produtoSelecionado.getDescricao());
this.produtoSelecionado = produtoSelecionado;
venda = new Venda();
System.out.println("SPS -> VENDAS");
this.venda.setProduto(this.produtoSelecionado);
this.vendas.add(venda);
this.produtoSelecionado = new Produto();
this.venda = new Venda();
}
public Plano getProdutoSelecionado() {
System.out.println("GET PRODUTO SELECIONADO");
return produtoSelecionado;
}
}[/code]
Se alguem puder me ajudar agradeço …