import java.io.IOException; import java.io.Serializable; import java.text.MessageFormat; import java.util.Locale; import java.util.ResourceBundle; import javax.annotation.PostConstruct; import javax.faces.application.FacesMessage; import javax.faces.context.FacesContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * * @author luis */ public abstract class FacesUtil { private ResourceBundle bundle; public void warn(String message) { warn(null, message); } public void warn(String clientId, String i18n) { // Pega a mensagem de acordo com a chave String message = bundle.getString(i18n); FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_WARN, message, null); FacesContext.getCurrentInstance().addMessage(clientId, msg); } public void error(String i18n) { error(null, i18n); } public void error(String clientId, String i18n) { // Pega a mensagem de acordo com a chave String message = bundle.getString(i18n); FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, message, null); FacesContext.getCurrentInstance().addMessage(clientId, msg); } public void info(String i18n) { info(null, i18n,null); } public void info(String i18n, Object[] params) { info(null, i18n, params); } public void info(String clientId, String i18n,Object[] params) { // Pega a mensagem de acordo com a chave String message = bundle.getString(i18n); if(params!=null && params.length > 0){ MessageFormat mf = new MessageFormat(message); message = mf.format(params, new StringBuffer(), null).toString(); } FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, message, null); FacesContext.getCurrentInstance().addMessage(clientId, msg); } public void redirect(String url) { try { FacesContext.getCurrentInstance().getExternalContext(). redirect(url); } catch (IOException ex) { ex.printStackTrace(); } } @PostConstruct public void onConstruct() { Locale locale = FacesContext.getCurrentInstance().getViewRoot().getLocale(); // Pega o bundle de acordo com o locale bundle = ResourceBundle.getBundle( FacesContext.getCurrentInstance().getApplication(). getMessageBundle(), locale); postConstruct(); } }