/* * * Copyright (c) 2013 - 2014 INT - National Institute of Technology & COPPE - Alberto Luiz Coimbra Institute - Graduate School and Research in Engineering. * See the file license.txt for copyright permission. * */ package actions; import java.text.MessageFormat; import java.util.Locale; import java.util.MissingResourceException; import java.util.ResourceBundle; import javax.faces.application.FacesMessage; import javax.faces.context.FacesContext; import javax.servlet.http.HttpSession; import modelo.TipoUsuario; import actions.controle.SessaoDoUsuario; public class BaseActions { private static final String CAMINHO_BUNDLE_MENSAGENS = "mensagens"; protected SessaoDoUsuario sessaoUsuarioCorrente; public BaseActions() { sessaoUsuarioCorrente = (SessaoDoUsuario) this.getManagedBean("sessaoDoUsuario"); } protected void inserirObjetoNaSessao(String chave, Object valor) { FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put(chave, valor); } public Object recuperarObjetoDaSessao(String chave) { return FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get(chave); } public void inserirObjetoNaRequest(String chave, Object valor){ FacesContext.getCurrentInstance().getExternalContext().getRequestMap().put(chave, valor); } public Object recuperarObjetoDaRequest(String chave){ return FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get(chave); } protected void info(String messageKey) { FacesMessage mensagemSucesso = new FacesMessage(); mensagemSucesso.setSummary(getMensagemBundled(messageKey)); mensagemSucesso.setSeverity(FacesMessage.SEVERITY_INFO); FacesContext.getCurrentInstance().addMessage(null, mensagemSucesso); } protected void error(String messageKey) { FacesMessage mensagemErro = new FacesMessage(); mensagemErro.setSummary(getMensagemBundled(messageKey)); mensagemErro.setSeverity(FacesMessage.SEVERITY_ERROR); FacesContext.getCurrentInstance().addMessage(null, mensagemErro); } protected void warn(String messageKey) { FacesMessage mensagemWarning = new FacesMessage(); mensagemWarning.setSummary(getMensagemBundled(messageKey)); mensagemWarning.setSeverity(FacesMessage.SEVERITY_WARN); FacesContext.getCurrentInstance().addMessage(null, mensagemWarning); } /** * obtem um ManagedBean j� instanciado em outro ManagedBean * * @author Walanem * * @param nomeManagedBean - string com o nome do managedBean definido no facesConfig * @return */ protected Object getManagedBean(String nomeManagedBean){ FacesContext context = FacesContext.getCurrentInstance(); return context.getELContext().getELResolver().getValue(context.getELContext(), null, nomeManagedBean); } protected String getMensagemBundled(String key) { return this.getMessageResourceString(CAMINHO_BUNDLE_MENSAGENS, key, null, new Locale("pt-BR")); } public String getMessageResourceString(String bundleName, String key, Object params[], Locale locale) { String text = null; ResourceBundle bundle = ResourceBundle.getBundle(bundleName, locale, getCurrentClassLoader(params)); try { text = bundle.getString(key); } catch (MissingResourceException e) { text = "?? mensagem \"" + key + "\" n�o encontrada ??"; } if (params != null) { MessageFormat mf = new MessageFormat(text, locale); text = mf.format(params, new StringBuffer(), null).toString(); } return text; } protected static ClassLoader getCurrentClassLoader(Object defaultObject) { ClassLoader loader = Thread.currentThread().getContextClassLoader(); if (loader == null) { loader = defaultObject.getClass().getClassLoader(); } return loader; } }