Quantcast
Channel: Programação - GUJ
Viewing all articles
Browse latest Browse all 33093

Remoção de item em Lista

$
0
0

@Bruno_Buscariolo escreveu:

Boa tarde galera..
Estou com o seguinte problema, talvez seja até simples, mas estou desde ontem tentando arrumar e ainda não consegui, então toda ajuda é bem vinda..

Seguinte: Eu tenho duas listas na página da venda, uma com itensVenda, e outra com maoDeObra..
A lista itensVenda, remove normalmente e funciona de acordo como eu preciso, porém a lista maoDeObra, após adicionar várias Mão de Obra, quanto tento remover alguma, ela sempre remove o primeiro item da lista..
Gostaria de alguma ajuda pra isso..

maodeobra.xhtml

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://xmlns.jcp.org/jsf/core">

    <p:panelGrid columns="2" layout="grid" columnClasses="coluna10, coluna90">

        <p:outputLabel value="Mão de Obra:" for="maodeobra"/>
        <h:panelGroup>
            <p:inputText id="maodeobra" value="#{vendaControle.maoDeObra.descricao}"/>
        </h:panelGroup>

        <p:outputLabel value="Valor:" for="valor"/>
        <p:inputText id="valor" 
                     value="#{vendaControle.maoDeObra.valor}">
            <f:convertNumber minFractionDigits="2"
                             maxFractionDigits="2"/>
        </p:inputText>

        <p:commandButton value="Adicionar"
                         icon=" ui-icon-circle-triangle-s"
                         action="#{vendaControle.addItem2()}"
                         ajax="false"/>

    </p:panelGrid>

    <p:dataTable value="#{vendaControle.venda.maoDeObra}"
                 var="obra"
                 paginator="true" rows="5"
                 rowIndexVar="rowIndex"
                 emptyMessage="Nenhum registro encontrado">

        <p:column headerText="Descrição" width="10%" style="text-align:center">
            <h:outputText value="#{obra.descricao}"/>
        </p:column>

        <p:column headerText="Valor" width="10%" style="text-align:center">
            <h:outputText value="#{obra.valor}">
                <f:convertNumber minFractionDigits="2"
                                 maxFractionDigits="2"
                                 type="currency"
                                 currencySymbol="R$"/>
            </h:outputText>

        </p:column>

        <p:column headerText="Remover" width="20%" style="text-align:center">
            <p:commandButton value="Remover"
                             icon="ui-icon-circle-triangle-n"
                             action="#{vendaControle.removeItem2(obra)}"
                             ajax="false"/>
        </p:column>

    </p:dataTable>

</html>

>> VendaControle.java

package controle;

import converter.ConverterGenerico;
import entidades.ItemVenda;
import entidades.MaoDeObra;
import entidades.Venda;
import facade.VendaFacade;
import java.io.Serializable;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.view.ViewScoped;
import javax.inject.Inject;
import javax.inject.Named;

@Named
@ViewScoped
public class VendaControle implements Serializable {

    private Venda venda;
    @Inject
    private VendaFacade vendaFacade;
    private ConverterGenerico converterGenerico;
    private ItemVenda itemVenda = new ItemVenda();
    private MaoDeObra maoDeObra = new MaoDeObra();

    public void addItem() {
        try {
            venda.addItem(itemVenda);
            itemVenda = new ItemVenda();
        } catch (Exception ex) {
            ex.printStackTrace();
            FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_WARN, ex.getMessage(), "");
            FacesContext.getCurrentInstance().addMessage(null, message);
        }
    }
    
    public void addItem2() {
        try {
            venda.addItem2(maoDeObra);
            maoDeObra = new MaoDeObra();
        } catch (Exception ex) {
            ex.printStackTrace();
            FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_WARN, ex.getMessage(), "");
            FacesContext.getCurrentInstance().addMessage(null, message);
        }
    }

    public void removeItem(ItemVenda i) {
        venda.removeItem(i);
    }
    
    public void removeItem2(MaoDeObra m) {
        venda.removeItem2(m);
    }

    public ConverterGenerico converter() {
        if (converterGenerico == null) {
            converterGenerico = new ConverterGenerico(vendaFacade);
        }
        return converterGenerico;
    }

    public void novo() {
        venda = new Venda();
        itemVenda = new ItemVenda();
        maoDeObra = new MaoDeObra();
    }

    public String salvar() {
        try {
            venda.validar();
            venda.movimenta();
            vendaFacade.salvar(venda);
            return "list?faces-redirect=true";
        } catch (Exception ex) {
            FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, ex.getMessage(), "");
            FacesContext.getCurrentInstance().addMessage(null, message);
        }
        return null;
    }

    public String excluir(Venda v) {
        vendaFacade.excluir(v);
        return "list?faces-redirect=true";
    }

    public List<Venda> getListagem() {
        return vendaFacade.listar();
    }

    public Venda getVenda() {
        return venda;
    }

    public void setVenda(Venda venda) {
        this.venda = venda;
    }

    public ItemVenda getItemVenda() {
        return itemVenda;
    }

    public void setItemVenda(ItemVenda itemVenda) {
        this.itemVenda = itemVenda;
    }

    public MaoDeObra getMaoDeObra() {
        return maoDeObra;
    }

    public void setMaoDeObra(MaoDeObra maoDeObra) {
        this.maoDeObra = maoDeObra;
    }

}

Mensagens: 2

Participantes: 1

Ler tópico completo


Viewing all articles
Browse latest Browse all 33093


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>