Fórum Problema com selectManyCheckBox do JSF #499923
02/11/2014
0
Segue minha pagina jsf:
<h:form class="form-inline">
<div>
<div class="form-group">
<h4>Curso:</h4>
<h:selectOneMenu class="form-control" value="#{controleSimuladoBean.curso}" style="width: 225px;" converter="entityConverter">
<f:selectItems var="cursos" value="#{controleCursoBean.cursos}" itemValue="#" itemLabel="#{cursos.descricao}">
</f:selectItems>
<f:ajax event="change" render="listaDeDisciplina" listener="#{controleDisciplinaBean.listarDisciplinasDoCurso(controleSimuladoBean.curso)}" />
</h:selectOneMenu>
</div>
<div class="form-group">
<h4>Disciplina:</h4>
<h:selectManyCheckbox class="form-control" id="listaDeDisciplina" value="#{controleSimuladoBean.disciplinasChecked}" layout="lineDirection" converter="entityConverter">
<f:selectItems var="disciplina" value="#{controleDisciplinaBean.disciplinasCursoEscolhido}" itemValue="#" itemLabel="#{disciplina.nome}">
</f:selectItems>
</h:selectManyCheckbox>
</div>
<div class="form-group" style="margin: 10px;">
<h4>Nível:</h4>
<h:selectOneMenu class="form-control" id="nivelQuestao" value="#{controleSimuladoBean.nivel.valor}">
<f:selectItem itemValue="#" itemLabel="Selecione" />
<f:selectItem itemValue="1" itemLabel="Fácil" />
<f:selectItem itemValue="2" itemLabel="Média" />
<f:selectItem itemValue="3" itemLabel="Difícil" />
</h:selectOneMenu>
</div>
<div class="form-group" style="margin: 5px;">
<h4>Quantidade:</h4>
<h:inputText id="qtdQuestoes" class="form-control" p:placeholder="" style="width: 104px;" value="#{controleSimuladoBean.quantidade}" />
</div>
<div class="form-group" style="margin: 5px;">
<h4>Tipo da listagem:</h4>
<h:selectOneMenu class="form-control" id="tipoListagem" value="#{controleSimuladoBean.modoListagem}" style="width: 150px;">
<f:selectItem itemValue="#" itemLabel="Selecione" />
<f:selectItem itemValue="normal" itemLabel="Normal" />
<f:selectItem itemValue="aleatorio" itemLabel="Aleatório" />
</h:selectOneMenu>
<h:commandButton type="submit" class="btn btn-success" id="btnGerar" value="Gerar" actionListener="#{controleSimuladoBean.setarListagem(
controleSimuladoBean.modoListagem,
controleSimuladoBean.nivel.valor,
controleSimuladoBean.quantidade)}">
</h:commandButton>
</div>
</div>
</h:form>
Meu MB - SimuladoBean
package controle;
import facade.FacadeQuestao;
import facade.FacadeSimulado;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import util.HttpUtil;
import entities.Curso;
import entities.Disciplina;
import entities.enums.Nivel;
import entities.Questao;
import entities.Simulado;
import entities.Usuario;
import entities.enums.Status;
@ManagedBean(name = "controleSimuladoBean")
@ViewScoped
public class ControleSimuladoBean implements Serializable {
private FacadeSimulado facadeSimulado;
private FacadeQuestao facadeQuestao;
private Simulado simulado;
private Simulado simuladoSelecionado;
private Curso curso;
private Disciplina disciplina;
private List <Disciplina> disciplinasChecked = new ArrayList();
private Nivel nivel;
private Status status;
private List <Questao> questoes = new ArrayList();
private List <Simulado> simuladosCursoEscolhido;
private Map <Long, Boolean> checked = new HashMap();
private Long idUrlParametro;
private int quantidade;
private String modoListagem;
@PostConstruct
private void init() {
facadeSimulado = new FacadeSimulado();
facadeQuestao = new FacadeQuestao();
simulado = new Simulado();
simuladoSelecionado = new Simulado();
disciplina = new Disciplina();
curso = new Curso();
nivel = new Nivel();
status = new Status();
simuladosCursoEscolhido = new ArrayList();
}
public Simulado getSimulado() {
return simulado;
}
public void setSimulado(Simulado simulado) {
this.simulado = simulado;
}
public Simulado getSimuladoSelecionado() {
return simuladoSelecionado;
}
public void setSimuladoSelecionado(Simulado simuladoSelecionado) {
this.simuladoSelecionado = simuladoSelecionado;
}
public List <Questao> getQuestoes() {
return questoes;
}
public Disciplina getDisciplina() {
return disciplina;
}
public void setDisciplina(Disciplina disciplina) {
this.disciplina = disciplina;
}
public Curso getCurso() {
return curso;
}
public void setCurso(Curso curso) {
this.curso = curso;
}
public Nivel getNivel() {
return nivel;
}
public void setNivel(Nivel nivel) {
this.nivel = nivel;
}
public Status getStatus() {
return status;
}
public void setStatus(Status status) {
this.status = status;
}
public List <Simulado> getSimuladosCursoEscolhido() {
return simuladosCursoEscolhido;
}
public void setSimuladosCursoEscolhido(List <Simulado> simuladosCursoEscolhido) {
this.simuladosCursoEscolhido = simuladosCursoEscolhido;
}
public Map <Long,Boolean> getChecked() {
return checked;
}
public void setChecked(Map <Long,Boolean> checked) {
this.checked = checked;
}
public List < Disciplina > getDisciplinasChecked() {
return disciplinasChecked;
}
public void setDisciplinasChecked(List <Disciplina> disciplinasChecked) {
this.disciplinasChecked = disciplinasChecked;
}
public Long getIdUrlParametro() {
return idUrlParametro;
}
public void setIdUrlParametro(Long idUrlParametro) {
this.idUrlParametro = idUrlParametro;
}
public int getQuantidade() {
return quantidade;
}
public void setQuantidade(int quantidade) {
this.quantidade = quantidade;
}
public String getModoListagem() {
return modoListagem;
}
public void setModoListagem(String modoListagem) {
this.modoListagem = modoListagem;
}
public void gerarSimulado(Curso curso, Usuario usuario) {
facadeSimulado.gerarSimulado(curso, usuario);
}
public void setarListagem(String modo, int nivel, int quantidade) {
System.out.println("Modo: " + modo + " id Nivel: " + nivel + " Quantidade: " + quantidade);
questoes = facadeQuestao.gerarQuestoes(modo, this.disciplinasChecked, nivel, quantidade);
}
Dai por exemplo: Eu escolho o curso "sistemas de informação", ai vai aparecer as disciplinas : "Banco de dados" , "Lógica de Programação","Engenharia de Software" e "Administração de Banco de dados", com os seus devidos checkBox, digamos que eu marque os checks de "Lógica de Programação" e "Engenharia de Software" e clico no botão "Gerar" para que seja listada as questões referentes as 2 disciplinas que eu escolhi. Ok, ele renderiza o dataTable e mostra as questões!
O problema é que ao renderizar e listar as questões, ele do nada marca os checkboxs das outras disciplinas, ou seja, ele volta com os 4 checks marcados(mas eu só escolhi 2).. não sei oq está causando isso.
Alguem poderia me ajudar? Obrigado!
Thyago Henrique
Curtir tópico
+ 0Post mais votado
05/11/2014
public void setarListagem(String modo, int nivel, int quantidade) {
System.out.println("Modo: " + modo + " id Nivel: " + nivel + " Quantidade: " + quantidade);
questoes = facadeQuestao.gerarQuestoes(modo, this.disciplinasChecked, nivel, quantidade);
disciplinasChecked.clear();
}
Ronaldo Lanhellas
Gostei + 1
Mais Posts
05/11/2014
Thyago Henrique
Gostei + 0
07/11/2014
Ronaldo Lanhellas
Disponha.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)