Galera meu caso é o seguinte
Espero que entendam e possam me ajudar a sair dessa surra que estou levando. rsrs…
Eu tenho uma lista de objetos vinculado ao atributo “value” do componete ice:panelCollapsible
e dentro desse componente eu utilizo uma outra lista de objeto só que agora, vinculado ao atributo “value” do
componetne ice:dataTable.
A listagem dos dados ocorrem beleza, quando o icefaces cria a view (executa pela primeira vez), só que quando
eu faço uma remoção de um dos objetos contidos no componente ice:panelCollapsible, o proximo objeto listado
no componente ice:panelCollapsible lista os dados do seu objeto corretamente, mas os dados do componente
ice:dataTable passam a referenciar os dados do componente ice:dataTable do componente que foi removido. Isso
só acontece com o primeiro registro da lista, os demais tudo fica correto.
OBS: Os problema acredito eu que esta na camada de apresentação já que minha camada de serviço retorna
as listas de objetos com os dados corretos.
Espero que tenham entendido. O código abaixo ilustra melhor.
meu jsp está assim
<ice:commandButton type="submit" image="../css/images/22x22/listar_registros.png"
actionListener="#{controlador.listarVendas}"/>
<ice:panelSeries id="painelVendas" cellspacing="10px"
value="#{quotaBean.vendas}" var="venda">
<ice:panelGroup >
<ice:panelCollapsible expanded="false" styleClass="width: 100%">
<f:facet name="header">
<ice:panelGroup>
<ice:outputText value="#{venda.dataDaVendaString}" style="padding-left: 20px"/> </ice:panelGroup>
</f:facet>
<ice:outputText value="Forma de Pagamento" style="font-weight: bold"/><br/>
<ice:outputText value="#{venda.pagamento.especiePagamento}" />
<ice:outputText value="Valor da Compra" style="font-weight: bold"/><br/>
<ice:outputText value="#{venda.totalVenda}" />
</ice:panelGroup>
<ice:dataTable value="#{venda.itens}" var="item"
rowClasses="iceDatTblRow1, iceDatTblRow2"
scrollable="true" scrollHeight="170px">
<ice:column style="width: 200px;">
<f:facet name="header">
<ice:panelGroup>
<ice:outputText value="Produto"/>
</ice:panelGroup>
</f:facet>
<ice:outputText value="#{item.descricao} #{item.conteudo}"/>
</ice:column>
<ice:column style="width: 100px;">
<f:facet name="header">
<ice:panelGroup>
<ice:outputText value="Quantidade"/>
</ice:panelGroup>
</f:facet>
<ice:outputText value="#{item.quantVendida}"/>
</ice:column>
</ice:dataTable>
<ice:commandButton type="submit" image="../css/images/22x22/remover_registro.png"
actionListener="#{controlador.removerVenda}"
style="margin-right: 20px" title="Remover Venda"/>
</ice:panelSeries>
E o metodo do meu controlador está assim:
public void removerVenda(ActionEvent evento) {
UIComponent panelSeries = evento.getComponent().findComponent("painelVendas");
Venda venda = (Venda) ((UIData) panelSeries).getRowData();
quotaService.removerVenda(venda.getIdVenda());
/*remover a venda da interface*/
this.vendas.remove(venda);
}
public void listarVendas() {
vendas = quotaService.getAllVendas(this.idVenda);
if(vendas == null)
vendas = new ArrayList<Venda>();
}
No meu faces-config.xml eu tenho apenas o bean controlador com o escopo de request, bem simples.
Eu não coloquei as classes, Venda e Item por se tratrem apenas de pojos com sets e gets. Um objeto
de Venda tem uma lista de objetos Item.
O que vcs me dizem sobre esse problema.???
Galera de agora, eu agradeço a todo por suas colaborações.
Valeu