selectOneMenu preenche selectOneMenu

0 respostas
java
Ivelton_Soares

Pessoal,

Estou utilizando JPA e tenho 3 selectOneMenu, e quero preencher a 2 de acordo com o valor selecionado na 1 e a 3 de acordo com os valores selecionados na 1 e na 2.
Acontece que quandi seleciono a 1 a 2 é oreenchida com todos valores e não filtra a condição da 1.

<p:outputLabel for=“nivel1” value=“Nível 1:” />

<p:selectOneMenu id=“nivel1” value="#{dtRelatoriosAvlMB.nivel1}“

style=“width:50px”>

<f:selectItem itemLabel=“N 1” itemValue=”“

noSelectionOption=“true” />

<f:selectItems value=”#{dtRelatoriosAvlMB.listaNvl1}" var=“ln1"

itemLabel=”#{ln1.CD_TIP_EVT_PDA_NVL1}“

itemValue=”#{ln1.CD_TIP_EVT_PDA_NVL1}" />

<p:ajax event=“change"

listener=”#{dtRelatoriosAvlMB.acaoComboNivel1}“

update=”:form:nivel2" />

</p:selectOneMenu>
<p:outputLabel for="nivel2" value="Nível 2:" />
                <p:selectOneMenu id="nivel2" value="#{dtRelatoriosAvlMB.nivel2}"
                    style="width:50px">
                    <f:selectItem itemLabel="N 1" itemValue=""
                        noSelectionOption="true" />
                    <f:selectItems value="#{dtRelatoriosAvlMB.listaNvl2}" var="ln2"
                        itemLabel="#{ln2.CD_TIP_EVT_PDA_NVL2}"
                        itemValue="#{ln2.CD_TIP_EVT_PDA_NVL2}" />
                    <p:ajax event="change"
                        listener="#{dtRelatoriosAvlMB.acaoComboNivel2}"
                        update=":form:nivel3" />
                </p:selectOneMenu>

                <p:outputLabel for="nivel3" value="Nível 3:" />
                <p:selectOneMenu id="nivel3" value="#{dtRelatoriosAvlMB.nivel3}"
                    style="width:50px">
                    <f:selectItem itemLabel="N 3" itemValue=""
                        noSelectionOption="true" />
                    <f:selectItems value="#{rdtRelatoriosAvlMB.listaNvl3}" var="ln3"
                        itemLabel="#{ln3.CD_TIP_EVT_PDA_NVL3}"
                        itemValue="#{ln3.CD_TIP_EVT_PDA_NVL3}" />

                </p:selectOneMenu>
