JonathanSSantos:
Kleber-rr:
Mano, no lugar de:
public void changeComboBoxTwo(Event e){
Não deveria ser?
public void changeComboBoxTwo(ValueChangeListener e){
Quanto à lógica, eu vou quebrar a cabeça aqui.... rsrsrsrs
Sei que não é dificil, só não sei ainda como fazer!!! huahaaua
Valeu man!! Abs.
Nao me lembro qual que e'...
mais e' event.. e nao e' valueChangeListener...
e quanto a logica ela ja ta feita no codigo la emcima...
tu soh vai ter que pegar por um metodo do teu dao.. os valores da comboboxtwo pelo teu valor da comboboxone
Eh soh um metodo no banco que faca isso!!
Entendeu?!
Esse é uma outra dificuldade que eu tenho... eu tenho q criar um método no meu Dao para cada opção que eu quero?? por exemplo, eu tenho q criar uma criteria se eu quiser uma lista das cidades do estado SP, outra para a lista das cidades do RJ, e assim por diante??
Mano, vou abusar um pouco da tua boa vontade, e vou colocar os codigos do meu dao e do meu bean pra ver se facilita a sua ajuda.... Desculpa incomodar...
public class UnidadeDao extends Dao<Unidade> {
private Logger logger = Logger.getLogger(UnidadeDao.class);
public UnidadeDao(Session session, Class<?> classe) {
super(session, Unidade.class);
}
public Unidade pesquisaUnidadeById(Long cod_unidadeexecutora) {
logger.info("pesquisaUnidadeById : " + cod_unidadeexecutora);
return (Unidade) session.load(Unidade.class, cod_unidadeexecutora);
}
public Unidade pesquisaUnidadeByNome(String nome) {
logger.info("pesquisaUnidadeByNome : " + nome);
Criteria c = session.createCriteria(Unidade.class);
c.add(Restrictions.ilike("nome", nome + "%"));
c.addOrder(Order.asc("nome"));
return (Unidade) c.uniqueResult();
}
public List<String> findByNameSuggest(String busca) {
logger.info("findByNameSuggest : " + busca);
Criteria c = session.createCriteria(Unidade.class);
c.add(Restrictions.ilike("nome", busca + "%"));
c.addOrder(Order.asc("nome"));
c.setProjection(Projections.property("nome"));
return c.list();
}
@SuppressWarnings("unchecked")
public List<Unidade> pesquisaUnidades(String nome) {
Criteria c = session.createCriteria(Unidade.class);
c.add(Restrictions.ilike("nome", "%" + nome + "%"));
return c.list();
}
@SuppressWarnings("unchecked")
public List<Unidade> pesquisaServicosByPSB2(String nome) {
return this.session.createCriteria(Servico.class).createCriteria("PSB")
.add(Restrictions.ilike("nome", nome, MatchMode.ANYWHERE))
.addOrder(Order.asc("PSB")).list();
}
@SuppressWarnings("unchecked")
public List<Unidade> pesquisaServicosByPSB(String nome) {
if (nome == null || nome.equalsIgnoreCase("PSB"))
return (List<Unidade>) this.session.createCriteria(Unidade.class)
.list();
return (List<Unidade>) this.session.createCriteria(Servico.class).add(
Restrictions.ilike("nome", "%" + nome + "%")).list();
}
}
public class UnidadeHandler {
private Unidade unidade = new Unidade();
private Long id;
// INICIO DOS MÉTODOS HTMLSELECT
// ===============================================
// select para usuarioGestor
private HtmlSelectOneMenu usuarioSelecionado;
public HtmlSelectOneMenu getusuarioSelecionado() {
return usuarioSelecionado;
}
public void setusuarioSelecionado(HtmlSelectOneMenu usuarioSelecionado) {
this.usuarioSelecionado = usuarioSelecionado;
}
// select para programa
private HtmlSelectOneMenu programaSelecionado;
public HtmlSelectOneMenu getprogramaSelecionado() {
return programaSelecionado;
}
public void setprogramaSelecionado(HtmlSelectOneMenu programaSelecionado) {
this.programaSelecionado = programaSelecionado;
}
// select para servico - MUDAR MÉTODO PARA MANY
private HtmlSelectOneMenu servicoSelecionado;
public HtmlSelectOneMenu getservicoSelecionado() {
return servicoSelecionado;
}
public void setservicoSelecionado(HtmlSelectOneMenu servicoSelecionado) {
this.servicoSelecionado = servicoSelecionado;
}
// select para modalidade - MUDAR MÉTODO PARA MANY
private HtmlSelectOneMenu modalidadeSelecionado;
public HtmlSelectOneMenu getmodalidadeSelecionado() {
return modalidadeSelecionado;
}
public void setmodalidadeSelecionado(HtmlSelectOneMenu modalidadeSelecionado) {
this.modalidadeSelecionado = modalidadeSelecionado;
}
// select para internet
private HtmlSelectOneMenu internetSelecionado;
public HtmlSelectOneMenu getinternetSelecionado() {
return internetSelecionado;
}
public void setinternetSelecionado(HtmlSelectOneMenu internetSelecionado) {
this.internetSelecionado = internetSelecionado;
}
// select para orgaogestor
private HtmlSelectOneMenu orgaogestorSelecionado;
public HtmlSelectOneMenu getorgaogestorSelecionado() {
return orgaogestorSelecionado;
}
public void setorgaogestorSelecionado(
HtmlSelectOneMenu orgaogestorSelecionado) {
this.orgaogestorSelecionado = orgaogestorSelecionado;
}
// select para municipiosrr
private HtmlSelectOneMenu municipiosrrSelecionado;
public HtmlSelectOneMenu getmunicipiosrrSelecionado() {
return municipiosrrSelecionado;
}
public void setmunicipiosrrSelecionado(
HtmlSelectOneMenu municipiosrrSelecionado) {
this.municipiosrrSelecionado = municipiosrrSelecionado;
}
// FIM DOS MÉTODOS SELECT ===============================================
// Fazer os getters e os setters da variavel
public Unidade getUnidade() {
return unidade;
}
public void setUnidade(Unidade unidade) {
this.unidade = unidade;
}
// lista de orgaos gestores
public List<Unidade> getUnidadesExecutoras() {
System.out.println("Carregando a lista de unidades executoras ...");
Session session = HibernateUtil.currentSession();
Dao<Unidade> ueDao = new Dao<Unidade>(session, Unidade.class);
return ueDao.list();
}
// INICIO DOS METODOS SELECT PEGA E DAS LISTAS==============
// select para ModalidadeHandler
private ModalidadeHandler pegaModalidadeHandler() {
FacesContext facesContext = FacesContext.getCurrentInstance();
ELContext elContext = facesContext.getELContext();
ELResolver resolver = facesContext.getApplication().getELResolver();
Object m = resolver.getValue(elContext, null, "modalidadeHandler");
return (ModalidadeHandler) m;
}
public List<SelectItem> getModalidadeParaComboBox() {
List<SelectItem> lista = new ArrayList<SelectItem>();
// usaremos o id como valor e o nome como label para os SelectItem.
ModalidadeHandler handler = pegaModalidadeHandler();
for (ModalidadeInstitucional m : handler.getModalidades()) {
lista.add(new SelectItem(m.getCod_modalidade(), m.getNome()));
}
return lista;
}
// select para UsuarioHandler
private UsuarioHandler pegaUsuarioHandler() {
FacesContext facesContext = FacesContext.getCurrentInstance();
ELContext elContext = facesContext.getELContext();
ELResolver resolver = facesContext.getApplication().getELResolver();
Object u = resolver.getValue(elContext, null, "usuarioHandler");
return (UsuarioHandler) u;
}
public List<SelectItem> getUsuarioParaComboBox() {
List<SelectItem> lista = new ArrayList<SelectItem>();
// usaremos o id como valor e o nome como label para os SelectItem.
UsuarioHandler handler = pegaUsuarioHandler();
for (Usuario u : handler.getUsuarios()) {
lista.add(new SelectItem(u.getCod_usuario(), u.getNome()));
}
return lista;
}
// select para programaHandler
private ProgramaHandler pegaProgramaHandler() {
FacesContext facesContext = FacesContext.getCurrentInstance();
ELContext elContext = facesContext.getELContext();
ELResolver resolver = facesContext.getApplication().getELResolver();
Object p = resolver.getValue(elContext, null, "programaHandler");
return (ProgramaHandler) p;
}
public List<SelectItem> getProgramaParaComboBox() {
List<SelectItem> lista = new ArrayList<SelectItem>();
// usaremos o id como valor e o nome como label para os SelectItem.
ProgramaHandler handler = pegaProgramaHandler();
for (Programa p : handler.getProgramas()) {
lista.add(new SelectItem(p.getCod_programa(), p.getNome()));
}
return lista;
}
// select para servicoHandler
private ServicoHandler pegaServicoHandler() {
FacesContext facesContext = FacesContext.getCurrentInstance();
ELContext elContext = facesContext.getELContext();
ELResolver resolver = facesContext.getApplication().getELResolver();
Object s = resolver.getValue(elContext, null, "servicoHandler");
return (ServicoHandler) s;
}
public List<SelectItem> getServicoParaComboBox() {
List<SelectItem> lista = new ArrayList<SelectItem>();
// usaremos o id como valor e o nome como label para os SelectItem.
ServicoHandler handler = pegaServicoHandler();
for (Servico s : handler.getServicos()) {
lista.add(new SelectItem(s.getCod_servico(), s.getNome()));
}
return lista;
}
// AQUI EU CRIO O MÉTODO ============================== JONATHAN, AJUDA AQUI!!!!!!!! RSRRSS
public void alteraCampoPSB(ValueChangeListener event) {
if (event.toString().contains("PSB")) {// EU TENHO Q FAZER UM IF PARA CADA VALOR DO COMBOBOX ANTERIOR??????
}
}
// select para orgaogestorHandler
private OrgaoGestorHandler pegaOrgaoGestorHandler() {
FacesContext facesContext = FacesContext.getCurrentInstance();
ELContext elContext = facesContext.getELContext();
ELResolver resolver = facesContext.getApplication().getELResolver();
Object og = resolver.getValue(elContext, null, "orgaogestorHandler");
return (OrgaoGestorHandler) og;
}
public List<SelectItem> getOrgaoGestorParaComboBox() {
List<SelectItem> lista = new ArrayList<SelectItem>();
// usaremos o id como valor e o nome como label para os SelectItem.
OrgaoGestorHandler handler = pegaOrgaoGestorHandler();
for (OrgaoGestor og : handler.getOrgaosGestores()) {
lista.add(new SelectItem(og.getCod_orgaogestor(), og.getNome()));
}
return lista;
}
// select para municipiosrrHandler
private MunicipiosRRHandler pegaMunicipiosRRHandler() {
FacesContext facesContext = FacesContext.getCurrentInstance();
ELContext elContext = facesContext.getELContext();
ELResolver resolver = facesContext.getApplication().getELResolver();
Object m = resolver.getValue(elContext, null, "municipiosRRHandler");
return (MunicipiosRRHandler) m;
}
public List<SelectItem> getMunicipiosRRParaComboBox() {
List<SelectItem> lista = new ArrayList<SelectItem>();
// usaremos o id como valor e o nome como label para os SelectItem.
MunicipiosRRHandler handler = pegaMunicipiosRRHandler();
for (MunicipiosRR m : handler.getListaMunicipiosRR()) {
lista
.add(new SelectItem(m.getCod_municipiosrr(), m
.getMunicipios()));
}
return lista;
}
// select para internethandler
private InternetHandler pegaInternetHandler() {
FacesContext facesContext = FacesContext.getCurrentInstance();
ELContext elContext = facesContext.getELContext();
ELResolver resolver = facesContext.getApplication().getELResolver();
Object i = resolver.getValue(elContext, null, "internetHandler");
return (InternetHandler) i;
}
public List<SelectItem> getInternetParaComboBox() {
List<SelectItem> lista = new ArrayList<SelectItem>();
// usaremos o id como valor e o nome como label para os SelectItem.
InternetHandler handler = pegaInternetHandler();
for (Internet i : handler.getListaInternet()) {
lista.add(new SelectItem(i.getCod_internet(), i.getTipo()));
}
return lista;
}
public long foo(String x) throws NumberFormatException {
return (Long.parseLong(x));
}
public void bar() throws NumberFormatException {
try {
long a = this.foo("x"); // Chama o método foo() que declara lançar
System.out.println("String convertida em int é: " + a); // Este
} catch (NumberFormatException e) { // Este catch captura a exceção.
throw new NumberFormatException(); // Mas aqui dentro ele resolve
}
}
public String salva() {
System.out.println("Adicionando: " + unidade.getNome());
Session session = HibernateUtil.currentSession();
Dao<Unidade> ueDao = new Dao<Unidade>(session, Unidade.class);
Dao<OrgaoGestor> ogDao = new Dao<OrgaoGestor>(session,
OrgaoGestor.class);
Dao<MunicipiosRR> municipiosrrDao = new Dao<MunicipiosRR>(session,
MunicipiosRR.class);
Dao<Internet> internetDao = new Dao<Internet>(session, Internet.class);
Dao<Usuario> usuarioDao = new Dao<Usuario>(session, Usuario.class);
Dao<ModalidadeInstitucional> modalidadeDao = new Dao<ModalidadeInstitucional>(
session, ModalidadeInstitucional.class);
// modalidade
Long id_modalidade = Long.valueOf(modalidadeSelecionado.getValue()
.toString());
ModalidadeInstitucional mi = modalidadeDao.load(id_modalidade);
unidade.setModalidadeinstitucional_cod_modalidade(id_modalidade);
// usuario
Long id_usuario = Long
.valueOf(usuarioSelecionado.getValue().toString());
Usuario u = usuarioDao.load(id_usuario);
unidade.setUsuario_cod_usuario(id_usuario);
// orgaogestor
Long id_orgaogestor = Long.valueOf(orgaogestorSelecionado.getValue()
.toString());
OrgaoGestor og = ogDao.load(id_orgaogestor);
unidade.setOrgaogestor_cod_orgaogestor(id_orgaogestor);
// municipios
Long id_municipios = Long.valueOf(municipiosrrSelecionado.getValue()
.toString());
MunicipiosRR m = municipiosrrDao.load(id_municipios);
unidade.setMunicipiosrr_cod_municipiosrr(id_municipios);
// internet
Long id_internet = Long.valueOf(internetSelecionado.getValue()
.toString());
Internet i = internetDao.load(id_internet);
unidade.setInternet_cod_internet(id_internet);
ueDao.merge(this.unidade);
this.unidade = new Unidade();
return "sucesso";
}
public String excluir(ActionEvent event) {
System.out.println("Excluindo: " + unidade.getCod_unidade());
UIComponent link = event.getComponent();
UIParameter param = (UIParameter) link.findComponent("excluir");
Long id = (Long) param.getValue();
Session session = HibernateUtil.currentSession();
Dao<Unidade> ueDao = new Dao<Unidade>(session, Unidade.class);
this.unidade = ueDao.load(id);
ueDao.delete(this.unidade);
this.unidade = new Unidade();
return "excluido";
}
public String load() {
Session session = HibernateUtil.currentSession();
Dao<Unidade> unidadeDao = new Dao<Unidade>(session, Unidade.class);
this.unidade = unidadeDao.load(this.id);
return "pesquisaSucesso";
}
public List<Unidade> getListaUnidades() {
Session session = HibernateUtil.currentSession();
UnidadeDao unidadeDao = new UnidadeDao(session, Unidade.class);
return unidadeDao.list();
}
public List<Unidade> getUnidadesByNome() {
Session session = HibernateUtil.currentSession();
UnidadeDao unidadeDao = new UnidadeDao(session, Unidade.class);
List<Unidade> lista = unidadeDao.pesquisaUnidades(this.unidade
.getNome());
return lista;
}
public List<Unidade> getServicosByPSB() {
Session session = HibernateUtil.currentSession();
UnidadeDao unidadeDao = new UnidadeDao(session, Servico.class);
List<Unidade> lista = unidadeDao.pesquisaServicosByPSB(this.unidade
.getNome());
return lista;
}
public void escolheUnidade(ActionEvent event) {
UIComponent link = event.getComponent();
UIParameter param = (UIParameter) link.findComponent("editCod");
Long id = (Long) param.getValue();
Session session = HibernateUtil.currentSession();
Dao<Unidade> ueDao = new Dao<Unidade>(session, Unidade.class);
this.unidade = ueDao.load(id);
}
public void validaCase(FacesContext fc, UIComponent component, Object value) {
String valor = value.toString();
if (!valor.matches("[A-Z].*")) {
throw new ValidatorException(new FacesMessage(
"Inicie o nome com letra maiúscula!"));
}
}
}