The Layout.xhtml:
Code: Select all
<?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:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.prime.com.tr/ui"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<link type="text/css" rel="stylesheet" href="#{request.contextPath}/css/sgpc.css"/>
<script type="text/javascript" language="JavaScript" src="#{request.contextPath}/js/CloseListener.js"></script>
<!--ui:insert name="titulo">teste.com</ui:insert-->
</h:head>
<h:body>
<f:view contentType="text/html">
<p:growl id="growl" showDetail="true" life="2000"/>
<p:ajaxStatus onstart="wait.show();" oncomplete="wait.hide();"/>
<p:panel>
<ui:insert name="topo">
<ui:include src="jsfcomponents/globalMenu.xhtml"/>
</ui:insert>
<ui:insert name="esquerda"></ui:insert>
<ui:insert name="conteudo"></ui:insert>
<ui:insert name="direita"></ui:insert>
</p:panel>
<p:panel>
<ui:insert name="rodape">Copyright ...</ui:insert>
</p:panel>
<p:dialog widgetVar="wait" width="180" height="100" header="Processando" resizable="false" draggable="false" closable="false">
<h:panelGrid columns="1" style="text-align: center" width="100%">
<h:outputText value="Por favor aguarde..." style="text-align: center"/>
<h:graphicImage value="/images/icons/wait.gif" style="text-align: center"/>
</h:panelGrid>
</p:dialog>
<ui:include src="creditos.xhtml"/>
</f:view>
</h:body>
</html>
Instituicoes.xhtml (where the error occurs):
Code: Select all
<?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:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.prime.com.tr/ui">
<ui:composition template="./layout.xhtml">
<ui:define name="esquerda">
<br/>
</ui:define>
<ui:define name="conteudo">
<h:form id="form1">
<p:panel header="#{label.general_Find}">
<h:panelGrid columns="2">
<h:panelGrid columns="2">
<h:outputText value="#{label.general_Keyword}" />
<p:inputText value="#{instituicaoBancariaMB.pesquisa}">
<f:ajax event="keyup" render="tabela" listener="#{instituicaoBancariaMB.pesquisar}" />
</p:inputText>
</h:panelGrid>
<h:panelGrid columns="2">
<h:commandLink id="downloadlinkPdf" title="Download PDF">
<p:graphicImage value="/images/icons/application_pdf.png" style="border:0"/>
<p:fileDownload value="#{instituicaoBancariaMB.downloadReportPdf()}" />
</h:commandLink>
<h:commandLink id="downloadlinkXls" title="Download XLS">
<p:graphicImage value="/images/icons/application_vnd.ms_excel.png" style="border:0"/>
<p:fileDownload value="#{instituicaoBancariaMB.downloadReportXls()}" />
</h:commandLink>
</h:panelGrid>
</h:panelGrid>
</p:panel>
<p:dataTable id="tabela"
value="#{instituicaoBancariaMB.listaInstituicoes}"
var="n"
rows="10"
paginatorPosition="bottom"
paginator="true"
rendered="true"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown} Total de #{instituicaoBancariaMB.listaInstituicoes.size()} registros encontrados"
rowsPerPageTemplate="5,10,15">
<f:facet name="header">
<h:outputText value="#{label.ib_Header}" />
</f:facet>
<p:column sortBy="#{n.nome}">
<f:facet name="header">
<h:outputText value="#{label.general_Name}" />
</f:facet>
<h:outputText value="#{n.nome}" id="nome" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="#{label.ib_Website}" />
</f:facet>
<h:outputText value="#{n.website}" id="website" />
</p:column>
<p:column sortBy="#{n.codigo}">
<f:facet name="header">
<h:outputText value="#{label.ib_Code}" />
</f:facet>
<h:outputText value="#{n.codigo}" id="codigo" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="#{label.ib_Other_Name}" />
</f:facet>
<h:outputText value="#{n.nomeFantasia}" id="nomeFantasia" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="#{label.general_Action}" />
</f:facet>
<p:commandLink id="editlink" oncomplete="addEditPopup.show();" update="addEditPanel" action="#{instituicaoBancariaMB.prepareEditar}" immediate="true" disabled="#{!instituicaoBancariaMB.podeEditarInstituicaoBancaria}">
<h:graphicImage value="#{instituicaoBancariaMB.imagemEditarRegistro}" style="border:0" />
<f:setPropertyActionListener value="#{n}" target="#{instituicaoBancariaMB.instituicaoBancaria}" />
</p:commandLink>
<p:tooltip for="editlink" value="#{label.general_Edit_Tip}" />
<p:commandLink id="deletelink" oncomplete="deletePopup.show()" disabled="true">
<h:graphicImage value="#{instituicaoBancariaMB.imagemExcluirRegistro}" style="border:0" />
<f:setPropertyActionListener value="#{n}" target="#{instituicaoBancariaMB.instituicaoBancaria}" />
</p:commandLink>
<p:tooltip for="deletelink" value="#{label.general_Delete_Tip}" />
</p:column>
<f:facet name="footer">
<p:columnGroup>
<p:column colspan="4"/>
<p:column>
<p:commandLink id="addlink" oncomplete="addEditPopup.show()" update="addEditPanel" action="#{instituicaoBancariaMB.prepareAdicionar}" immediate="true" disabled="#{!instituicaoBancariaMB.podeCriarInstituicaoBancaria}">
<h:graphicImage value="#{instituicaoBancariaMB.imagemCriarRegistro}" style="border:0"/>
</p:commandLink>
<p:tooltip for="addlink" value="#{label.general_Add_Tip}" />
</p:column>
</p:columnGroup>
</f:facet>
</p:dataTable>
</h:form>
<!-- ################################### -->
<!-- bloco de edição -->
<p:dialog widgetVar="addEditPopup"
width="400"
header="#{label.general_Edit}"
modal="true"
resizable="false"
draggable="false"
closable="false"
closeOnEscape="false">
<h:panelGrid columns="1" id="addEditPanel">
<h:form>
<h:panelGrid columns="3">
<h:outputText value="#{label.general_Name}:" />
<p:inputText value="#{instituicaoBancariaMB.instituicaoBancaria.nome}" id="nome" required="true" requiredMessage="#{label.general_Name_Required}."/>
<p:message for="nome" display="icon"/>
<h:outputText value="#{label.ib_Website}:" />
<p:inputText value="#{instituicaoBancariaMB.instituicaoBancaria.website}" id="website"/>
<h:outputText value="" />
<h:outputText value="#{label.ib_Code}:" />
<p:inputText value="#{instituicaoBancariaMB.instituicaoBancaria.codigo}" id="codigo" required="true" requiredMessage="#{label.general_Code_Required}"/>
<p:message for="codigo" display="icon"/>
<h:outputText value="#{label.ib_Other_Name}:" />
<p:inputText value="#{instituicaoBancariaMB.instituicaoBancaria.nomeFantasia}" id="nomeFantasia"/>
<h:outputText value="" />
</h:panelGrid>
<p:commandButton value="#{label.general_Save}"
actionListener="#{instituicaoBancariaMB.gravar}"
update="form1:tabela, addEditPanel"
oncomplete="handleLocalesDialogComplete(xhr, status, args, addEditPopup)"/>
<p:commandButton value="#{label.general_Cancel}"
actionListener="#{instituicaoBancariaMB.prepareAdicionar}"
oncomplete="addEditPopup.hide();" />
</h:form>
</h:panelGrid>
</p:dialog>
<!-- ################################### -->
<!-- bloco de exclusão -->
<p:dialog widgetVar="deletePopup" width="250" modal="true" header="#{label.general_Confirm}" resizable="false">
<h:form>
<h:outputText value="#{label.general_Delete}"/>
<h:panelGrid columns="2">
<p:commandButton value="#{label.general_Yes}"
action="#{instituicaoBancariaMB.excluir}"
oncomplete="deletePopup.hide();"
update="form1:tabela"/>
<p:commandButton value="#{label.general_Cancel}"
onclick="deletePopup.hide();return false;" />
</h:panelGrid>
</h:form>
</p:dialog>
</ui:define>
</ui:composition>
</html>
Code: Select all
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.usp.icmc.sgpc.jsf;
import br.beans.InstituicaoBancariaBean;
import br.beans.PessoaBean;
import br.security.RbacConstantes;
import br.security.service.SecurityService;
import br.service.ReportService;
import br.service.Service;
import java.io.InputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.component.UIComponent;
import javax.faces.component.UIPanel;
import javax.faces.context.FacesContext;
import org.apache.log4j.Logger;
import org.primefaces.model.DefaultStreamedContent;
import org.primefaces.model.StreamedContent;
/**
*
* @author Herick
*/
// @KeepAlive
@ManagedBean(name = "instituicaoBancariaMB")
@ViewScoped
public class InstituicaoBancariaManagedBean implements Serializable {
private static final Logger logger = Logger.getLogger(InstituicaoBancariaManagedBean.class);
public static final String PESQUISAR_STATE = "pesquisar";
public static final String ADICIONAR_STATE = "adicionar";
public static final String EDITAR_STATE = "editar";
private String currentState = PESQUISAR_STATE;
private InstituicaoBancariaBean instituicaoBancaria;
private List<InstituicaoBancariaBean> listaInstituicoes = new ArrayList<InstituicaoBancariaBean>();
private UIPanel panelForm;
private Integer currentRow;
private String pesquisa;
private boolean podeCriarInstituicaoBancaria;
private boolean podeEditarInstituicaoBancaria;
private String imagemEditarRegistro = "/images/icons/editar.png";
private String imagemExcluirRegistro = "/images/icons/delbw.png";
private String imagemCriarRegistro = "/images/icons/add1.png";
public String getImagemCriarRegistro() {
if (podeCriarInstituicaoBancaria) {
imagemCriarRegistro = "/images/icons/add1.png";
} else {
imagemCriarRegistro = "/images/icons/add1bw.png";
}
return imagemCriarRegistro;
}
public void setImagemCriarRegistro(String imagemCriarRegistro) {
this.imagemCriarRegistro = imagemCriarRegistro;
}
public String getImagemEditarRegistro() {
if (podeEditarInstituicaoBancaria) {
imagemEditarRegistro = "/images/icons/editar.png";
} else {
imagemEditarRegistro = "/images/icons/editarbw.png";
}
return imagemEditarRegistro;
}
public void setImagemEditarRegistro(String imagemEditarRegistro) {
this.imagemEditarRegistro = imagemEditarRegistro;
}
public String getImagemExcluirRegistro() {
return imagemExcluirRegistro;
}
public void setImagemExcluirRegistro(String imagemExcluirRegistro) {
this.imagemExcluirRegistro = imagemExcluirRegistro;
}
public boolean isPodeCriarInstituicaoBancaria() {
return podeCriarInstituicaoBancaria;
}
public void setPodeCriarInstituicaoBancaria(boolean podeCriarInstituicaoBancaria) {
this.podeCriarInstituicaoBancaria = podeCriarInstituicaoBancaria;
}
public boolean isPodeEditarInstituicaoBancaria() {
return podeEditarInstituicaoBancaria;
}
public void setPodeEditarInstituicaoBancaria(boolean podeEditarInstituicaoBancaria) {
this.podeEditarInstituicaoBancaria = podeEditarInstituicaoBancaria;
}
public InstituicaoBancariaManagedBean() {
logger.debug("Instanciando classe");
UserSessionManagedBean userSessionMB = (UserSessionManagedBean) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("userSessionMB");
PessoaBean usuarioLogado = userSessionMB.getLoggedUser();
podeCriarInstituicaoBancaria = SecurityService.getInstance().verificarPermissao(usuarioLogado, RbacConstantes.INSTITUICAO_BANCARIA_CRIAR);
podeEditarInstituicaoBancaria = SecurityService.getInstance().verificarPermissao(usuarioLogado, RbacConstantes.INSTITUICAO_BANCARIA_EDITAR);
this.listaInstituicoes = Service.getInstance().listarInstituicoesBancarias();
}
/*
* Pesquisa instituicoes bancarias
*/
public void pesquisar() {
logger.debug("PESQUISAR");
this.setCurrentState(PESQUISAR_STATE);
this.instituicaoBancaria = new InstituicaoBancariaBean();
if ("".equals(this.pesquisa) || this.pesquisa == null) {
logger.debug("PESQUISAR TODOS");
this.listaInstituicoes = Service.getInstance().listarInstituicoesBancarias();
} else {
logger.debug("PESQUISAR COM TERMO");
this.listaInstituicoes = Service.getInstance().pesquisarInstituicoesBancarias(this.pesquisa);
}
}
/*
* Prepara view adiciona
*/
public void prepareAdicionar() {
this.clear();
this.setCurrentState(ADICIONAR_STATE);
}
/*
* Prepara view edita
*/
public void prepareEditar() {
this.setCurrentState(EDITAR_STATE);
}
/*
* Exclui registro
*/
public void excluir() {
logger.debug("EXCLUIR REGISTRO");
Service.getInstance().excluirInstituicaoBancaria(instituicaoBancaria);
this.pesquisar();
}
/*
* Limpa atributo
*/
public void clear() {
this.instituicaoBancaria = new InstituicaoBancariaBean();
//this.cleanSubmittedValues(this.panelForm);
}
public boolean isPesquisarState() {
String state = this.getCurrentState();
return (state == null || PESQUISAR_STATE.equals(state));
}
public boolean isAdicionarState() {
return ADICIONAR_STATE.equals(this.getCurrentState());
}
public boolean isEditarState() {
return EDITAR_STATE.equals(this.getCurrentState());
}
/*
* Limpa os componentes filhos para que depois eles possam ser recriado
* @param componen
*/
protected void cleanSubmittedValues(UIComponent component) {
component.getChildren().clear();
}
public String getCurrentState() {
return currentState;
}
public void setCurrentState(String currentState) {
this.currentState = currentState;
}
public InstituicaoBancariaBean getInstituicaoBancaria() {
return instituicaoBancaria;
}
public void setInstituicaoBancaria(InstituicaoBancariaBean instituicaoBancaria) {
this.instituicaoBancaria = instituicaoBancaria;
}
public List<InstituicaoBancariaBean> getListaInstituicoes() {
return listaInstituicoes;
}
public void setListaInstituicoes(List<InstituicaoBancariaBean> listaInstituicoes) {
this.listaInstituicoes = listaInstituicoes;
}
public UIPanel getPanelForm() {
return panelForm;
}
public void setPanelForm(UIPanel panelForm) {
this.panelForm = panelForm;
}
public Integer getCurrentRow() {
return currentRow;
}
public void setCurrentRow(Integer currentRow) {
this.currentRow = currentRow;
}
public String getPesquisa() {
return pesquisa;
}
public void setPesquisa(String pesquisa) {
this.pesquisa = pesquisa;
}
public void gravar() {
if (ADICIONAR_STATE.equals(this.currentState)) {
logger.debug("ADICIONAR REGISTRO");
Service.getInstance().cadastraInstituicaoBancaria(instituicaoBancaria);
} else if (EDITAR_STATE.equals(this.currentState)) {
logger.debug("EDITAR REGISTRO");
Service.getInstance().atualizarInstituicaoBancaria(instituicaoBancaria);
}
this.pesquisar();
}
public StreamedContent downloadReportPdf() {
logger.debug("GERAR RELATORIO PDF");
InputStream stream = ReportService.getInstance().emiteRelatorioInstituicoesBancarias(listaInstituicoes, ReportService.FORMATO_PDF);
StreamedContent file = new DefaultStreamedContent(stream, "application/pdf", "report.pdf");
return file;
}
public StreamedContent downloadReportXls() {
logger.debug("GERAR RELATORIO XLS");
InputStream stream = ReportService.getInstance().emiteRelatorioInstituicoesBancarias(listaInstituicoes, ReportService.FORMATO_XLS);
StreamedContent file = new DefaultStreamedContent(stream, "application/vnd.ms-excel", "report.xls");
return file;
}
}
Code: Select all
function handleLocalesDialogComplete(xhr, status, args, dialog)
{
if (args) {
var isValid = args.isValid;
if(!isValid) {
dialog.hide();
}
}
}
Code: Select all
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.usp.icmc.sgpc.fmw;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.event.PhaseEvent;
import javax.faces.event.PhaseId;
import javax.faces.event.PhaseListener;
import org.apache.log4j.Logger;
import org.primefaces.context.RequestContext;
/**
*
* @author Herick
*/
public class CloseDialogPhaseListener implements PhaseListener {
private static final Logger logger = Logger.getLogger(CloseDialogPhaseListener.class);
public void afterPhase(PhaseEvent phaseEvent) { }
public void beforePhase(PhaseEvent event) {
logger.debug("Setando atributos para funcionamento de componentes dialog...");
RequestContext requestContext = RequestContext.getCurrentInstance();
if (requestContext != null) {
boolean messageOccured = FacesMessage.SEVERITY_ERROR.equals(event.getFacesContext().getMaximumSeverity());
requestContext.addCallbackParam("isValid", messageOccured);
}
}
public PhaseId getPhaseId() {
return PhaseId.RENDER_RESPONSE;
}
}
http://www.coderanch.com/t/491486/JSF/j ... nException
My problem is exactly the same. Attention to the solution proposed on the last post (Yaroslav), I already try but without success.
If you need any more code, just ask!
Thanks in advance for your help.