selectOneMenu não guarda a pasta da mensagem atual
27/07/2011
0
view plaincopy to clipboardprint?package com.tischeme.marrichi.controller; import java.util.List; import com.tischeme.marrichi.bean.main.ManagedBean; import com.tischeme.marrichi.exception.DatabaseException; import com.tischeme.marrichi.persistence.dao.PastaDAO; import com.tischeme.marrichi.persistence.dao.UsuarioMensagemDAO; import com.tischeme.marrichi.persistence.to.Pasta; import com.tischeme.marrichi.persistence.to.TipoMensagem; import com.tischeme.marrichi.persistence.to.Usuario; public class PastaController { private PastaDAO pastaDAO; private int tipoMensagem; public PastaController(int tipoMensagem) { this.tipoMensagem = tipoMensagem; } public List<Pasta> listPastas(Usuario usuario) throws DatabaseException{ return getPastaDAO().findByUsuario(usuario, tipoMensagem); } public Pasta persist(Pasta pasta) throws DatabaseException{ pasta.setUsuario(ManagedBean.getLoggedUser()); pasta.setTipoMensagem(new TipoMensagem(tipoMensagem)); return getPastaDAO().merge(pasta); } private PastaDAO getPastaDAO(){ return pastaDAO == null ? pastaDAO = new PastaDAO() : pastaDAO; } public Pasta findById(int id) throws DatabaseException { return getPastaDAO().findById(id); } public boolean delete(Pasta pasta) throws DatabaseException { UsuarioMensagemDAO dao = new UsuarioMensagemDAO(tipoMensagem); dao.findByPasta(ManagedBean.getLoggedUser(), pasta); if(dao.list().size() == 0){ getPastaDAO().makeTransient(pasta); return true; }else{ return false; } } }
muito obrigado
Renato Galina
Posts
27/07/2011
Renato Galina
Sou iniciante e tenho um problema aqui na empresa com um sistema de mensagens(não é email). o combo do listOneMenu ele traz as pastas que criei, até ai ok. Se acessar uma pasta para ler as mensagem e clicar em voltar, tudo bem ele guarda a pasta que eu estava. O problema é que se eu abrir uma mensagem e muda-la de pasta, ao clicar o combo guarda a pasta que eu movi a mensagem e não a pasta que eu estou ao clicar em voltar. O dataTable fica correto mas o combo não. Exemplo de fluxo, Estou na pasta entrada, leio um mensagem, clico em voltar, dataTable e combo estão na pasta entrada. estou na pasta entrada, clico numa mensagem, mudo esta para pasta arquivo, clico em voltar, o dataTable esta listando o conteudo da pasta entrada más o combo esta a pasta arquivo( ou seja ele guarda a pasta que eu mudei a mensagem e não a pasta atual onde estou) Por favor poderia me ajudar com este problema
Segue os códigos
MENSAGEM.JSP
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><%@taglib uri="http://richfaces.org/rich" prefix="rich"%><%@taglib uri="http://richfaces.org/a4j" prefix="a4j"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%><%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%><%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Marrichi - Consultoria, Motivação, Palestras</title><link href="css/global.css" rel="stylesheet" type="text/css" /><link href="css/forms.css" rel="stylesheet" type="text/css" /><link href="css/links.css" rel="stylesheet" type="text/css" /><link href="css/mensagens.css" rel="stylesheet" type="text/css" /><link href="css/buscaPastas.css" rel="stylesheet" type="text/css" /><script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script></head><body> <f:view> <div id="global"> <div id="header"><%@include file="header.jsp"%> </div> <div id="content"> <div id="titulos"><img src="img/titulos/mensagens.jpg" alt="Bem Vindo" width="90" height="359" /></div> <div id="conteudoInterno"> <div id="buscaPasta"> <div id="busca"> <h:form> <h:commandLink action="#{mb.mensagemBean.novaMensagem}" > <h:graphicImage value="img/site/btNovaMensagem.jpg" style="border:0" /> <f:setPropertyActionListener value="#" target="#{mb.mensagemBean.mensagem}"/> </h:commandLink> </h:form> </div> <div id="pastas"> <h:form> <h:panelGroup id="pastas" > <h:selectOneMenu value="#{mb.usuarioMensagemBean.pastaId}"> <f:selectItem itemValue="-2" itemLabel="Caixa de Entrada" /> <f:selectItem itemValue="-1" itemLabel="Caixa de Saída" /> <f:selectItem itemValue="0" itemLabel="Todas Mensagens" /> <f:selectItems value="#{mb.pastaMensagemBean.pastasItens}" /> <a4j:support event="onchange" action="#{mb.usuarioMensagemBean.filtrarPorPasta}" reRender="messagesTable" /> </h:selectOneMenu> <a4j:commandButton value="Criar Pasta" > <f:setPropertyActionListener target="#{mb.pastaMensagemBean.pasta}" value="#"></f:setPropertyActionListener> <rich:componentControl event="oncomplete" for="pastaPanel" operation="show" /> </a4j:commandButton> <a4j:commandButton value="Excluir Pasta" > <rich:componentControl event="oncomplete" for="pastaDeletePanel" operation="show" /> </a4j:commandButton> </h:panelGroup> </h:form> </div> </div> <div id="buscas"> <rich:panel style="width: 845px;"> <f:facet name="header"><h:outputText value="Buscas"/></f:facet> <h:form> <h:panelGrid columns="7" styleClass="bordasimples"> <rich:column width="200"><h:outputText value="Buscar por Título " /></rich:column> <rich:column width="100"><h:inputText value="#{mb.usuarioMensagemBean.filtro}"></h:inputText></rich:column> <rich:column width="40"><h:commandButton value="Filtrar" action="#{mb.usuarioMensagemBean.buscarAssunto}"/></rich:column> <rich:column width="50" /> <rich:column width="200"><h:outputText value="Buscar por Conteúdo" /></rich:column> <rich:column width="100"><h:inputText value="#{mb.usuarioMensagemBean.filtro}"></h:inputText></rich:column> <rich:column width="40"><h:commandButton value="Filtrar" action="#{mb.usuarioMensagemBean.buscarMensagem}"/></rich:column> </h:panelGrid> </h:form> </rich:panel> </div> <div id="conteudoMensagens"> <h:form> <rich:dataTable id="messagesTable" value="#{mb.usuarioMensagemBean.paginator}" var="um" rows="10" width="850" > <f:facet name="header"> <h:outputText value="Mensagens: #{mb.usuarioMensagemBean.filtroPasta}" ></h:outputText> </f:facet> <rich:column> <h:selectBooleanCheckbox value="#{um.selected}" /> <h:outputText value="#{um.mensagem.dataCadastro}" styleClass="dataMensagens" > <f:convertDateTime pattern="dd/MM/yyyy HH:mm:ss" /> </h:outputText><br /> <h:commandLink action="#{mb.usuarioMensagemBean.lerAdmin}" > <h:outputText value="#{um.mensagem.usuario.nomeResponsavel} - " ></h:outputText> <h:outputText value="#{um.mensagem.usuario.nome} - " ></h:outputText> <h:outputText value="#{um.mensagem.assunto}" ></h:outputText> <f:setPropertyActionListener value="#" target="#{mb.usuarioMensagemBean.usuarioMensagem}"/> </h:commandLink> </rich:column> <rich:column dir="RTL" width="35" > <h:panelGroup rendered="#{um.remetente}" > <h:commandLink id="verLink" action="#{mb.usuarioMensagemBean.verQuemLeu}" > <f:setPropertyActionListener value="#" target="#{mb.usuarioMensagemBean.usuarioMensagem}"/> <h:graphicImage alt="Lidas" url="img/site/checar.png" ></h:graphicImage> </h:commandLink> <rich:toolTip for="verLink" value="Checar quais usuários já leram a mensagem" ></rich:toolTip> </h:panelGroup> </rich:column> <rich:column dir="RTL" width="35" > <h:panelGroup rendered="#{um.remetente}" > <h:commandLink id="verLinkNao" action="#{mb.usuarioMensagemBean.verQuemNaoLeu}" > <f:setPropertyActionListener value="#" target="#{mb.usuarioMensagemBean.usuarioMensagem}"/> <h:graphicImage alt="Não Lidas" url="img/site/checarNao.png" ></h:graphicImage> </h:commandLink> <rich:toolTip for="verLinkNao" value="Checar quais usuários ainda não leram a mensagem" ></rich:toolTip> </h:panelGroup> </rich:column> <rich:column dir="RTL" width="20" > <h:panelGroup > <a4j:commandLink id="deletelink" oncomplete="#{rich:component('deletePanel')}.show()"> <h:graphicImage alt="Deletar" url="../pages/img/geral/delete.gif" ></h:graphicImage> <f:setPropertyActionListener value="#" target="#{mb.usuarioMensagemBean.usuarioMensagem}"/> </a4j:commandLink> <rich:toolTip for="deleteLink" value="Excluir" ajaxSingle="true" ></rich:toolTip> </h:panelGroup> </rich:column> <f:facet name="footer"> <rich:datascroller for="messagesTable" maxPages="10" page="#{mb.usuarioMensagemBean.pageNumber}" actionListener="#{mb.usuarioMensagemBean.event}" > </rich:datascroller> </f:facet> </rich:dataTable> <h:commandButton action="#{mb.usuarioMensagemBean.deleteMany}" value="Excluir Selecionadas" /> </h:form> <rich:modalPanel id="pastaPanel" autosized="true" width="200"> <f:facet name="header"> <h:outputText value="Nova Pasta" style="padding-right:15px;" /> </f:facet> <f:facet name="controls"> <h:panelGroup> <h:graphicImage value="../pages/img/geral/close.png" styleClass="hidelink" id="hidelink3" /> <rich:componentControl for="pastaPanel" attachTo="hidelink3" operation="hide" event="onclick" /> </h:panelGroup> </f:facet> <h:form> <a4j:outputPanel ajaxRendered="true" > <h:outputText value="Nome: " /> <h:inputText immediate="true" id="pastaNome" value="#{mb.pastaMensagemBean.pasta.nome}" required="true" /> <h:message for="pastaNome" /> <br /> </a4j:outputPanel> <a4j:commandButton value="Salvar" action="#{mb.pastaMensagemBean.storePasta}" reRender="pastas" oncomplete="if (#{facesContext.maximumSeverity==null}) #{rich:component('pastaPanel')}.hide();"> </a4j:commandButton> </h:form> </rich:modalPanel> <rich:modalPanel id="pastaDeletePanel" height="400" width="300"> <f:facet name="header"> <h:outputText value="Nova Pasta" style="padding-right:15px;" /> </f:facet> <f:facet name="controls"> <h:panelGroup> <h:graphicImage value="../pages/img/geral/close.png" styleClass="hidelink" id="hidelink4" /> <rich:componentControl for="pastaDeletePanel" attachTo="hidelink4" operation="hide" event="onclick" /> </h:panelGroup> </f:facet> <h:form> <a4j:outputPanel ajaxRendered="true" > <rich:messages globalOnly="true" ></rich:messages> <rich:scrollableDataTable value="#{mb.pastaMensagemBean.pastas}" var="pasta" id="pastaList" height="300px" width="250px" > <rich:column width="180px" > <f:facet name="header"> <h:outputText value="Nome" /> </f:facet> <h:outputText value="#{pasta.nome}" /> </rich:column> <rich:column width="50px" > <f:facet name="header"> <h:outputText value="Excluir" /> </f:facet> <a4j:commandButton image="/pages/img/geral/delete.gif" action="#{mb.pastaMensagemBean.delete}" reRender="pastaList,pastas" > <f:setPropertyActionListener value="#" target="#{mb.pastaMensagemBean.pasta}"></f:setPropertyActionListener> </a4j:commandButton> </rich:column> </rich:scrollableDataTable> </a4j:outputPanel> </h:form> </rich:modalPanel> <!-- Início modalPanel para delete de produto --> <rich:modalPanel id="deletePanel" autosized="true" width="200"> <f:facet name="header"> <h:outputText value="Deletar a mensagem?" style="padding-right:15px;" /> </f:facet> <f:facet name="controls"> <h:panelGroup> <h:graphicImage value="../pages/img/geral/close.png" styleClass="hidelink" id="hidelink2" /> <rich:componentControl for="deletePanel" attachTo="hidelink2" operation="hide" event="onclick" /> </h:panelGroup> </f:facet> <h:form> <table width="100%"> <tbody> <tr> <td align="center" width="50%"><a4j:commandButton value="Sim" ajaxSingle="true" action="#{mb.usuarioMensagemBean.deletar}" oncomplete="#{rich:component('deletePanel')}.hide();" reRender="messagesTable" /></td> <td align="center" width="50%"><a4j:commandButton value="Cancelar" onclick="#{rich:component('deletePanel')}.hide();return false;" /> </td> </tr> </tbody> </table> </h:form> </rich:modalPanel> <!-- Fim modalPanel para delete de produto --> </div> </div> </div></div><div id="footer"><div id="logoTi"><img src="img/site/logoTi.jpg" alt="Ti Scheme - Tecnologia da informação" /></div></div> </f:view></body></html>
27/07/2011
Renato Galina
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><%@taglib uri="http://richfaces.org/rich" prefix="rich"%><%@taglib uri="http://richfaces.org/a4j" prefix="a4j"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%><%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%><%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Marrichi - Consultoria, Motivação, Palestras</title><link href="css/global.css" rel="stylesheet" type="text/css" /><link href="css/forms.css" rel="stylesheet" type="text/css" /><link href="css/links.css" rel="stylesheet" type="text/css" /><link href="css/mensagens.css" rel="stylesheet" type="text/css" /><script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script> <script type="text/javascript" src="editor/js/editor/tiny_mce.js"></script><script type="text/javascript" src="editor/js/editor-config.js"></script></head><body> <f:view> <div id="global"> <div id="header"><%@include file="header.jsp"%> </div> <div id="content"> <div id="titulos"><img src="img/titulos/mensagens.jpg" alt="Bem Vindo" width="90" height="359" /></div> <div id="conteudoInterno"> <div id="conteudoMensagens"> <h:outputText value="#{mb.usuarioMensagemBean.message} " id="msg" ></h:outputText> <div id="botaoVoltar"> <h:outputLink value="mensagens.jsf" > <h:graphicImage value="img/site/btVoltar.jpg" style="border:0" /> </h:outputLink> </div> <h:form> <h:panelGroup > <h:outputText value="Pasta: " ></h:outputText> <h:selectOneMenu immediate="true" id="switchFolder" value="#{mb.usuarioMensagemBean.pastaId}"> <f:selectItem itemValue="" itemLabel="" /> <f:selectItems value="#{mb.pastaMensagemBean.pastasItens}" ></f:selectItems> <a4j:support event="onchange" action="#{mb.usuarioMensagemBean.switchPasta}" reRender="msg" /> </h:selectOneMenu> <rich:message for="switchFolder" ></rich:message> </h:panelGroup> </h:form> <h:form> <rich:messages></rich:messages> <rich:panel > <h:commandLink action="#{mb.usuarioMensagemBean.verOriginal}" value="Ver mensagem original" rendered="#{mb.usuarioMensagemBean.usuarioMensagem.mensagem.resposta}" /> <h:panelGrid columns="2" > <h:outputText value="De:" ></h:outputText> <h:outputText value="#{mb.usuarioMensagemBean.mensagem.usuario.nomeResponsavel}" ></h:outputText> <h:outputText value="Assunto:" ></h:outputText> <h:outputText value="#{mb.usuarioMensagemBean.mensagem.assunto}" ></h:outputText> <h:outputText rendered="#{mb.usuarioMensagemBean.mensagem.temAnexo}" value="Anexo:" ></h:outputText> <h:outputLink rendered="#{mb.usuarioMensagemBean.mensagem.temAnexo}" value="../anexos/#{mb.usuarioMensagemBean.mensagem.urlAnexo}" target="_blank" >Baixar Anexo</h:outputLink> <h:outputText value="Data:" ></h:outputText> <h:outputText value="#{mb.usuarioMensagemBean.mensagem.dataCadastro}" > <f:convertDateTime pattern="dd/MM/yyyy HH:mm:ss" /> </h:outputText> </h:panelGrid> <h:outputText escape="false" value="#{mb.usuarioMensagemBean.mensagem.mensagem}" ></h:outputText> <br /> <h:commandButton value="Replicar a todos" action="#{mb.usuarioMensagemBean.replyToAll}" ></h:commandButton> <br /> <h:commandButton value="Enviar como mensagem" action="#{mb.usuarioMensagemBean.toMessage}" > <f:setPropertyActionListener value="#{mb.usuarioMensagemBean.mensagem}" target="#{mb.mensagemBean.mensagem}"/> </h:commandButton> </rich:panel> respostas: <h:dataTable value="#{mb.usuarioMensagemBean.respostas}" var="resposta" > <h:column> <rich:panel > <h:panelGrid columns="2" > <h:outputText value="De: " ></h:outputText> <h:outputText value="#{resposta.mensagem.usuario.nomeResponsavel}" /> <h:outputText rendered="#{resposta.mensagem.temAnexo}" value="Anexo:" ></h:outputText> <h:outputLink rendered="#{resposta.mensagem.temAnexo}" value="../anexos/#{resposta.mensagem.urlAnexo}" target="_blank" >Baixar Anexo</h:outputLink> <h:outputText value="Data: " ></h:outputText> <h:outputText value="#{resposta.mensagem.dataCadastro}" > <f:convertDateTime pattern="dd/MM/yyyy HH:mm:ss" /> </h:outputText> </h:panelGrid> <h:outputText escape="false" value="#{resposta.mensagem.mensagem}" ></h:outputText> <br /> <h:commandButton value="Replicar" action="#{mb.usuarioMensagemBean.reply}" > <f:setPropertyActionListener value="#{resposta.mensagem}" target="#{mb.usuarioMensagemBean.respostaResponder}" /> </h:commandButton> <h:commandButton value="Enviar como mensagem" action="#{mb.usuarioMensagemBean.toMessage}" > <f:setPropertyActionListener value="#{resposta.mensagem}" target="#{mb.mensagemBean.mensagem}"/> </h:commandButton> </rich:panel> </h:column> </h:dataTable> </h:form> </div> </div> </div></div><div id="footer"><div id="logoTi"><img src="img/site/logoTi.jpg" alt="Ti Scheme - Tecnologia da informação" /></div></div> </f:view></body></html>
27/07/2011
Renato Galina
Classe UsuarioMensagemBean
package com.tischeme.marrichi.bean; import java.util.ArrayList;import java.util.Date;import java.util.List; import javax.faces.event.ActionEvent; import org.richfaces.event.DataScrollerEvent;import org.richfaces.event.UploadEvent;import org.richfaces.model.UploadItem; import com.tischeme.marrichi.bean.main.ManagedBean;import com.tischeme.marrichi.bean.to.Diretorio;import com.tischeme.marrichi.controller.FileTransfer;import com.tischeme.marrichi.controller.MensagemController;import com.tischeme.marrichi.controller.PastaController;import com.tischeme.marrichi.controller.UsuarioMensagemController;import com.tischeme.marrichi.exception.DatabaseException;import com.tischeme.marrichi.exception.NoResultFoundException;import com.tischeme.marrichi.paginators.UsuarioMensagemPaginator;import com.tischeme.marrichi.persistence.dao.PastaDAO;import com.tischeme.marrichi.persistence.to.Mensagem;import com.tischeme.marrichi.persistence.to.Pasta;import com.tischeme.marrichi.persistence.to.UsuarioMensagem;import com.tischeme.marrichi.persistence.util.MessageHandler; public class UsuarioMensagemBean { private List<String> gruposSelecionados = new ArrayList<String>(); private String usuarios = ""; private MensagemController controller; private UsuarioMensagemController usuarioMensagemController; private String message; private List<UsuarioMensagem> naoLeitores; private List<UsuarioMensagem> leitores; private Mensagem mensagem; private UsuarioMensagem usuarioMensagem; private List<UsuarioMensagem> respostas; private Mensagem resposta2; private Mensagem respostaResponder; private boolean resposta = false; private boolean toAll = false; private String filtro; private Pasta pasta; private int pastaId = -2; private String filtroPasta; private UsuarioMensagemPaginator paginator; private boolean anexado = false; private int pageNumber = 1; public String loadMessageAdmin() throws DatabaseException{ pastaId = -2; filtrarPorPasta(); return "loadMessageAdmin"; } public String loadMessage() throws DatabaseException{ pastaId = -2; filtrarPorPasta(); return "loadMessage"; } /** * Exclui várias mensagens que estão selecionadas * @return null * @throws DatabaseException caso ocorra alguma anormalidade na execução */ public String deleteMany() throws DatabaseException{ for (UsuarioMensagem um : getPaginator().getUsuarioMensagens()) { if(um.isSelected()){ getUsuarioMensagemController().delete(um); } } return null; } /** * Busca mensagem por assunto * @return * @throws DatabaseException */ public String buscarAssunto() throws DatabaseException{ getUsuarioMensagemController().findByAssunto(ManagedBean.getLoggedUser(), filtro); return ""; } public String buscarMensagem() throws DatabaseException{ getUsuarioMensagemController().findByMensagem(ManagedBean.getLoggedUser(), filtro); return ""; } /** * Filtra mensagens por pasta * @return * @throws DatabaseException */ public String filtrarPorPasta() throws DatabaseException{ pageNumber = 1; if(pastaId > 0){ pasta = new PastaController(Mensagem.MENSAGEM).findById(pastaId); filtroPasta = pasta.getNome(); getUsuarioMensagemController().findByPasta(ManagedBean.getLoggedUser(), pasta); }else{ if(pastaId == 0){ buscarTodas(); }else if(pastaId == -1){ filtrarEnviadas(); }else if(pastaId == -2){ filtrarRecebidas(); } } return null; } /** * Filtra apenas as mensagens recebidas * @return * @throws DatabaseException */ public String filtrarRecebidas() throws DatabaseException{ this.pasta = new Pasta(); this.pastaId = -2; filtroPasta = "Recebidas"; getUsuarioMensagemController().findRecebidas(ManagedBean.getLoggedUser()); return null; } private String buscarTodas() throws DatabaseException{ this.pasta = new Pasta(); this.pastaId = 0; filtroPasta = "Todas"; getUsuarioMensagemController().findByUser(ManagedBean.getLoggedUser()); return null; } /** * Filtra apenas as mensagens enviadas * @return * @throws DatabaseException */ public String filtrarEnviadas() throws DatabaseException{ this.pasta = new Pasta(); this.pastaId = -1; filtroPasta = "Enviadas"; getUsuarioMensagemController().findEnviadas(ManagedBean.getLoggedUser()); return null; } /** * Envia uma resposta a uma mensagem, neste caso como administrador * @return */ public String enviarRespostaAdmin() { if(ManagedBean.getLoggedUser() != null && getMensagem() != null){ resposta2.setDataCadastro(new Date()); resposta2.setUsuario(ManagedBean.getLoggedUser()); if(toAll){ resposta2.setMensagemOriginal(getMensagem()); }else{ resposta2.setMensagemOriginal(getRespostaResponder()); } resposta2.setAssunto(getMensagem().getAssunto()); try{ getController().sendResponse(resposta2, toAll, usuarios, gruposSelecionados); message = "Resposta enviada com sucesso."; resposta = false; resposta2 = null; anexado = false; usuarios = ""; gruposSelecionados = new ArrayList<String>(); return "ok"; } catch (DatabaseException e) { e.printStackTrace(); message = "Envio de resposta falhou"; } }else{ message = "Envio de resposta falhou"; } return ""; } /** * Envia a resposta a uma mensagem, usuário comum * @return */ public String enviarResposta() { if(getUsuarioMensagem().getUsuario() != null && getUsuarioMensagem().getMensagem() != null){ // Quando o usuário envia a mensagem de respostas, ela vai somente para o administrador resposta2.setDataCadastro(new Date()); resposta2.setUsuario(ManagedBean.getLoggedUser()); resposta2.setAssunto(getUsuarioMensagem().getMensagem().getAssunto()); resposta2.setMensagemOriginal(getUsuarioMensagem().getMensagem()); try{ getController().sendResponse(resposta2, false,null,null); message = "Resposta enviada com sucesso."; resposta = false; resposta2 = null; anexado = false; } catch (DatabaseException e) { e.printStackTrace(); message = "Envio de resposta falhou"; } }else{ message = "Envio de resposta falhou"; } return ""; } /** * Somente retorna a string, para fim de redirecionamento * @return */ public String toMessage() { return "message"; } /** * Somente retorna a string, para fim de redirecionamento * @return */ public String responder(){ resposta = true; return null; } /** * Define os parâmetros necessários para a leitura de uma mensagem * @return uma string de redirecionamento */ public String ler() throws DatabaseException{ if(usuarioMensagem != null && usuarioMensagem.isLida() == false){ usuarioMensagem.setLida(true); usuarioMensagem.setDataLeitura(new Date()); getUsuarioMensagemController().update(usuarioMensagem); } resposta = false; message = ""; return "ler"; } /** * Define os parâmetros necessários para a leitura de uma mensagem (administrador) * @return uma string de redirecionamento */ public String lerAdmin() { resposta = false; message = ""; return "ler"; } /** * Exclui uma mensagem (usuarioMensagem) * @return * @throws DatabaseException */ public String deletar() throws DatabaseException{ getUsuarioMensagemController().delete(usuarioMensagem); //getUsuarioMensagemController().findByUser(ManagedBean.getLoggedUser()); return ""; } /** * Exclui a mensagem * @return * @throws DatabaseException */ public String deletarAdmin() throws DatabaseException{ getController().delete(mensagem); //getUsuarioMensagemController().findByUser(ManagedBean.getLoggedUser()); return ""; } /** * Monta uma lista contendo os usuários que não leram certa mensagem * @return * @throws DatabaseException */ public String verQuemNaoLeu() throws DatabaseException{ naoLeitores = getUsuarioMensagemController().buscarNaoLeitores(mensagem); return "naoleitores"; } /** * Monta uma lista contendo os usuários que leram certa mensagem * @return * @throws DatabaseException */ public String verQuemLeu() throws DatabaseException{ leitores = getUsuarioMensagemController().buscarLeitores(mensagem); return "leitores"; } /** * Redirecionameto para resposta * @return */ public String reply(){ anexado = false; toAll = false; return "reply"; } /** * Redirecionameto para resposta (para todos) * @return */ public String replyToAll(){ anexado = false; toAll = true; return "reply"; } /** * Troca a pasta de uma mensagem * @return * @throws DatabaseException */ public String switchPasta() throws DatabaseException{ usuarioMensagem.setPasta(getPastaId() != 0 ? new PastaDAO().findById(getPastaId()) : null ); getUsuarioMensagemController().update(usuarioMensagem); message = "Mensagem movida para a pasta "; message += usuarioMensagem.getPasta() == null ? "Sem pasta" : usuarioMensagem.getPasta().getNome(); return null; } public String verOriginal() throws DatabaseException{ UsuarioMensagem mensagemOriginal = null; try{ mensagemOriginal = getUsuarioMensagemController().findByUsuarioMensagem(usuarioMensagem.getMensagem().getMensagemOriginal().getId(), ManagedBean.getLoggedUser().getId()); } catch (NoResultFoundException e) { MessageHandler.addGlobalMessage(e.getMessage()); } if (mensagemOriginal != null) { setUsuarioMensagem(mensagemOriginal); } return "original"; } /*** * Upload Listener * @param event * @throws Exception */ public void listener(UploadEvent event) throws Exception { UploadItem item = event.getUploadItem(); int extDot = item.getFileName().lastIndexOf('.'); String extension = item.getFileName().substring(extDot); FileTransfer fileTransfer = new FileTransfer(); String fileStored = fileTransfer.transfer(item.getFile(), extension, Diretorio.ANEXO); System.out.println(fileStored); getResposta2().setUrlAnexo(fileStored); anexado = true; } // GETTERS AND SETTERS: /** * @return the mensagem */ public Mensagem getMensagem() { if (mensagem == null) { mensagem = new Mensagem(); } return mensagem; } /** * @param mensagem the mensagem to set */ public void setMensagem(Mensagem mensagem) { this.mensagem = mensagem; } /** * @return the controller */ private MensagemController getController() { if(controller == null){ controller = new MensagemController(Mensagem.MENSAGEM); } return controller; } /** * @return the usuarioMensagemController * @throws DatabaseException */ private UsuarioMensagemController getUsuarioMensagemController() throws DatabaseException { if (usuarioMensagemController == null) { usuarioMensagemController = new UsuarioMensagemController(Mensagem.MENSAGEM); } return usuarioMensagemController; } /** * @return the usuarioMensagem */ public UsuarioMensagem getUsuarioMensagem() { if (usuarioMensagem == null) { usuarioMensagem = new UsuarioMensagem(); } return usuarioMensagem; } /** * @param usuarioMensagem the usuarioMensagem to set */ public void setUsuarioMensagem(UsuarioMensagem usuarioMensagem) { if(usuarioMensagem.getPasta() != null){ this.pasta = usuarioMensagem.getPasta(); this.pastaId = usuarioMensagem.getPasta().getId(); }else{ this.pasta = new Pasta(); //this.pastaId = 0; } this.usuarioMensagem = usuarioMensagem; this.mensagem = usuarioMensagem.getMensagem(); } /** * @return the resposta */ public boolean isResposta() { return resposta; } /** * @return the email */ public Mensagem getResposta2() { if (resposta2 == null) { resposta2 = new Mensagem(); } return resposta2; } /** * @param email the email to set */ public void setResposta2(Mensagem resposta2) { this.resposta2 = resposta2; } /** * @return the message */ public String getMessage() { return message; } /** * @return the naoLeitores */ public List<UsuarioMensagem> getNaoLeitores() { if(naoLeitores == null){ naoLeitores = new ArrayList<UsuarioMensagem>(); } return naoLeitores; } /** * @return the leitores */ public List<UsuarioMensagem> getLeitores() { if(leitores == null){ leitores = new ArrayList<UsuarioMensagem>(); } return leitores; } /** * @return the respostas * @throws DatabaseException */ public List<UsuarioMensagem> getRespostas() throws DatabaseException { if (usuarioMensagem != null && ManagedBean.getLoggedUser() != null) { respostas = getUsuarioMensagemController().pegarRespostas(getUsuarioMensagem().getMensagem(), ManagedBean.getLoggedUser()); } return respostas; } /** * @return the respostaResponder */ public Mensagem getRespostaResponder() { return respostaResponder; } /** * @param respostaResponder the respostaResponder to set */ public void setRespostaResponder(Mensagem respostaResponder) { this.message = ""; this.respostaResponder = respostaResponder; } /** * @return the toAll */ public boolean isToAll() { return toAll; } public Pasta getPasta() { return pasta == null ? pasta = new Pasta() : pasta; } public void setPasta(Pasta pasta) { this.pasta = pasta; } public String getFiltroPasta() { return filtroPasta == null ? filtroPasta = "Recebidas" : filtroPasta; } public int getPastaId() { return pastaId; } public void setPastaId(int pastaId) { this.pastaId = pastaId; } public String getFiltro() { return filtro; } public void setFiltro(String filtro) { this.filtro = filtro; } public boolean isAnexado() { return anexado; } public List<String> getGruposSelecionados() { return gruposSelecionados; } public void setGruposSelecionados(List<String> gruposSelecionados) { this.gruposSelecionados = gruposSelecionados; } public String getUsuarios() { return usuarios; } public void setUsuarios(String usuarios) { this.usuarios = usuarios; } /** * @return the paginator * @throws DatabaseException */ public UsuarioMensagemPaginator getPaginator() throws DatabaseException { return paginator == null ? paginator = new UsuarioMensagemPaginator(getUsuarioMensagemController()) : paginator; } public void event(ActionEvent event){ DataScrollerEvent scrollerEvent = (DataScrollerEvent)event; pageNumber = scrollerEvent.getPage(); } /** * @return the pageNumber */ public int getPageNumber() { return pageNumber; } /** * @param pageNumber the pageNumber to set */ public void setPageNumber(int pageNumber) { this.pageNumber = pageNumber; } }
27/07/2011
Renato Galina
package com.tischeme.marrichi.controller; import java.util.List; import com.tischeme.marrichi.bean.main.ManagedBean;import com.tischeme.marrichi.exception.DatabaseException;import com.tischeme.marrichi.persistence.dao.PastaDAO;import com.tischeme.marrichi.persistence.dao.UsuarioMensagemDAO;import com.tischeme.marrichi.persistence.to.Pasta;import com.tischeme.marrichi.persistence.to.TipoMensagem;import com.tischeme.marrichi.persistence.to.Usuario; public class PastaController { private PastaDAO pastaDAO; private int tipoMensagem; public PastaController(int tipoMensagem) { this.tipoMensagem = tipoMensagem; } public List<Pasta> listPastas(Usuario usuario) throws DatabaseException{ return getPastaDAO().findByUsuario(usuario, tipoMensagem); } public Pasta persist(Pasta pasta) throws DatabaseException{ pasta.setUsuario(ManagedBean.getLoggedUser()); pasta.setTipoMensagem(new TipoMensagem(tipoMensagem)); return getPastaDAO().merge(pasta); } private PastaDAO getPastaDAO(){ return pastaDAO == null ? pastaDAO = new PastaDAO() : pastaDAO; } public Pasta findById(int id) throws DatabaseException { return getPastaDAO().findById(id); } public boolean delete(Pasta pasta) throws DatabaseException { UsuarioMensagemDAO dao = new UsuarioMensagemDAO(tipoMensagem); dao.findByPasta(ManagedBean.getLoggedUser(), pasta); if(dao.list().size() == 0){ getPastaDAO().makeTransient(pasta); return true; }else{ return false; } }}
27/07/2011
Renato Galina
MUITO OBRIGADO
07/08/2011
Renato Galina
Clique aqui para fazer login e interagir na Comunidade :)