selectOneMenu não guarda a pasta da mensagem atual

27/07/2011

0

PastaController.java 
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

Renato Galina

Responder

Posts

27/07/2011

Renato Galina

DESCULPEM, HOUVE UM ERRO AO COLAR O PROBLEMA, O FORUM DÁ UM ERRO SEU EU FIZER TUDO DE UMA SÓ VEZ ENTÃO IREI POR ETAPAS.
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&ccedil;&atilde;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>&nbsp;&nbsp;          			          		          			<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&ccedil;&atilde;o" /></div></div>

</f:view></body></html>
Responder

27/07/2011

Renato Galina

mensagens-read.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&ccedil;&atilde;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&ccedil;&atilde;o" /></div></div>

</f:view></body></html>
Responder

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;	}	
}
Responder

27/07/2011

Renato Galina

classe PataController
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;		}	}}
Responder

27/07/2011

Renato Galina

POR FAVOR ME AJUDEM A RESOVEL ESTE PROBLEMA, 
MUITO OBRIGADO
Responder

05/08/2011

Dyego Carmo

Chega a dar algum exception ?

Responder

07/08/2011

Renato Galina

  Não apenas guarda apasta que eu mudei a mensagem, mas o data gride continua correto , na pasta que eu estava.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar