Problema com selectonemenu dinamico[RESOLVIDO]
<h:selectOneMenu value="#{VendaMain.empresaSelecionada}"
valueChangeListener="#{VendaMain.PreencherClientes}"
converter="ConversorEmpresa"
id="cbxEmpresa">
<f:selectItem itemLabel="Todos" itemValue="#"/>
<f:selectItems value="#{VendaMain.listaEmpresas}"
var="empresas"
itemValue="#"
itemLabel="#{empresas.nome}"/>
<f:ajax render="cbxCliente" event="valueChange"/>
</h:selectOneMenu>
<h:outputLabel value="Clientes :" for="lblCliente" id="lblCliente"/>
<h:selectOneMenu value="#{VendaMain.clienteSelecionado}"
converter="ConversorCliente"
required="true" requiredMessage="Selecione um cliente"
id="cbxCliente">
<f:selectItem itemLabel="Selecione um cliente" itemValue="#"/>
<f:selectItems value="#{VendaMain.listaClientes}"
var="clientes"
itemValue="#"
itemLabel="#{clientes.nome}"/>
</h:selectOneMenu>
<h:message for="lblTelefone" errorStyle="color : red"/>
public void PreencherClientes(ValueChangeEvent event){
this.listaClientes.clear();
Empresa empresa = (Empresa)event.getNewValue();
if (empresa != null){
Cliente condicaoRetorno = new Cliente();
condicaoRetorno.setEmpresa(new Empresa());
condicaoRetorno.setEmpresa(empresa);
try {
this.listaClientes = this.persistenciaCliente.selecionarClientesEmpresas(condicaoRetorno);
} catch (Throwable ex) {
}
}else{
try{
this.listaClientes = this.persistenciaCliente.selecionar();
}catch(Throwable ex){
}
}
}
José Junior
Respostas
Okabe Rintarou
30/05/2013
José Junior
30/05/2013
<h:selectOneMenu value="#{VendaMain.empresaSelecionada}"
converter="ConversorEmpresa"
id="cbxEmpresa">
<f:selectItem itemLabel="Todos" itemValue="#"/>
<f:selectItems value="#{VendaMain.listaEmpresas}"
var="empresas"
itemValue="#"
itemLabel="#{empresas.nome}"/>
<f:ajax render="cbxCliente" event="valueChange" listener="#{VendaMain.PreencherClientes}"/>
</h:selectOneMenu>
<h:outputLabel value="Clientes :" for="lblCliente" id="lblCliente"/>
<h:selectOneMenu value="#{VendaMain.clienteSelecionado}"
converter="ConversorCliente"
required="true" requiredMessage="Selecione um cliente"
id="cbxCliente">
<f:selectItem itemLabel="Selecione um cliente" itemValue="#"/>
<f:selectItems value="#{VendaMain.listaClientes}"
var="clientes"
itemValue="#"
itemLabel="#{clientes.nome}"/>
</h:selectOneMenu>
Okabe Rintarou
30/05/2013
José Junior
30/05/2013
<h:selectOneMenu value="#{VendaMain.empresaSelecionada}"
converter="ConversorEmpresa"
id="cbxEmpresa">
<f:selectItem itemLabel="Todos" itemValue="#"/>
<f:selectItems value="#{VendaMain.listaEmpresas}"
var="empresas"
itemValue="#"
itemLabel="#{empresas.nome}"/>
<f:ajax render="cbxCliente" event="change"/>
</h:selectOneMenu>
<h:outputLabel value="Clientes :" for="lblCliente" id="lblCliente"/>
<h:selectOneMenu value="#{VendaMain.clienteSelecionado}"
converter="ConversorCliente"
required="true" requiredMessage="Selecione um cliente"
id="cbxCliente">
<f:selectItem itemLabel="Selecione um cliente" itemValue="#"/>
<f:selectItems value="#{VendaMain.listaClientes}"
var="clientes"
itemValue="#"
itemLabel="#{clientes.nome}"/>
</h:selectOneMenu>
public Cliente getClienteSelecionado() {
this.listaClientes.clear();
Empresa empresa = this.empresaSelecionada;
if (empresa != null){
Cliente condicaoRetorno = new Cliente();
condicaoRetorno.setEmpresa(new Empresa());
condicaoRetorno.setEmpresa(empresa);
try {
this.listaClientes = this.persistenciaCliente.selecionarClientesEmpresas(condicaoRetorno);
} catch (Throwable ex) {
}
}else{
try{
this.listaClientes = this.persistenciaCliente.selecionar();
}catch(Throwable ex){
}
}
return this.clienteSelecionado;
}
Okabe Rintarou
30/05/2013
José Junior
30/05/2013
<h:outputScript name="espera.js" library="javax.faces" target="head" />
<h:outputLabel value="Empresas :" for="lblEmpresa" id="lblEmpresa"/>
<h:selectOneMenu value="#{VendaMain.empresaSelecionada}"
converter="ConversorEmpresa"
id="cbxEmpresa">
<f:selectItem itemLabel="Todos" itemValue="#"/>
<f:selectItems value="#{VendaMain.listaEmpresas}"
var="empresas"
itemValue="#"
itemLabel="#{empresas.nome}"/>
<f:ajax render="cbxCliente" event="change"/>
</h:selectOneMenu>
<h:outputLabel value="Clientes :" for="lblCliente" id="lblCliente"/>
<h:selectOneMenu value="#{VendaMain.clienteSelecionado}"
converter="ConversorCliente"
required="true" requiredMessage="Selecione um cliente"
id="cbxCliente">
<f:selectItem itemLabel="Selecione um cliente" itemValue="#"/>
<f:selectItems value="#{VendaMain.listaClientes}"
var="clientes"
itemValue="#"
itemLabel="#{clientes.nome}"/>
</h:selectOneMenu>
if (!window["busystatus"]) {
var busystatus = {};
}
busystatus.onStatusChange = function onStatusChange(data) {
var status = data.status;
alert("ajax event triggered");
if (status === "begin") { // turn on busy indicator
element.style.display = "inline";
} else { // turn off busy indicator, on either "complete" or "success"
document.body.style.cursor = 'default';
}
};
jsf.ajax.addOnEvent(busystatus.onStatusChange);
<h:outputScript name="espera.js" library="javax.faces" target="head" />
<h:outputScript name="espera.js" library="js" target="head" />
Okabe Rintarou
30/05/2013
José Junior
30/05/2013
Okabe Rintarou
30/05/2013
José Junior
30/05/2013
Okabe Rintarou
30/05/2013
José Junior
30/05/2013
Okabe Rintarou
30/05/2013
José Junior
30/05/2013
<h:body>
<p:ajaxStatus onstart="statusDialog.show();" onsuccess="statusDialog.hide();"/>
<p:dialog modal="true" widgetVar="statusDialog" header="Carregando ..."
draggable="false" closable="false">
<p:graphicImage name="progressbar.gif" library="icones"/>
</p:dialog>
<h:form id="FormVenda">
<p:panel id="panel">
<h:panelGrid columns="3" cellpadding="5">
<f:metadata>
<f:event type="preRenderView" listener="#{VendaMain.CarregarTela}"/>
</f:metadata>
<h:outputLabel value="Empresas :" for="lblEmpresa" id="lblEmpresa"/>
<p:selectOneMenu value="#{VendaMain.empresaSelecionada}"
converter="ConversorEmpresa"
id="cbxEmpresa">
<f:selectItem itemLabel="Todos" itemValue="#"/>
<f:selectItems value="#{VendaMain.listaEmpresas}"
var="empresas"
itemValue="#"
itemLabel="#{empresas.nome}"/>
<p:ajax process="cbxCliente" event="change" update="panel"/>
</p:selectOneMenu>
<br></br>
<h:outputLabel value="Clientes :" for="lblCliente" id="lblCliente"/>
<p:selectOneMenu value="#{VendaMain.clienteSelecionado}"
converter="ConversorCliente"
required="true" requiredMessage="Selecione um cliente"
id="cbxCliente">
<f:selectItem itemLabel="Selecione um cliente" itemValue="#"/>
<f:selectItems value="#{VendaMain.listaClientes}"
var="clientes"
itemValue="#"
itemLabel="#{clientes.nome}"/>
</p:selectOneMenu>
<p:message for="cbxCliente" />
<p:commandButton value="Vender" action="#{VendaMain.AbrirVenda}"
onclick='javascript:return confirm("Deseja realmente abrir uma nova venda ?");'/>
</h:panelGrid>
</p:panel>
</h:form>
<h:outputLink value="Index.xhtml">Menu principal</h:outputLink>
</h:body>
José Junior
30/05/2013
Okabe Rintarou
30/05/2013
José Junior
30/05/2013
Okabe Rintarou
30/05/2013
José Junior
30/05/2013
Okabe Rintarou
30/05/2013
José Junior
30/05/2013
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.br.Beans;
import com.br.Classes.Cliente;
import com.br.Classes.Empresa;
import com.br.Persistencia.ClienteBD;
import com.br.Persistencia.EmpresaBD;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.enterprise.context.SessionScoped;
import javax.faces.context.FacesContext;
import javax.inject.Named;
import javax.servlet.http.HttpSession;
@Named("VendaMain")
@SessionScoped
public class VendaMainBean implements Serializable{
private Empresa empresaSelecionada;
private Cliente clienteSelecionado = new Cliente();
private List<Empresa> listaEmpresas = new ArrayList<Empresa>();
private List<Cliente> listaClientes = new ArrayList<Cliente>();
private EmpresaBD persistenciaEmpresa = new EmpresaBD();
private ClienteBD persistenciaCliente = new ClienteBD();
public void CarregarTela(){
try{
this.listaEmpresas = persistenciaEmpresa.selecionar();
this.listaClientes = persistenciaCliente.selecionar();
}catch(Throwable ex){
}
}
public Empresa getEmpresaSelecionada() {
return empresaSelecionada;
}
public void setEmpresaSelecionada(Empresa empresaSelecionada) {
this.empresaSelecionada = empresaSelecionada;
}
public Cliente getClienteSelecionado() {
this.listaClientes.clear();
Empresa empresa = this.empresaSelecionada;
if (empresa != null){
Cliente condicaoRetorno = new Cliente();
condicaoRetorno.setEmpresa(new Empresa());
condicaoRetorno.setEmpresa(empresa);
try {
this.listaClientes = this.persistenciaCliente.selecionarClientesEmpresas(condicaoRetorno);
} catch (Throwable ex) {
}
}else{
try{
this.listaClientes = this.persistenciaCliente.selecionar();
}catch(Throwable ex){
}
}
return this.clienteSelecionado;
}
public void setClienteSelecionado(Cliente clienteSelecionado) {
this.clienteSelecionado = clienteSelecionado;
}
public void PreencherClientes(){
}
public List<Empresa> getListaEmpresas() {
return listaEmpresas;
}
public void setListaEmpresas(List<Empresa> listaEmpresas) {
this.listaEmpresas = listaEmpresas;
}
public List<Cliente> getListaClientes() {
return listaClientes;
}
public void setListaClientes(List<Cliente> listaCliente) {
this.listaClientes = listaCliente;
}
public String AbrirVenda(){
HttpSession sessaoVenda = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true);
sessaoVenda.setAttribute("VendaSessao", this.clienteSelecionado);
return "VendaAbrir.xhtml";
}
}
Okabe Rintarou
30/05/2013
José Junior
30/05/2013
Okabe Rintarou
30/05/2013
required="true" requiredMessage="Selecione um cliente"
José Junior
30/05/2013
Okabe Rintarou
30/05/2013
José Junior
30/05/2013
Okabe Rintarou
30/05/2013
José Junior
30/05/2013
Okabe Rintarou
30/05/2013
José Junior
30/05/2013
José Junior
30/05/2013
this.listaClientes.clear();
Empresa empresa = this.empresaSelecionada;
if (empresa != null){
Cliente condicaoRetorno = new Cliente();
condicaoRetorno.setEmpresa(new Empresa());
condicaoRetorno.setEmpresa(empresa);
try {
this.listaClientes = this.persistenciaCliente.selecionarClientesEmpresas(condicaoRetorno);
} catch (Throwable ex) {
}
}else{
try{
this.listaClientes = this.persistenciaCliente.selecionar();
}catch(Throwable ex){
}
}
Okabe Rintarou
30/05/2013
<p:selectOneMenu value="#{VendaMain.empresaSelecionada}"
converter="ConversorEmpresa"
id="cbxEmpresa">
<f:selectItem itemLabel="Todos" itemValue="#"/>
<f:selectItems value="#{VendaMain.listaEmpresas}"
var="empresas"
itemValue="#"
itemLabel="#{empresas.nome}"/>
<p:ajax process="cbxCliente" event="change" update="panel"/>
</p:selectOneMenu>
José Junior
30/05/2013
Okabe Rintarou
30/05/2013
José Junior
30/05/2013
public void setCbxEmpresa(HtmlSelectOneMenu cbxEmpresa) {
this.cbxEmpresa = cbxEmpresa;
this.listaClientes.clear();
Empresa empresa = ((Empresa) cbxEmpresa.getValue());
if (empresa != null){
Cliente condicaoRetorno = new Cliente();
condicaoRetorno.setEmpresa(new Empresa());
condicaoRetorno.setEmpresa(empresa);
try {
this.listaClientes = this.persistenciaCliente.selecionarClientesEmpresas(condicaoRetorno);
} catch (Throwable ex) {
}
}else{
try{
this.listaClientes = this.persistenciaCliente.selecionar();
}catch(Throwable ex){
}
}
}
Okabe Rintarou
30/05/2013
public void setCbxEmpresa(HtmlSelectOneMenu cbxEmpresa) {
this.cbxEmpresa = cbxEmpresa;
this.listaClientes.clear();
Empresa empresa = ((Empresa) cbxEmpresa.getValue());
if (empresa != null){
Cliente condicaoRetorno = new Cliente();
condicaoRetorno.setEmpresa(new Empresa());
condicaoRetorno.setEmpresa(empresa);
try {
this.listaClientes = this.persistenciaCliente.selecionarClientesEmpresas(condicaoRetorno);
} catch (Throwable ex) {
}
}else{
try{
this.listaClientes = this.persistenciaCliente.selecionar();
}catch(Throwable ex){
}
}
}
José Junior
30/05/2013
<f:metadata>
<f:event type="preRenderView" listener="#{VendaMain.CarregarTela}"/>
</f:metadata>
public void CarregarTela(){
try{
this.listaEmpresas = persistenciaEmpresa.selecionar();
this.listaClientes = persistenciaCliente.selecionar();
}catch(Throwable ex){
}
}
Okabe Rintarou
30/05/2013
<f:metadata>
<f:event type="preRenderView" listener="#{VendaMain.CarregarTela}"/>
</f:metadata>
public void CarregarTela(){
try{
this.listaEmpresas = persistenciaEmpresa.selecionar();
this.listaClientes = persistenciaCliente.selecionar();
}catch(Throwable ex){
}
}
José Junior
30/05/2013
Okabe Rintarou
30/05/2013
José Junior
30/05/2013
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.br.Beans;
import com.br.Classes.Cliente;
import com.br.Classes.Empresa;
import com.br.Persistencia.ClienteBD;
import com.br.Persistencia.EmpresaBD;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.enterprise.context.SessionScoped;
import javax.faces.application.FacesMessage;
import javax.faces.component.html.HtmlSelectOneMenu;
import javax.faces.context.FacesContext;
import javax.inject.Named;
import javax.servlet.http.HttpSession;
@Named("VendaMain")
@SessionScoped
public class VendaMainBean implements Serializable{
private Empresa empresaSelecionada;
private Cliente clienteSelecionado = new Cliente();
private List<Empresa> listaEmpresas = new ArrayList<Empresa>();
private List<Cliente> listaClientes = new ArrayList<Cliente>();
private EmpresaBD persistenciaEmpresa = new EmpresaBD();
private ClienteBD persistenciaCliente = new ClienteBD();
private HtmlSelectOneMenu cbxEmpresa;
public void CarregarTela(){
try{
this.listaEmpresas = persistenciaEmpresa.selecionar();
this.listaClientes = persistenciaCliente.selecionar();
}catch(Throwable ex){
}
}
public void PegarClientes (){
this.listaClientes.clear();
if (this.empresaSelecionada != null){
Cliente condicaoRetorno = new Cliente();
condicaoRetorno.setEmpresa(new Empresa());
condicaoRetorno.setEmpresa(this.empresaSelecionada);
try {
this.listaClientes = this.persistenciaCliente.selecionarClientesEmpresas(condicaoRetorno);
} catch (Throwable ex) {
}
}else{
try{
this.listaClientes = this.persistenciaCliente.selecionar();
}catch(Throwable ex){
}
}
}
public Empresa getEmpresaSelecionada() {
return empresaSelecionada;
}
public void setEmpresaSelecionada(Empresa empresaSelecionada) {
this.empresaSelecionada = empresaSelecionada;
}
public Cliente getClienteSelecionado() {
return this.clienteSelecionado;
}
public void setClienteSelecionado(Cliente clienteSelecionado) {
this.clienteSelecionado = clienteSelecionado;
}
public void PreencherClientes(){
}
public List<Empresa> getListaEmpresas() {
return listaEmpresas;
}
public void setListaEmpresas(List<Empresa> listaEmpresas) {
this.listaEmpresas = listaEmpresas;
}
public List<Cliente> getListaClientes() {
return listaClientes;
}
public void setListaClientes(List<Cliente> listaCliente) {
this.listaClientes = listaCliente;
}
public String AbrirVenda(){
String retorno;
if (this.clienteSelecionado == null){
retorno = "";
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Selecione um cliente", "" );
FacesContext.getCurrentInstance().addMessage(null, message);
}else{
HttpSession sessaoVenda = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true);
sessaoVenda.setAttribute("VendaSessao", this.clienteSelecionado);
retorno = "VendaAbrir.xhtml";
}
return retorno;
}
}
Okabe Rintarou
30/05/2013
public static boolean hasRequestParameter() {
return FacesContext.getCurrentInstance().getExternalContext().getRequestParameterNames().hasNext();
}
José Junior
30/05/2013
package com.br.Beans;
import com.br.Classes.Cliente;
import com.br.Classes.Empresa;
import com.br.Persistencia.ClienteBD;
import com.br.Persistencia.EmpresaBD;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.enterprise.context.SessionScoped;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Named;
import javax.servlet.http.HttpSession;
@Named("VendaMain")
@SessionScoped
public class VendaMainBean implements Serializable{
private Empresa empresaSelecionada;
private Cliente clienteSelecionado = new Cliente();
private List<Empresa> listaEmpresas = new ArrayList<Empresa>();
private List<Cliente> listaClientes = new ArrayList<Cliente>();
private EmpresaBD persistenciaEmpresa = new EmpresaBD();
private ClienteBD persistenciaCliente = new ClienteBD();
public void CarregarTela(){
if (hasRequestParameter()){
try{
this.listaEmpresas = persistenciaEmpresa.selecionar();
this.listaClientes = persistenciaCliente.selecionar();
}catch(Throwable ex){
}
}
}
public static boolean hasRequestParameter() {
return FacesContext.getCurrentInstance().getExternalContext().getRequestParameterNames().hasNext();
}
public void PegarClientes (){
this.listaClientes.clear();
if (this.empresaSelecionada != null){
Cliente condicaoRetorno = new Cliente();
condicaoRetorno.setEmpresa(new Empresa());
condicaoRetorno.setEmpresa(this.empresaSelecionada);
try {
this.listaClientes = this.persistenciaCliente.selecionarClientesEmpresas(condicaoRetorno);
} catch (Throwable ex) {
}
}else{
try{
this.listaClientes = this.persistenciaCliente.selecionar();
}catch(Throwable ex){
}
}
}
public Empresa getEmpresaSelecionada() {
return empresaSelecionada;
}
public void setEmpresaSelecionada(Empresa empresaSelecionada) {
this.empresaSelecionada = empresaSelecionada;
}
public Cliente getClienteSelecionado() {
return this.clienteSelecionado;
}
public void setClienteSelecionado(Cliente clienteSelecionado) {
this.clienteSelecionado = clienteSelecionado;
}
public void PreencherClientes(){
}
public List<Empresa> getListaEmpresas() {
return listaEmpresas;
}
public void setListaEmpresas(List<Empresa> listaEmpresas) {
this.listaEmpresas = listaEmpresas;
}
public List<Cliente> getListaClientes() {
return listaClientes;
}
public void setListaClientes(List<Cliente> listaCliente) {
this.listaClientes = listaCliente;
}
public String AbrirVenda(){
String retorno;
if (this.clienteSelecionado == null){
retorno = "";
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Selecione um cliente", "" );
FacesContext.getCurrentInstance().addMessage(null, message);
}else{
HttpSession sessaoVenda = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true);
sessaoVenda.setAttribute("VendaSessao", this.clienteSelecionado);
retorno = "VendaAbrir.xhtml";
}
return retorno;
}
}
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Agenda Web - Venda</title>
</h:head>
<h:body>
<p:ajaxStatus onstart="statusDialog.show();" onsuccess="statusDialog.hide();"/>
<p:dialog modal="true" widgetVar="statusDialog" header="Carregando ..." width="250"
draggable="false" closable="false">
<p:graphicImage name="progressbar.gif" library="icones"/>
</p:dialog>
<h:form id="FormVenda">
<p:growl id="messages" />
<p:panel id="panel">
<h:panelGrid columns="3" cellpadding="5">
<f:metadata>
<f:event type="preRenderView" listener="#{VendaMain.CarregarTela}"/>
</f:metadata>
<h:outputLabel value="Empresas :" for="lblEmpresa" id="lblEmpresa"/>
<p:selectOneMenu value="#{VendaMain.empresaSelecionada}"
valueChangeListener="#{VendaMain.PegarClientes}"
converter="ConversorEmpresa"
id="cbxEmpresa">
<f:selectItem itemLabel="Todos" itemValue="#"/>
<f:selectItems value="#{VendaMain.listaEmpresas}"
var="empresas"
itemValue="#"
itemLabel="#{empresas.nome}"/>
<p:ajax process="cbxEmpresa, cbxCliente" event="change" update="cbxEmpresa, cbxCliente" listener="#{VendaMain.PegarClientes}"/>
</p:selectOneMenu>
<br></br>
<h:outputLabel value="Clientes :" for="lblCliente" id="lblCliente"/>
<p:selectOneMenu value="#{VendaMain.clienteSelecionado}"
converter="ConversorCliente"
id="cbxCliente">
<f:selectItem itemLabel="Selecione um cliente" itemValue="#"/>
<f:selectItems value="#{VendaMain.listaClientes}"
var="clientes"
itemValue="#"
itemLabel="#{clientes.nome}"/>
</p:selectOneMenu>
<p:commandButton value="Abrir Venda" action="#{VendaMain.AbrirVenda}" update="messages"
onclick='javascript:return confirm("Deseja realmente abrir uma nova venda ?");'/>
</h:panelGrid>
</p:panel>
</h:form>
<h:outputLink value="Index.xhtml">Menu principal</h:outputLink>
</h:body>
</html>
Okabe Rintarou
30/05/2013
<f:metadata>
<f:event type="preRenderView" listener="#{VendaMain.CarregarTela}"/>
</f:metadata>
José Junior
30/05/2013
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Agenda Web - Venda</title>
</h:head>
<h:body>
<p:ajaxStatus onstart="statusDialog.show();" onsuccess="statusDialog.hide();"/>
<p:dialog modal="true" widgetVar="statusDialog" header="Carregando ..." width="250"
draggable="false" closable="false">
<p:graphicImage name="progressbar.gif" library="icones"/>
</p:dialog>
<h:form id="FormVenda">
<h:inputHidden value="#{VendaMain.status}" id="status"/>
<p:growl id="messages" />
<p:panel id="panel">
<h:panelGrid columns="3" cellpadding="5">
<f:metadata>
<f:event type="preRenderView" listener="#{VendaMain.CarregarTela}"/>
</f:metadata>
<h:outputLabel value="Empresas :" for="lblEmpresa" id="lblEmpresa"/>
<p:selectOneMenu value="#{VendaMain.empresaSelecionada}"
valueChangeListener="#{VendaMain.PegarClientes}"
converter="ConversorEmpresa"
id="cbxEmpresa">
<f:selectItem itemLabel="Todos" itemValue="#"/>
<f:selectItems value="#{VendaMain.listaEmpresas}"
var="empresas"
itemValue="#"
itemLabel="#{empresas.nome}"/>
<p:ajax process="cbxEmpresa, cbxCliente" event="change" update="cbxEmpresa, cbxCliente" listener="#{VendaMain.PegarClientes}"/>
</p:selectOneMenu>
<br></br>
<h:outputLabel value="Clientes :" for="lblCliente" id="lblCliente"/>
<p:selectOneMenu value="#{VendaMain.clienteSelecionado}"
converter="ConversorCliente"
id="cbxCliente">
<f:selectItem itemLabel="Selecione um cliente" itemValue="#"/>
<f:selectItems value="#{VendaMain.listaClientes}"
var="clientes"
itemValue="#"
itemLabel="#{clientes.nome}"/>
</p:selectOneMenu>
<p:commandButton value="Abrir Venda" action="#{VendaMain.AbrirVenda}" update="messages"
onclick='javascript:return confirm("Deseja realmente abrir uma nova venda ?");'/>
</h:panelGrid>
</p:panel>
</h:form>
<h:outputLink value="Index.xhtml">Menu principal</h:outputLink>
</h:body>
</html>
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.br.Beans;
import com.br.Classes.Cliente;
import com.br.Classes.Empresa;
import com.br.Persistencia.ClienteBD;
import com.br.Persistencia.EmpresaBD;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.enterprise.context.SessionScoped;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Named;
import javax.servlet.http.HttpSession;
@Named("VendaMain")
@SessionScoped
public class VendaMainBean implements Serializable{
private Empresa empresaSelecionada;
private Cliente clienteSelecionado = new Cliente();
private List<Empresa> listaEmpresas = new ArrayList<Empresa>();
private List<Cliente> listaClientes = new ArrayList<Cliente>();
private EmpresaBD persistenciaEmpresa = new EmpresaBD();
private ClienteBD persistenciaCliente = new ClienteBD();
private String Status;
private final String ACESSADO = "1";
public void CarregarTela(){
if (this.Status == null){
try{
this.Status = ACESSADO;
this.listaEmpresas = persistenciaEmpresa.selecionar();
this.listaClientes = persistenciaCliente.selecionar();
}catch(Throwable ex){
}
}
}
public void PegarClientes (){
this.listaClientes.clear();
if (this.empresaSelecionada != null){
Cliente condicaoRetorno = new Cliente();
condicaoRetorno.setEmpresa(new Empresa());
condicaoRetorno.setEmpresa(this.empresaSelecionada);
try {
this.listaClientes = this.persistenciaCliente.selecionarClientesEmpresas(condicaoRetorno);
} catch (Throwable ex) {
}
}else{
try{
this.listaClientes = this.persistenciaCliente.selecionar();
}catch(Throwable ex){
}
}
}
public Empresa getEmpresaSelecionada() {
return empresaSelecionada;
}
public void setEmpresaSelecionada(Empresa empresaSelecionada) {
this.empresaSelecionada = empresaSelecionada;
}
public Cliente getClienteSelecionado() {
return this.clienteSelecionado;
}
public void setClienteSelecionado(Cliente clienteSelecionado) {
this.clienteSelecionado = clienteSelecionado;
}
public void PreencherClientes(){
}
public List<Empresa> getListaEmpresas() {
return listaEmpresas;
}
public void setListaEmpresas(List<Empresa> listaEmpresas) {
this.listaEmpresas = listaEmpresas;
}
public List<Cliente> getListaClientes() {
return listaClientes;
}
public void setListaClientes(List<Cliente> listaCliente) {
this.listaClientes = listaCliente;
}
public String AbrirVenda(){
String retorno;
if (this.clienteSelecionado == null){
retorno = "";
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Selecione um cliente", "" );
FacesContext.getCurrentInstance().addMessage(null, message);
}else{
HttpSession sessaoVenda = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true);
sessaoVenda.setAttribute("VendaSessao", this.clienteSelecionado);
retorno = "VendaAbrir.xhtml";
}
return retorno;
}
public String getStatus() {
return Status;
}
public void setStatus(String Status) {
this.Status = Status;
}
}
Okabe Rintarou
30/05/2013