public class RelatoriosAvlMB extends AbstractMB implements Serializable {

/**

*

*/

private static final long serialVersionUID = 1L;
private List<RelatoriosAvl> lista;
private List<RelatoriosAvl> listaFiltrada;
private List<RelatoriosAvl> listaNvl1;
private List<RelatoriosAvl> listaNvl2;
private List<RelatoriosAvl> listaNvl3;

private Integer nivel1;
private Integer nivel2;
private Integer nivel3;

// Acção da combo nivel1
public void acaoComboNivel1() {
    if (nivel1 != null) {
        System.out.println("nivel1 não está nulo: "+nivel1);
        atualizarListaNivel2(nivel1);
    }else{
        System.out.println("nivel1 está nulo: "+nivel1);
    }
}

// Acção da combo nivel2
public void acaoComboNivel2() {
    if (nivel1 != null) {
        System.out.println("nivel2 não está nulo: " +nivel1+ " - " + nivel2);
        atualizarListaNivel3(nivel1, nivel2, null);
    }else{
        System.out.println("nivel2 está nulo: "+nivel1+ " - " + nivel2);
    }
}

// Atualiza lista
public void atualizarLista() {
    lista = new RelatoriosAvlFacade().buscarRelatoriosAvl();
}

// Atualiza lista nível 1
public void atualizarListaNivel1() {
    listaNvl1 = new RelatoriosAvlFacade().buscarRelatoriosAvlNivel1();
}

// Atualiza lista nível 2
public void atualizarListaNivel2(Integer nivel1) {
    listaNvl2 = new RelatoriosAvlFacade().buscarRelatoriosAvlNivel2(nivel1);
}

// Atualiza lista nível 3
public void atualizarListaNivel3(Integer nivel1, Integer nivel2,
        Integer nivel3) {
    System.out.println("variávesi chegaram: "+nivel1+ " - " + nivel2);
    listaNvl3 = new RelatoriosAvlFacade().buscarRelatoriosAvlNivel3(nivel1,
            nivel2, nivel3);
}

// Atualiza tabela
    public void atualizarTaabelaPosFiltros(Integer nivel1, Integer nivel2,
            Integer nivel3) {
        listaFiltrada = new RelatoriosAvlFacade().buscarRelatoriosAvlFiltros(nivel1, nivel2, nivel3);
    }

// \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\\/
public List<RelatoriosAvl> getLista() {
    if (lista == null) {
        atualizarLista();
    }
    return lista;
}

public void setLista(List<RelatoriosAvl> lista) {
    this.lista = lista;
}

public List<RelatoriosAvl> getListaNvl1() {
    if (listaNvl1 == null) {
        atualizarListaNivel1();
    }
    return listaNvl1;
}

public void setListaNvl1(List<RelatoriosAvl> listaNvl1) {
    this.listaNvl1 = listaNvl1;
}

public List<RelatoriosAvl> getListaNvl2() {
    atualizarListaNivel2(nivel1);
    return listaNvl2;
}

public void setListaNvl2(List<RelatoriosAvl> listaNvl2) {
    this.listaNvl2 = listaNvl2;
}

public List<RelatoriosAvl> getListaNvl3() {
    // if (listaNvl3 == null) {
    // atualizarListaNivel3(nivel1, nivel2, nivel3);
    // }
    atualizarListaNivel3(nivel1, nivel2, nivel3);
    return listaNvl3;
}

public void setListaNvl3(List<RelatoriosAvl> listaNvl3) {
    this.listaNvl3 = listaNvl3;
}

public List<RelatoriosAvl> getListaFiltrada() {
    return listaFiltrada;
}

public void setListaFiltrada(List<RelatoriosAvl> listaFiltrada) {
    this.listaFiltrada = listaFiltrada;
}

public Integer getNivel1() {
    return nivel1;
}

public void setNivel1(Integer nivel1) {
    this.nivel1 = nivel1;
}

public Integer getNivel2() {
    return nivel2;
}

public void setNivel2(Integer nivel2) {
    this.nivel2 = nivel2;
}

public Integer getNivel3() {
    return nivel3;
}

public void setNivel3(Integer nivel3) {
    this.nivel3 = nivel3;
}

public static long getSerialversionuid() {
    return serialVersionUID;
}

}

@SuppressWarnings(“unchecked”)
public List buscarRelatoriosAvlNivel2(Integer nivel1) {

session.beginTransaction();
    Criteria c = getSession().createCriteria(RelatoriosAvl.class);

    if (nivel1 != null)
        c.add(Restrictions.ge("CD_TIP_EVT_PDA_NVL1", nivel1));

    ProjectionList list = Projections.projectionList();
    list.add(Projections.groupProperty("CD_TIP_EVT_PDA_NVL2"),
            "CD_TIP_EVT_PDA_NVL2");
    c.setProjection(list);
    c.setResultTransformer(Transformers.aliasToBean(RelatoriosAvl.class));
    c.addOrder(Order.asc("CD_TIP_EVT_PDA_NVL2"));
    return c.list();
}

@SuppressWarnings("unchecked")
public List<RelatoriosAvl> buscarRelatoriosAvlNivel3(Integer nivel1,
        Integer nivel2) {
    
    session.beginTransaction();
    Criteria c = getSession().createCriteria(RelatoriosAvl.class);

    if (nivel1 != null)
        c.add(Restrictions.ge("CD_TIP_EVT_PDA_NVL1", nivel1));
    if (nivel2 != null)
        c.add(Restrictions.ge("CD_TIP_EVT_PDA_NVL2", nivel2));
    
    ProjectionList list = Projections.projectionList();
    list.add(Projections.groupProperty("CD_TIP_EVT_PDA_NVL3"),
            "CD_TIP_EVT_PDA_NVL3");
    c.setProjection(list);
    c.setResultTransformer(Transformers.aliasToBean(RelatoriosAvl.class));
    c.addOrder(Order.asc("CD_TIP_EVT_PDA_NVL3"));
    return c.list();
}
Criado 24 de maio de 2016
Respostas 0
Participantes 1