1   /**
2    * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
3    *
4    * The contents of this file are subject to the terms of the Liferay Enterprise
5    * Subscription License ("License"). You may not use this file except in
6    * compliance with the License. You can obtain a copy of the License by
7    * contacting Liferay, Inc. See the License for the specific language governing
8    * permissions and limitations under the License, including but not limited to
9    * distribution rights of the Software.
10   *
11   *
12   *
13   */
14  
15  package com.liferay.util.bridges.jsf.common;
16  
17  import com.liferay.portal.kernel.language.LanguageUtil;
18  
19  import java.util.Locale;
20  
21  import javax.faces.application.FacesMessage.Severity;
22  import javax.faces.application.FacesMessage;
23  import javax.faces.context.FacesContext;
24  
25  /**
26   * <a href="FacesMessageUtil.java.html"><b><i>View Source</i></b></a>
27   *
28   * <p>
29   * This class provides static convenience methods for creating FacesMessage
30   * objects from locale-specific values in the Liferay portal.properties file,
31   * and adding them to the FacesContext either globally, or to individual
32   * components.
33   * </p>
34   *
35   * @author Neil Griffin
36   */
37  public class FacesMessageUtil {
38  
39      public static void error(FacesContext facesContext, String key) {
40          error(null, facesContext, key);
41      }
42  
43      public static void error(
44          FacesContext facesContext, String key, Object argument) {
45  
46          error(null, facesContext, key, argument);
47      }
48  
49      public static void error(
50          FacesContext facesContext, String key, Object[] arguments) {
51  
52          error(null, facesContext, key, arguments);
53      }
54  
55      public static void error(
56          String clientId, FacesContext facesContext, String key) {
57  
58          _addMessage(clientId, facesContext, FacesMessage.SEVERITY_ERROR, key);
59      }
60  
61      public static void error(
62          String clientId, FacesContext facesContext, String key,
63          Object argument) {
64  
65          _addMessage(
66              clientId, facesContext, FacesMessage.SEVERITY_ERROR, key, argument);
67      }
68  
69      public static void error(
70          String clientId, FacesContext facesContext, String key,
71          Object[] arguments) {
72  
73          _addMessage(
74              clientId, facesContext, FacesMessage.SEVERITY_ERROR, key,
75              arguments);
76      }
77  
78      public static void info(FacesContext facesContext, String key) {
79          info(null, facesContext, key);
80      }
81  
82      public static void info(
83          FacesContext facesContext, String key, Object argument) {
84  
85          info(null, facesContext, key, argument);
86      }
87  
88      public static void info(
89          FacesContext facesContext, String key, Object[] arguments) {
90  
91          info(null, facesContext, key, arguments);
92      }
93  
94      public static void info(
95          String clientId, FacesContext facesContext, String key) {
96  
97          _addMessage(clientId, facesContext, FacesMessage.SEVERITY_INFO, key);
98      }
99  
100     public static void info(
101         String clientId, FacesContext facesContext, String key,
102         Object argument) {
103 
104         _addMessage(
105             clientId, facesContext, FacesMessage.SEVERITY_INFO, key, argument);
106     }
107 
108     public static void info(
109         String clientId, FacesContext facesContext, String key,
110         Object[] arguments) {
111 
112         _addMessage(
113             clientId, facesContext, FacesMessage.SEVERITY_INFO, key, arguments);
114     }
115 
116     private static void _addMessage(
117         String clientId, FacesContext facesContext, Severity severity,
118         String key) {
119 
120         Locale locale = JSFPortletUtil.getLocale(facesContext);
121 
122         String message = LanguageUtil.get(locale, key);
123 
124         FacesMessage facesMessage = new FacesMessage(severity, message, null);
125 
126         facesContext.addMessage(clientId, facesMessage);
127     }
128 
129     private static void _addMessage(
130         String clientId, FacesContext facesContext, Severity severity,
131         String key, Object argument) {
132 
133         Locale locale = JSFPortletUtil.getLocale(facesContext);
134 
135         String message = LanguageUtil.format(locale, key, argument);
136 
137         FacesMessage facesMessage = new FacesMessage(severity, message, null);
138 
139         facesContext.addMessage(clientId, facesMessage);
140     }
141 
142     private static void _addMessage(
143         String clientId, FacesContext facesContext, Severity severity,
144         String key, Object[] arguments) {
145 
146         Locale locale = JSFPortletUtil.getLocale(facesContext);
147 
148         String message = LanguageUtil.format(locale, key, arguments);
149 
150         FacesMessage facesMessage = new FacesMessage(severity, message, null);
151 
152         facesContext.addMessage(clientId, facesMessage);
153     }
154 
155 }